Afin d’exécuter le code il y a dix ans, les programmeurs ont même trouvé un Apple II de 1977
"Bonjour le monde!"
Quarante-six ans plus tard, ce code bien connu dégage toujours un charme durable.Le langage C qui est apparu avec lui est maintenant devenu l'un des langages de programmation les plus populaires au monde, tissant pour le monde Internet et le monde réel. Un meilleur avenir.
Afin de revoir et de commémorer l'histoire de la programmation, Nicolas Rougier, neuroscientifique en informatique sur GitHub, et Konrad Hinsen, biophysicien théoricien, ont lancé conjointement une activité Ten Years Reproductibility Challenge (Ten Years Code Challenge), encourageant chacun à savoir s'il y a dix ans ou plus. Code antérieur, voyez si ces codes peuvent encore s'exécuter maintenant et si la recherche liée au code peut être reproduite.
À l'heure actuelle, des dizaines de participants sur la page de l'événement ont déjà soumis des codes il y a plus de dix ans. Ces codes semblaient être des technologies de pointe à l'époque, mais beaucoup d'entre eux sont désormais qualifiés de «faible possibilité opérationnelle». C'est difficile à comprendre aux yeux de nous, les étrangers. Les lettres et symboles de programmation n'ont pas changé, alors pourquoi ne peut-il pas fonctionner?
Depuis plus de dix ans, les langages et outils de programmation ont d'abord changé
Il y avait une blague populaire avant, disant: «L'écriture du langage C méprise l'écriture C ++, l'écriture C ++ méprise l'écriture Java, l'écriture Java l'écriture C #, et finalement tout le monde méprise l'écriture PHP.»
Une blague illustre pleinement les changements dans les langages de programmation.
TIOBE (liste de classement des langages de programmation) a publié un graphique de tendance des changements de classement des langages de programmation au cours des 20 dernières années. De manière générale, les langages Java et C occupent toujours les premières et deuxièmes positions. Python est soudainement apparu, PHP, C ++ et C # continuent de baisser, SQL " "Ressuscité", Swift "tué" à mi-chemin.
▲ Diagramme de tendance du langage de programmation de 2002 à 2020. Photo de: TIOBE
Les changements d'outils sont souvent synchronisés avec les changements des langages de programmation.
En 2009, Spring nécessitait plusieurs fichiers de configuration XML et Java, tandis qu'en 2019, un seul fichier Java / Kotlin était nécessaire. Il y a dix ans, il n'y avait que des options Plain Old Javascript, jQuery et ExtJS pour le front-end, mais maintenant il y a plus de vingt options.
▲ Changements d'outils
▲ L'option est grandement améliorée
"La seule chose qui n'a pas beaucoup changé, c'est peut-être l'algorithme?", A déclaré un jeune programmeur étranger. Il y a dix ans, les statistiques (statistiques) s'étaient transformées en Machine Learning (apprentissage automatique) dix ans plus tard, mais la formule de l'algorithme était toujours le même.
Demandez d'abord si vous êtes là, puis demandez si vous pouvez "courir"
▲ Le plus grand programmeur au monde "Dating Friends" et plateforme d'hébergement de code, lancé seulement en 2008
Si vous voulez savoir si le code d'il y a dix ans peut «fonctionner», vous devez d'abord être capable de trouver le code d'il y a dix ans – c'est aussi le «défi du code de la décennie». Bien qu'il ait attiré beaucoup d'attention dans le cercle, il n'y a pas beaucoup de participants jusqu'à présent. Une des raisons.
La plate-forme d'hébergement de projets bien connue GitHub n'a été lancée qu'en avril 2008, et de nombreuses personnes ont commencé à l'utiliser pour héberger du code après 2012. La plupart du code avant celui-ci était sauvegardé sous forme de journaux, de magazines, etc., donc une grande partie a été perdue.
Par exemple, Roberto DiCosmo, informaticien à l'Institut national français de l'information et de l'automatisation, a publié un article en 1998 et a écrit un système de programmation parallèle appelé "OcamlP3l", mais il n'a pas trouvé les disques durs et les sauvegardes de lui-même et de ses co-auteurs. Peut trouver le code, et finalement trouvé le code de l'année sur un site Web d'exploration de code par hasard.
Il y a aussi Rougier qui a participé à l'activité. Son code a été publié dans le magazine Tremplin Micro il y a 32 ans. Cet éditeur de magazine a longtemps disparu dans le long fleuve de l'histoire. S'il n'y a pas d'autre moyen de sauvegarder et que vous ne trouvez pas le magazine de l'année, Ce code équivaut à n'avoir jamais existé dans l'histoire de la programmation.
Il est difficile d'imaginer qu'en tant que produit d'Internet, le code sera également perdu en raison des problèmes liés à l'innovation des conteneurs de stockage dans la nouvelle et l'ancienne ère. Il s'agit de la première signification pratique apportée au cercle de programmation par la << décennie du défi du code >>. Comment conserver correctement le code précédent Cela vaut la peine d'être considéré.
Vous "run" avec votre "run", c'est inutile sans le logiciel et le matériel de l'année
Après avoir trouvé le code de l'année, ne soyez pas trop heureux. La deuxième question est ici. Une bonne partie du code est "exécutée" sur les supports logiciels et matériels de l'année. Pouvez-vous toujours trouver ces logiciels et matériels maintenant?
Rougier évoqué dans l'article précédent a rencontré un tel problème: il y a 32 ans, en 1988, il n'avait que 16 ans, il a écrit un code de programme d'amplification d'image pour l'ordinateur Apple II (1977-1993). "Le code le plus ancien de l'événement.
▲ Apple II
Heureusement, les collègues de Rougier ont sauvé un Apple II tout en nettoyant le bureau. Cette "vieille antiquité" n'est pas facile à "servir". Son disque à l'ancienne ne peut pas être connecté à l'ordinateur actuel, et le fonctionnement du code est devenu un gros problème. En fin de compte, Rougier a trouvé le disque à l'ancienne sur Amazon en 1993. Après avoir écrit les données trois fois, le disque a été «activé», et il avait la base matérielle nécessaire pour exécuter le code.
De nombreuses personnes ont rencontré des problèmes similaires. Par exemple, Hinsen, l'initiateur de l'événement, a déclaré que le code qu'il avait écrit dans les années 90 était stocké sur une disquette et qu'il ne pouvait plus trouver d'outil pour lire la disquette correspondante.
▲ Le système affectera également le fonctionnement des anciens codes Image de: Sabino Maggi
En outre, l'environnement système est également très important.
Sabino Maggi est un physicien informatique en Italie, il a modélisé un dispositif supraconducteur à Fortran en 1996 et a utilisé Microsoft Visual Basic pour traiter les résultats. Plus de deux décennies plus tard, "Visual Basic est un langage mort, qui a longtemps été remplacé par Visual Basic.NET." Maggi ne pouvait créer une machine virtuelle Windows il y a dix ans sur son ordinateur Mac pour essayer d'exécuter du code . Heureusement, de nombreuses versions du système publiées par Windows en 1996 n'étaient pas compatibles avec les versions ultérieures, ce qui a empêché le code de Maggi de s'exécuter correctement.
Le code écrit par quelqu'un à l'âge de 9 ans peut toujours fonctionner, mais je joue dans la boue à l'âge de 9 ans
▲ Le premier code soumis sur la page de défi de code décennal
«Quand j'avais 9 ans, j'ai essayé de guérir une branche d'arbre cassée avec de l'herbe.» (Quand j'avais 9 ans, j'ai essayé de guérir une branche d'arbre cassée avec de l'herbe.)
Un jeune frère a déclaré sur YouTube que le code qu'il avait écrit à l'âge de 9 ans fonctionnerait toujours. Un utilisateur a publié un commentaire comme celui ci-dessus et a reçu 6 363 likes.
Quel est le code pour participer cette fois au "Ten Year Code Challenge"?
Ai Faner est entré sur la page de l'événement sur GitHub et a constaté que ces codes n'étaient pas les mêmes que ce à quoi nous nous attendions, une partie considérable de celui-ci est liée à la recherche scientifique et a une faible corrélation directe avec le grand public.
Par exemple, le code soumis par le premier participant John (EBo) David, écrit il y a 22 ans, s'intitule «Le comportement des métriques de paysage couramment utilisées dans l'étude de la fragmentation de l'habitat» (le comportement des métriques de paysage couramment utilisées dans l'étude de la fragmentation de l'habitat) ).
Il existe également des codes liés au domaine de la physique et des mathématiques, tels que «fermions à l'unitarité», «estimations des paramètres de l'espace dodécaédrique de Poincaré», etc.
«Caractéristiques typographiques pour la reconnaissance du texte de scène», «Effets du feu sur l'évapotranspiration régionale dans la forêt boréale centrale du Canada» peuvent être considérés comme liés aux gens ordinaires. C'est relativement élevé.
▲ Code de recherche sur les maladies cardiovasculaires il y a quinze ans
Il existe également des codes qui peuvent nous faire sentir un peu «Internet moderne». Par exemple, «Étude de précision et amélioration de la simulation de réseau dans le cadre SimGrid» nous rappelle ces dernières années. L '"IA" du feu, et ce code a été publié en 2009.
La génétique, la neurologie, l'informatique, la biologie, la physique, les mathématiques, etc. sont toutes concernées.
Nous pensons qu'il peut y avoir deux raisons pour lesquelles le code impliqué dans l'activité sur la page "Ten Years of Code Challenge" est différent du code de "développement logiciel" imaginé.
Premièrement, grâce au système de thèse parfait, de nombreux codes liés à la thèse ou publiés la thèse ont été bien conservés, seul le code conservé peut participer à cette activité. Deuxièmement, il y a plus de dix ans, ni les ordinateurs ni les techniques de programmation n'étaient aussi populaires qu'aujourd'hui, et l'utilisation des ordinateurs et des codes était plus concentrée dans les domaines de haute technologie.
Remarque: les traductions ci-dessus proviennent toutes de Google
Le code change le monde
Inconsciemment, le langage de programmation est devenu l’une des choses qui peuvent affecter le développement du monde, et il a des liens plus ou moins divers avec la vie de chacun. On peut même dire que nous ne vivons pas avec la programmation, vivons avec la programmation et morts avec la programmation. "- Les dispositifs médicaux utilisés pour accoucher doivent être programmés avec un logiciel d'exploitation. Chaque aspect de l'enfance à la vieillesse nécessite une participation à des programmes (comme WeChat, plats à emporter, etc.). Le système médical qui retarde notre mort doit également être programmé pour produire divers logiciels.
Le 25 mars de cette année, de nombreux utilisateurs ont constaté que lorsqu'ils ouvraient l'application Taobao avec leur iPhone, une boîte de dialogue s'ouvrirait automatiquement, invitant l'utilisateur à ne pas pouvoir utiliser l'application Taobao dans les 3 jours. De nombreux gangsters craignaient de ne pas pouvoir vider leur panier à l'avenir. Par la suite, Taobao a rapidement publié une nouvelle version pour corriger ce bogue.
Imaginez, si Taobao devient vraiment indisponible dans 3 jours, comment serons-nous personnellement affectés et l'ensemble de la société? Que se passe-t-il si toutes les applications de livraison de nourriture ne sont pas disponibles à midi un certain jour?
Bien que le code change le monde, il apporte également de nombreux nouveaux problèmes, les plus intéressants étant les données personnelles et les problèmes de confidentialité.
Il n'y a pas si longtemps, la version bêta de MIUI 12 de Xiaomi a été lancée et une nouvelle fonction «flare» a été lancée. De nombreuses applications ont été «exposées». Il s'avère que certaines applications lisent même discrètement les informations privées des utilisateurs jusqu'à des milliers d'utilisateurs chaque jour à l'insu de l'utilisateur. Deuxièmement, en plus du comportement de réveil associé nécessaire, quel type de code se cache derrière les «petites actions» inutiles de l'application? Qui a écrit le code des fusées éclairantes MIUI 12 pour protéger notre vie privée?
▲ La fonction flares affichée par MIUI 12
Le 3 septembre, l'application Suzhou "Suzhou City Code" a lancé la fonction "Suzhou City Civilization Code". Cette fonction vise à construire un système d'identification des informations des points de civilisation et à former un "portrait personnel" de la civilisation citoyenne. Les citoyens ayant des points de civilisation élevés seront Le fait de profiter de la priorité et de la commodité du travail, de la vie, de l'emploi, des études et des divertissements a suscité de nombreuses discussions parmi le public. De nombreuses personnes pensent que la norme de "civilisé" n'est pas assez objective et que la punition des "non-civilisés" est facilement influencée par la technologie. Le Beijing News a publié un commentaire spécial indiquant s'il a suivi la justice procédurale et s'il a franchi la "ligne rouge" de l'administration conformément à la loi.
De plus, lorsque nous saisissons des mots clés de produit sur le téléphone mobile et que nous sommes synchronisés par le cloud ou que nous lisons le presse-papiers par l'application, nous pouvons voir des produits similaires au premier plan de l'application d'achat le lendemain. Je ne sais pas qui a écrit cette fonctionnalité. Code?
En tant qu'outil de construction d'une société virtuelle, le code est en fait le reflet de la nature humaine de la société réelle. Les langages de programmation ont toujours été là, comment les utiliser, après tout, dépend de nous.
#Bienvenue pour suivre le compte WeChat officiel d'Aifaner: Aifaner (WeChat ID: ifanr), un contenu plus passionnant vous sera fourni dès que possible.
Ai Faner | Lien d'origine · Voir les commentaires · Sina Weibo