Um den Code vor zehn Jahren auszuführen, fanden die Programmierer sogar einen Apple II von 1977 heraus
"Hallo Welt!"
46 Jahre später strahlt dieser bekannte Code immer noch einen lang anhaltenden Charme aus. Die damit erschienene C-Sprache hat sich mittlerweile zu einer der beliebtesten Programmiersprachen der Welt entwickelt und ist für die Internet- und die reale Welt geeignet. Eine bessere Zukunft.
Um die Geschichte der Programmierung zu überprüfen und zu gedenken, haben Nicolas Rougier, ein Computerneurowissenschaftler auf GitHub, und Konrad Hinsen, ein theoretischer Biophysiker, gemeinsam eine Aktivität zur Herausforderung der zehnjährigen Reproduzierbarkeit (Ten Years Reproducibility Challenge) gestartet, um alle zu ermutigen, herauszufinden, ob sie vor zehn Jahren oder länger waren. Frühere Codes prüfen, ob diese Codes jetzt noch ausgeführt werden können und ob codebezogene Recherchen reproduziert werden können.
Gegenwärtig haben Dutzende von Teilnehmern auf der Veranstaltungsseite bereits vor mehr als zehn Jahren Codes eingereicht. Diese Codes schienen zu dieser Zeit High-Tech-Spitzentechnologien zu sein, aber viele von ihnen werden jetzt als "geringe Betriebsmöglichkeiten" bezeichnet. Dies ist für uns Außenstehende schwer zu verstehen. Die Programmierbuchstaben und -symbole haben sich nicht geändert. Warum kann es nicht ausgeführt werden?
Seit mehr als zehn Jahren haben sich zunächst Programmiersprachen und Tools geändert
Es gab vorher einen populären Witz, der sagte: "Schreiben von C-Sprache beim Schreiben von C ++, Schreiben von C ++ beim Schreiben von Java, Schreiben von Java beim Schreiben von C #, und schließlich schaut jeder beim Schreiben von PHP nach unten."
Ein Witz veranschaulicht die Änderungen in den Programmiersprachen vollständig.
TIOBE (Programmiersprachen-Rangliste) hat ein Trenddiagramm mit Änderungen der Programmiersprachen-Rangliste in den letzten 20 Jahren veröffentlicht. Im Allgemeinen belegen Java- und C-Sprachen immer noch die oberste und zweite Position. Python ist plötzlich aufgetaucht, PHP, C ++ und C # fallen weiter, SQL " "Auferstanden", Swift "getötet" auf halbem Weg.
▲ Trenddiagramm der Programmiersprache von 2002 bis 2020. Bild von: TIOBE
Änderungen an Werkzeugen werden häufig mit Änderungen an Programmiersprachen synchronisiert.
Im Jahr 2009 benötigte Spring mehrere XML-Konfigurations- und Java-Dateien, während im Jahr 2019 nur eine Java / Kotlin-Datei benötigt wird. Vor zehn Jahren gab es für das Front-End nur Plain Old Javascript-, jQuery- und ExtJS-Optionen, jetzt gibt es mehr als zwanzig Optionen.
▲ Werkzeugwechsel
▲ Die Optionalität wurde erheblich verbessert
"Das einzige, was sich nicht viel geändert hat, ist vielleicht der Algorithmus?", Sagte ein junger Programmierer aus dem Ausland. Vor zehn Jahren hatte sich Statistik (Statistik) zehn Jahre später in maschinelles Lernen (maschinelles Lernen) verwandelt, aber die Algorithmusformel war immer noch das Gleiche.
Fragen Sie zuerst, ob Sie dort sind, und fragen Sie dann, ob Sie "rennen" können.
▲ Der weltweit größte Programmierer "Dating Friends" und Code-Hosting-Plattform, der erst 2008 gestartet wurde
Wenn Sie wissen möchten, ob der Code von vor zehn Jahren "ausgeführt" werden kann, müssen Sie zuerst den Code von vor zehn Jahren finden können – dies ist auch die "Dekadencode-Herausforderung". Obwohl er im Kreis viel Aufmerksamkeit erregt hat, gibt es bisher nicht viele Teilnehmer. Einer der Gründe.
Die bekannte Projekt-Hosting-Plattform GitHub wurde erst im April 2008 gestartet und viele Leute haben damit begonnen, Code nach 2012 zu hosten. Der größte Teil des Codes zuvor wurde in Form von Papieren, Magazinen usw. gespeichert, sodass ein Großteil davon verloren ging.
Zum Beispiel veröffentlichte Roberto DiCosmo, Informatiker am französischen Nationalen Institut für Information und Automatisierung, 1998 einen Artikel und schrieb ein paralleles Programmiersystem namens "OcamlP3l", fand jedoch nicht die Festplatten und Backups von sich und seinen Mitautoren. Kann den Code finden und schließlich den Code des Jahres zufällig auf einer Code-Crawler-Website finden.
Es gibt auch Rougier, der an der Aktivität teilgenommen hat. Sein Code wurde vor 32 Jahren in der Zeitschrift Tremplin Micro veröffentlicht. Dieser Zeitschriftenverlag ist längst im langen Fluss der Geschichte verschwunden. Wenn es keine andere Möglichkeit gibt, eine Sicherungskopie zu erstellen, und Sie die Zeitschrift des Jahres nicht finden können, Dieser Code entspricht nicht in der Geschichte der Programmierung.
Es ist kaum vorstellbar, dass als Produkt des Internets Code auch aufgrund der Probleme der Innovation von Speichercontainern in der neuen und alten Ära verloren geht. Dies ist die erste praktische Bedeutung, die dem Programmierkreis durch das "Jahrzehnt der Code-Herausforderung" gebracht wurde. Wie man den vorherigen Code richtig beibehält Es ist eine Überlegung wert.
Sie "laufen" mit Ihrem "laufen", es ist ohne die Software und Hardware des Jahres nutzlos
Seien Sie nicht zu glücklich, nachdem Sie den Code des Jahres gefunden haben. Die zweite Frage ist hier. Ein Teil des Codes wird auf den Software- und Hardwareträgern des Jahres "ausgeführt". Können Sie diese Software und Hardware jetzt noch finden?
Rougier, der im vorherigen Artikel erwähnt wurde, stieß auf ein solches Problem. Vor 32 Jahren, 1988, war er erst 16 Jahre alt. Er schrieb einen Programmcode für einen Bildverstärker für den Apple II-Computer (1977-1993). "Der älteste Code im Ereignis.
▲ Apple II
Glücklicherweise haben Rougiers Kollegen beim Reinigen des Büros einen Apple II gerettet. Diese "alte Antiquität" ist nicht einfach zu "bedienen". Die altmodische Festplatte kann nicht an den aktuellen Computer angeschlossen werden, und die Bedienung des Codes ist zu einem großen Problem geworden. Am Ende fand Rougier die altmodische Festplatte 1993 bei Amazon. Nachdem er die Daten dreimal geschrieben hatte, "aktivierte" er die Festplatte und verfügte über die erforderliche Hardware-Grundlage, um den Code auszuführen.
Viele Menschen sind auf ähnliche Probleme gestoßen. Zum Beispiel sagte Hinsen, der Initiator des Ereignisses, dass der Code, den er in den 90er Jahren geschrieben hat, auf einer Diskette gespeichert war und er jetzt kein Tool zum Lesen der entsprechenden Diskette finden kann.
▲ Das System beeinflusst auch den Betrieb alter Codes. Bild von: Sabino Maggi
Darüber hinaus ist auch die Systemumgebung sehr wichtig.
Sabino Maggi ist Computerphysiker in Italien. 1996 modellierte er in Fortran ein supraleitendes Gerät und verarbeitete die Ergebnisse mit Microsoft Visual Basic. Mehr als zwei Jahrzehnte später war „Visual Basic eine tote Sprache, die seit langem durch Visual Basic.NET ersetzt wurde.“ Maggi konnte erst vor zehn Jahren eine virtuelle Windows-Maschine auf seinem Mac-Computer erstellen, um zu versuchen, Code auszuführen . Glücklicherweise waren viele 1996 von Windows veröffentlichte Systemversionen nicht vorwärtskompatibel, was dazu führte, dass Maggis Code nicht erfolgreich ausgeführt werden konnte.
Der Code, der von jemandem im Alter von 9 Jahren geschrieben wurde, kann immer noch ausgeführt werden, aber ich spiele im Alter von 9 Jahren im Schlamm
▲ Der erste Code, der auf der 10-Jahres-Code-Challenge-Seite eingereicht wurde
"Als ich 9 Jahre alt war, habe ich versucht, einen Ast mit Gras zu heilen." (Als ich 9 Jahre alt war, habe ich versucht, einen Ast mit Gras zu heilen.)
Ein junger Bruder sagte auf YouTube, dass der Code, den er im Alter von 9 Jahren schrieb, immer noch funktionieren würde. Ein Benutzer hat einen Kommentar wie den oben genannten gepostet und 6.363 Likes erhalten.
Wie lautet der Code für die Teilnahme an der "Ten Year Code Challenge" dieses Mal?
Ai Faner betrat die Ereignisseite auf GitHub und stellte fest, dass diese Codes nicht den Erwartungen entsprachen. Ein erheblicher Teil davon bezieht sich auf wissenschaftliche Forschung und weist eine geringe direkte Korrelation mit der Öffentlichkeit auf.
Beispielsweise heißt der Code des ersten Teilnehmers John (EBo) David, der vor 22 Jahren geschrieben wurde, "Das Verhalten von Landschaftsmetriken, die üblicherweise bei der Untersuchung der Habitatfragmentierung verwendet werden" (das Verhalten von Landschaftsmetriken, die üblicherweise bei der Untersuchung der Habitatfragmentierung verwendet werden). ).
Es gibt auch Codes, die sich auf das Gebiet der Physik und Mathematik beziehen, wie "Fermionen bei Einheitlichkeit", "Schätzungen der dodekaedrischen Raumparameter von Poincaré" und so weiter.
"Typografische Merkmale für die Erkennung von Szenentexten", "Auswirkungen von Feuer auf die regionale Evapotranspiration im zentralkanadischen borealen Wald" können als Grad der Relevanz für normale Menschen angesehen werden Es ist relativ hoch.
▲ Code für die Erforschung von Herz-Kreislauf-Erkrankungen vor fünfzehn Jahren
Es gibt auch einige Codes, mit denen wir uns ein bisschen wie "modernes Internet" fühlen können. Zum Beispiel erinnert uns "Genauigkeitsstudie und Verbesserung der Netzwerksimulation im SimGrid Framework" an die letzten Jahre. Die "KI" des Feuers, und dieser Code wurde tatsächlich im Jahr 2009 veröffentlicht.
Genetik, Neurologie, Informatik, Biologie, Physik, Mathematik usw. sind alle beteiligt.
Wir spekulieren, dass es zwei Gründe geben kann, warum sich der Code, der an der Aktivität auf der Seite "Ten Years of Code Challenge" beteiligt ist, von dem vorgestellten Code "Software Development" unterscheidet.
Erstens sind dank des perfekten Thesis-Systems viele Codes, die sich auf die Thesis beziehen oder die Thesis veröffentlicht haben, gut erhalten. Nur der erhaltene Code kann an dieser Aktivität teilnehmen. Zweitens waren vor mehr als einem Jahrzehnt weder Computer noch Programmiertechniken so beliebt wie heute, und die Verwendung von Computern und Codes konzentrierte sich stärker auf High-Tech-Bereiche.
Hinweis: Die obigen Übersetzungen stammen alle von Google
Code verändert die Welt
Unbewusst ist die Programmiersprache zu einem der Dinge geworden, die die Entwicklung der Welt beeinflussen können, und sie hat mehr oder weniger verschiedene Verbindungen zum Leben eines jeden. Man kann sogar sagen, dass wir nicht mit Programmieren leben, mit Programmieren leben und mit Programmieren tot sind. "- Die medizinischen Geräte, die zur Entbindung von Babys verwendet werden, müssen mit Betriebssoftware programmiert werden. Jeder Aspekt von der Kindheit bis zum Alter erfordert die Teilnahme an der Programmierung (wie WeChat, Imbiss usw.). Das medizinische System, das unseren Tod verzögert, muss auch programmiert werden, um verschiedene Software zu produzieren.
Am 25. März dieses Jahres stellten viele Benutzer fest, dass beim Öffnen der Taobao-App mit ihrem iPhone automatisch ein Dialogfeld angezeigt wurde, in dem der Benutzer aufgefordert wurde, die Taobao-App in drei Tagen nicht mehr zu verwenden. Viele Gangster befürchteten, dass sie ihre Einkaufswagen in Zukunft nicht mehr leeren könnten. Danach veröffentlichte Taobao schnell eine neue Version, um diesen Fehler zu beheben.
Stellen Sie sich vor, wenn Taobao in 3 Tagen wirklich nicht mehr verfügbar ist, wie werden wir persönlich und die gesamte Gesellschaft davon betroffen sein? Was passiert, wenn an einem bestimmten Tag um 12 Uhr nicht alle Apps für die Zustellung von Lebensmitteln verfügbar sind?
Während Code die Welt verändert, bringt er auch viele neue Probleme mit sich. Die interessantesten sind persönliche Daten und Datenschutzprobleme.
Vor nicht allzu langer Zeit wurde die MIUI 12-Beta-Version von Xiaomi gestartet und eine neue "Flare" -Funktion gestartet. Viele Apps sind "unrealistisch". Es stellt sich heraus, dass einige Apps die privaten Informationen von Benutzern bis zu Tausenden von Benutzern täglich ohne Wissen des Benutzers leise lesen. Zweitens: Welche Art von Code steckt neben dem erforderlichen Weckverhalten hinter den unnötigen "kleinen Aktionen" der App? Wer hat den Code für die MIUI 12-Fackeln geschrieben, um unsere Privatsphäre zu schützen?
▲ Die von MIUI 12 angezeigte Fackelfunktion
Am 3. September startete die App "Suzhou City Code" in Suzhou die Funktion "Suzhou City Civilization Code". Diese Funktion zielt darauf ab, ein System zur Identifizierung von Zivilisationspunktinformationen aufzubauen und ein "persönliches Porträt" der Bürgerzivilisation zu erstellen. Bürger mit hohen Zivilisationspunkten werden es sein Das Genießen der Priorität und Bequemlichkeit von Arbeit, Leben, Beschäftigung, Studium und Unterhaltung hat in der Öffentlichkeit eine breite Diskussion ausgelöst. Viele Menschen glauben, dass der Standard von "zivilisiert" nicht objektiv genug ist und die Bestrafung von "unzivilisiert" leicht durch Technologie beeinflusst werden kann. Die Beijing News veröffentlichten einen besonderen Kommentar dazu, ob sie der Verfahrensgerechtigkeit gefolgt sind und ob sie die "rote Linie" der Verwaltung gemäß dem Gesetz durchbrochen haben.
Wenn wir einige Produktschlüsselwörter auf dem Mobiltelefon eingeben und von der Cloud synchronisiert werden oder die Zwischenablage von der App lesen, können wir ähnliche Produkte am nächsten Tag an der prominenten Stelle der Einkaufs-App sehen. Ich weiß nicht, wer diese Funktion geschrieben hat. Code?
Als Werkzeug zum Aufbau einer virtuellen Gesellschaft spiegelt Code tatsächlich die menschliche Natur der realen Gesellschaft wider. Programmiersprachen waren schon immer da, wie man sie benutzt, hängt schließlich von uns ab.
#Willkommen Sie, wenn Sie Aifaners offiziellem WeChat-Konto folgen: Aifaner (WeChat ID: ifanr). Weitere aufregende Inhalte werden Ihnen so schnell wie möglich zur Verfügung gestellt.