Quanto del codice originale è rimasto nei prodotti software moderni? [chiuso]

32

Molti di voi là fuori lavorano per grandi aziende che spediscono software ben noto. Mi stavo chiedendo, quanta parte del codice originale (in pratica, codice che era la versione "v1.0") è rimasta nelle moderne applicazioni massive, come ad esempio Firefox, Photoshop, Windows, Linux, ecc.? Preferirei davvero l'esperienza di prima mano e le storie di guerra del mondo reale.

Grazie per aver soddisfatto la mia curiosità.

Modifica

Risulta che c'è un grado di incomprensione. Quello che sto cercando è fondamentalmente il seguente: quando si incolpare / annota il codice sorgente, ci sono parti o anche interi file intatti dalla versione 1.0 iniziale.

    
posta Anton Gogolev 19.05.2011 - 11:17
fonte

5 risposte

36

Più di quanto ti aspetti e molto più vecchio di quanto ti aspetteresti. Anche con "riscritture totali" e grandi refettori ci sono molti moduli che rimangono intatti.

Péter suggerisce che per esempio non troverai il vecchio codice Netscape in Firefox. Il che è sbagliato, se cerchi nel codice sorgente troverai parecchi file con disclaimer come:

* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1994-2000 

Ad esempio, nelle intestazioni del kernel di Linux puoi trovare cose come:

include/linux/if_ppp.h: * Copyright (c) 1989 Carnegie Mellon University.
include/linux/quota.h: * Copyright (c) 1982, 1986 Regents of the University of California. 
include/linux/coda.h:          Copyright (c) 1987-1999 Carnegie Mellon University
include/linux/mc146818rtc.h: * derived from Data Sheet, Copyright Motorola 1984 (!).
include/net/slhc_vj.h: * Copyright (c) 1989 Regents of the University of California.
    
risposta data 19.05.2011 - 12:25
fonte
27

Non so quanto ma il vecchio codice è sicuramente presente ma viene rimosso lentamente. Per esempio. in Windows 2008 o Vista vai in c: \ windows \ fonts usando explorer, fai clic con il tasto destro sul pannello sinistro e scegli "installa nuovo font". La finestra di dialogo mostrata proviene da Windows 3.1 giorni (controllare lo screenshot). Se vedi lo stesso in Windows 7 ora è un pannello di controllo molto migliore come l'interfaccia utente.

    
risposta data 19.05.2011 - 13:17
fonte
6

Non posso dire quanti anni ha il codice al lavoro. Posso tornare indietro solo quando è stato inserito in Subversion, e ce ne sono molte che risalgono a così tanto tempo.

Tuttavia, ho un amico che ha lavorato al codice di Microsoft Office. Alcuni anni fa, mi disse che aveva rimosso alcune chiamate di SaveA5World da esso. Quella chiamata aveva uno scopo sui vecchi Macintoshes con processori M680? 0, e non ha funzionato da quando Apple è andato ai Mac PowerPC nei primi anni '90.

Nelle mie osservazioni, qualsiasi potente sistema software su cui un'azienda fa affidamento è stato costruito con una tecnologia che nessuno vuole più utilizzare.

    
risposta data 19.05.2011 - 15:50
fonte
2

"Se hanno svolto il loro lavoro molto bene sin dall'inizio, una grande parte, altrimenti una piccola parte."

Lingue rigorose mostrano questo tratto. Molto poco è dovuto cambiare nei linguaggi di Nicklaus Wirth, perché sono stati pianificati con precisione. (Questo in realtà è cambiato ultimamente per Delphi e cambierà di più con la prossima versione di distribuzione universale.)

C'è anche un rovescio della medaglia, ovviamente. Sta decidendo che il codice originale è abbastanza buono, come nel caso di Microsoft Windows, o applicazioni piacevoli come ACDSee, editor di testo o le ben note applicazioni a linea di comando di "spirito di Linux".

Anche se queste applicazioni possono sembrare goffe a coloro che forse non le hanno amate in primo luogo, mostrano un tratto ben pianificato e un insieme ben definito; anche se non hanno campane e fischietti, questo può essere preferito; fanno quello che c'è sul barattolo, la compatibilità con le versioni precedenti è ottima e probabilmente continuerà a funzionare bene in futuro.

Photoshop avrebbe il 90% dello stesso codice da 5.0, se si passasse allo strumento. ; P lo fa? No perchè? Vendita di aggiornamenti. Oggi non puoi farne di più.

Il set di funzioni di un gestore di file, fino al punto in cui si desidera eseguire FTP, Web e cloud è in gran parte lo stesso per qualsiasi piattaforma per decennale. L'unica ragione per cui un'applicazione non è ancora a 1.0 è dovuta a una cattiva pianificazione, a un capriccio, a un'urgenza di aggiornare e, almeno in piccola parte, al mondo che cambia intorno all'applicazione.

La risposta è che alcune gemme restano a 1.0 o 1.0.x perché lo sviluppatore ha deciso sul set di funzionalità, ha completato un programma privo di bug e non trae profitto dall'infinitamente aggiungere roba e correggere i bug nelle cose aggiunte, o è passato a sviluppare più gemme.

È improbabile che tutto il resto rimanga vicino al codice in 1.0. E perché non dovresti riscrivere l'applicazione se hai una grande idea? Dovresti, è divertente codificare! :) Tranne che non è ciò che è avvenuto in molti moderni prodotti software. Il cambiamento a scopo di cambiamento (vendite) e non motivato da set di funzionalità, e in misura minore l'aggiornamento per adeguarsi alle piattaforme che cambiano, è l'ordine del giorno.

E in questa zuppa di pezzi interattivi di software in costante aggiornamento, alcune codebase sfuggono alle revisioni. Alcuni mantengono ancora il sogno di fondazioni e modularizzazione (e non rilasciano prematuramente), ma la stragrande maggioranza è bloccata nel ciclo di rilascio-correzione-aggiornamento.

    
risposta data 28.02.2013 - 01:57
fonte
-2

Anche i sistemi apparentemente "all'avanguardia" usati per i giochi, come iD Tech e Unreal, avrebbero ancora un bel po 'di codice 1.0.

    
risposta data 01.11.2011 - 13:09
fonte

Leggi altre domande sui tag