Per eseguire il codice dieci anni fa, i programmatori hanno persino trovato un Apple II del 1977
"Ciao mondo!"
Quarantasei anni dopo, questo noto codice emana ancora un fascino di lunga durata. Il linguaggio C che apparve con esso è ora diventato uno dei linguaggi di programmazione più popolari al mondo, tessendo per il mondo di Internet e il mondo reale. Un futuro migliore.
Al fine di rivedere e commemorare la storia della programmazione, Nicolas Rougier, un neuroscienziato informatico su GitHub, e Konrad Hinsen, un biofisico teorico, hanno lanciato insieme un'attività Ten Years Reproducibility Challenge (Ten Years Reproducibility Challenge), incoraggiando tutti a scoprire se erano dieci anni fa o più. Codice precedente, verifica se questi codici possono ancora essere eseguiti ora e se la ricerca relativa al codice può essere riprodotta.
Al momento, dozzine di partecipanti alla pagina dell'evento hanno già presentato codici più di dieci anni fa, che all'epoca sembravano essere tecnologie all'avanguardia ad alta tecnologia, ma molti di loro sono ora etichettati come "possibilità operative basse". Questo è difficile da capire agli occhi di noi outsider.Le lettere ei simboli di programmazione non sono cambiati, quindi perché non può funzionare?
Per più di dieci anni, i linguaggi e gli strumenti di programmazione sono cambiati
Prima c'era una barzelletta popolare che diceva: "Scrivere in linguaggio C guarda dall'alto in basso scrivere C ++, scrivere C ++ guarda dall'alto in basso scrivere Java, scrivere Java guarda dall'alto in basso scrivere C # e infine tutti guardano dall'alto in basso quando si scrive PHP".
Uno scherzo illustra pienamente i cambiamenti nei linguaggi di programmazione.
TIOBE (programming language ranking list) ha pubblicato una tabella di tendenza dei cambiamenti di ranking del linguaggio di programmazione negli ultimi 20 anni. In generale, i linguaggi Java e C occupano ancora le prime e le seconde posizioni. Python è emerso all'improvviso, PHP, C ++ e C # continuano a diminuire, SQL " "Resuscitato", Swift "ucciso" a metà.
▲ Grafico delle tendenze del linguaggio di programmazione dal 2002 al 2020. Immagine da: TIOBE
Le modifiche agli strumenti sono spesso sincronizzate con le modifiche ai linguaggi di programmazione.
Nel 2009, Spring ha richiesto diverse configurazioni XML e file Java, mentre nel 2019 è necessario un solo file Java / Kotlin. Dieci anni fa c'erano solo le opzioni Plain Old Javascript, jQuery ed ExtJS per il front-end, ma ora ci sono più di venti opzioni.
▲ Cambiamenti negli strumenti
▲ L'opzionalità è notevolmente migliorata
"L'unica cosa che non è cambiata molto, forse è l'algoritmo?", Ha detto un giovane programmatore dall'estero. Dieci anni fa, la statistica (statistica) si era trasformata in Machine Learning (machine learning) dieci anni dopo, ma la formula dell'algoritmo era ancora lo stesso.
Prima chiedi se sei lì, poi chiedi se puoi "correre"
▲ Il più grande programmatore al mondo "Dating Friends" e la piattaforma di hosting del codice, lanciato solo nel 2008
Se vuoi sapere se il codice di dieci anni fa può "funzionare", devi prima essere in grado di trovare il codice di dieci anni fa, questa è anche la "sfida del codice decennale". Sebbene abbia attirato molta attenzione nel cerchio, non ci sono molti partecipanti finora. Una delle ragioni.
La famosa piattaforma di hosting del progetto GitHub è stata lanciata solo nell'aprile 2008 e molte persone hanno iniziato a usarla per ospitare il codice dopo il 2012. La maggior parte del codice prima di questo è stato salvato sotto forma di documenti, riviste, ecc., Quindi molto è andato perso.
Ad esempio, Roberto DiCosmo, un informatico presso l'Istituto nazionale francese di informazione e automazione, ha pubblicato un articolo nel 1998 e ha scritto un sistema di programmazione parallela chiamato "OcamlP3l", ma non ha trovato i dischi rigidi e le copie di backup di se stesso e dei suoi coautori. Riesco a trovare il codice e alla fine ho trovato per caso il codice dell'anno su un sito Web di scansione del codice.
C'è anche Rougier che ha partecipato all'attività. Il suo codice è stato pubblicato sulla rivista Tremplin Micro 32 anni fa. L'editore di questa rivista è scomparso da tempo nel lungo fiume della storia. Se non c'è altro modo per eseguire il backup e non riesci a trovare la rivista dell'anno, Questo codice è equivalente a non è mai esistito nella storia della programmazione.
È difficile immaginare che, in quanto prodotto di Internet, anche il codice andrà perso a causa dei problemi di innovazione dei contenitori di archiviazione nella nuova e vecchia era. Questo è il primo significato pratico portato al circolo della programmazione dalla "sfida del decennio del codice". Come mantenere correttamente il codice precedente Vale la pena considerare.
Tu "corri" con la tua "corsa", è inutile senza il software e l'hardware dell'anno
Dopo aver trovato il codice dell'anno, non essere troppo contento. La seconda domanda è qui. Una buona parte del codice viene "eseguita" sui supporti software e hardware dell'anno. Riesci ancora a trovare questi software e hardware adesso?
Rougier menzionato nell'articolo precedente ha riscontrato un problema del genere 32 anni fa, nel 1988, aveva solo 16 anni e ha scritto un codice di programma per l'amplificazione delle immagini per il computer Apple II (1977-1993). "Il codice più vecchio dell'evento.
▲ Apple II
Fortunatamente, i colleghi di Rougier hanno salvato un Apple II mentre pulivano l'ufficio. Questo "vecchio antiquariato" non è facile da "servire". Il suo disco vecchio stile non può essere collegato al computer attuale e il funzionamento del codice è diventato un grosso problema. Alla fine, Rougier ha trovato il disco vecchio stile su Amazon nel 1993. Dopo aver scritto i dati tre volte, ha "attivato" il disco e aveva le basi hardware necessarie per eseguire il codice.
Molte persone hanno riscontrato problemi simili. Ad esempio, Hinsen, l'iniziatore dell'evento, ha detto che il codice che ha scritto negli anni '90 è stato memorizzato in un floppy disk e ora non riesce a trovare uno strumento per leggere il corrispondente floppy disk.
▲ Il sistema influenzerà anche il funzionamento dei vecchi codici Immagine tratta da: Sabino Maggi
Inoltre, anche l'ambiente di sistema è molto importante.
Sabino Maggi è un fisico informatico in Italia, ha modellato un dispositivo superconduttore in Fortran nel 1996 e ha utilizzato Microsoft Visual Basic per elaborare i risultati. Più di due decenni dopo, "Visual Basic è un linguaggio morto, che è stato a lungo sostituito da Visual Basic.NET". Maggi poteva costruire una macchina virtuale Windows solo dieci anni fa sul suo computer Mac per provare a eseguire il codice . Fortunatamente, molte versioni di sistema rilasciate da Windows nel 1996 non erano compatibili con le versioni successive, il che ha impedito al codice di Maggi di funzionare correttamente.
Il codice scritto da qualcuno all'età di 9 anni può ancora funzionare, ma sto giocando nel fango all'età di 9 anni
▲ Il primo codice inviato nella pagina di verifica del codice decennale
"Quando avevo 9 anni ho cercato di curare un ramo spezzato di un albero con l'erba." (Quando avevo 9 anni, ho provato a curare un ramo spezzato di un albero con l'erba.)
Un giovane fratello ha detto su YouTube che il codice che ha scritto all'età di 9 anni avrebbe funzionato ancora. Un utente ha pubblicato un commento come quello sopra e ha ricevuto 6.363 Mi piace.
Qual è il codice per partecipare alla "Ten Year Code Challenge" questa volta?
Ai Faner è entrato nella pagina dell'evento su GitHub e ha scoperto che questi codici non erano gli stessi che ci aspettavamo, una parte considerevole è legata alla ricerca scientifica e ha una bassa correlazione diretta con il grande pubblico.
Ad esempio, il codice presentato dal primo partecipante John (EBo) David, scritto 22 anni fa, si chiama "Il comportamento delle metriche del paesaggio comunemente utilizzate nello studio della frammentazione dell'habitat" (il comportamento delle metriche del paesaggio comunemente utilizzate nello studio della frammentazione dell'habitat) ).
Esistono anche codici relativi al campo della fisica e della matematica, come "fermioni all'unità", "stime dei parametri spaziali dodecaedrici di Poincaré" e così via.
"Caratteristiche tipografiche per il riconoscimento del testo della scena", "Effetti del fuoco sull'evapotraspirazione regionale nella foresta boreale del Canada centrale" possono essere considerati il grado di rilevanza per la gente comune È relativamente alto.
▲ Codice per la ricerca sulle malattie cardiovascolari quindici anni fa
Ci sono anche alcuni codici che possono farci sentire un po 'di "Internet moderno", ad esempio, "Studio dell'accuratezza e miglioramento della simulazione di rete nel SimGrid Framework" ci ricorda gli ultimi anni. L '"AI" del fuoco, e questo codice è stato effettivamente rilasciato nel 2009.
Sono coinvolti genetica, neurologia, informatica, biologia, fisica, matematica, ecc.
Si ipotizza che ci possano essere due ragioni per cui il codice coinvolto nell'attività nella pagina "Ten Years of Code Challenge" è diverso dal codice di "sviluppo software" immaginato.
Innanzitutto, grazie al perfetto sistema di tesi, molti codici relativi alla tesi o pubblicata la tesi sono stati ben conservati, solo il codice conservato può partecipare a questa attività. In secondo luogo, più di un decennio fa, né i computer né le tecniche di programmazione erano così popolari come lo sono ora, e l'uso di computer e codici era più concentrato nei campi dell'alta tecnologia.
Nota: le traduzioni precedenti provengono tutte da Google
Il codice cambia il mondo
Inconsciamente, il linguaggio di programmazione è diventato una delle cose che possono influenzare lo sviluppo del mondo e ha connessioni più o meno varie con la vita di tutti. Si può anche dire che non stiamo vivendo con la programmazione, vivendo con la programmazione e morti con la programmazione. "- I dispositivi medici utilizzati per il parto devono essere programmati con un software operativo. Ogni aspetto dall'infanzia alla vecchiaia richiede la partecipazione alla programmazione (come WeChat, takeaway, ecc.). Anche il sistema medico che ritarda la nostra morte deve essere programmato per produrre vari software.
Il 25 marzo di quest'anno, molti utenti hanno scoperto che quando hanno aperto l'app Taobao con il loro iPhone, si apriva automaticamente una finestra di dialogo, chiedendo all'utente che non sarebbero stati in grado di utilizzare l'app Taobao in 3 giorni. Molti gangster erano preoccupati che non sarebbero stati in grado di svuotare i carrelli della spesa in futuro. Successivamente, Taobao ha rilasciato rapidamente una nuova versione per correggere questo bug.
Immagina, se Taobao diventasse davvero indisponibile in 3 giorni, come saremo interessati personalmente e l'intera società? Cosa succede se tutte le app per la consegna di cibo non sono disponibili a mezzogiorno di un determinato giorno?
Mentre il codice cambia il mondo, porta anche molti nuovi problemi, i più interessanti sono i dati personali e la privacy.
Non molto tempo fa, è stata lanciata la versione beta MIUI 12 di Xiaomi ed è stata lanciata una nuova funzione "flare". Molte app sono "irrealistiche". Si scopre che alcune app leggono anche silenziosamente le informazioni private degli utenti fino a migliaia di utenti ogni giorno senza che l'utente lo sappia. In secondo luogo, oltre al necessario comportamento di sveglia associato, che tipo di codice c'è dietro le "piccole azioni" non necessarie dell'app? Chi ha scritto il codice per i razzi MIUI 12 per proteggere la nostra privacy?
▲ La funzione flares visualizzata da MIUI 12
Il 3 settembre, l'app "Codice della città di Suzhou" di Suzhou ha lanciato la funzione "Codice della civiltà della città di Suzhou". Questa funzione mira a costruire un sistema di identificazione delle informazioni sui punti di civiltà e formare un "ritratto personale" della civiltà dei cittadini. I cittadini con alti punti di civiltà saranno Godere della priorità e della comodità del lavoro, della vita, dell'occupazione, dello studio e dell'intrattenimento ha suscitato una discussione diffusa tra il pubblico. Molte persone credono che lo standard del "civilizzato" non sia abbastanza obiettivo e la punizione degli "incivili" è facilmente influenzata dalla tecnologia. Il Beijing News ha pubblicato un commento speciale sul fatto che abbia seguito la giustizia procedurale e se abbia sfondato la "linea rossa" dell'amministrazione secondo la legge.
Inoltre, quando inseriamo alcune parole chiave di prodotto sul telefono cellulare e vengono sincronizzate dal cloud o leggiamo gli appunti dall'app, possiamo vedere prodotti simili nella posizione di rilievo dell'app per lo shopping il giorno successivo. Non so chi ha scritto questa funzione. Codice?
In quanto strumento per costruire una società virtuale, il codice è in realtà un riflesso della natura umana della società reale. I linguaggi di programmazione sono sempre stati lì, come usarli, dopotutto, dipende da noi.
#Benvenuto a seguire l'account WeChat ufficiale di Aifaner: Aifaner (ID WeChat: ifanr), ti verranno forniti contenuti più interessanti il prima possibile.
Ai Faner | Link originale · Visualizza commenti · Sina Weibo