Para ejecutar el código hace diez años, los programadores incluso descubrieron un Apple II de 1977
"¡Hola Mundo!"
Cuarenta y seis años después, este conocido código aún irradia un encanto duradero. El lenguaje C que apareció con él ahora se ha convertido en uno de los lenguajes de programación más populares del mundo, tejiendo para el mundo de Internet y el mundo real. Un futuro mejor.
Con el fin de revisar y conmemorar la historia de la programación, Nicolas Rougier, un neurocientífico informático en GitHub, y Konrad Hinsen, un biofísico teórico, lanzaron conjuntamente una actividad del Desafío de reproducibilidad de diez años (Desafío de reproducibilidad de diez años), alentando a todos a averiguar si eran hace diez años o más. Código anterior, vea si estos códigos todavía se pueden ejecutar ahora y si la investigación relacionada con el código se puede reproducir.
En la actualidad, decenas de participantes en la página del evento ya han enviado códigos hace más de diez años. Estos códigos parecían ser tecnologías de vanguardia de alta tecnología en ese momento, pero muchos de ellos ahora están etiquetados como "baja posibilidad operativa". Esto es difícil de entender a los ojos de los forasteros. Las letras y símbolos de programación no han cambiado, entonces, ¿por qué no puede funcionar?
Durante más de diez años, los lenguajes de programación y las herramientas cambiaron por primera vez
Antes había una broma popular que decía: "Escribir lenguaje C desprecia la escritura C ++, escribir C ++ desprecia escribir Java, escribir Java desprecia escribir C #, y finalmente todos desprecian escribir PHP".
Una broma ilustra completamente los cambios en los lenguajes de programación.
TIOBE (lista de clasificación de lenguajes de programación) ha publicado un gráfico de tendencias de cambios de clasificación de lenguajes de programación en los últimos 20 años. En términos generales, los lenguajes Java y C todavía ocupan las primeras y segundas posiciones. Python ha emergido repentinamente, PHP, C ++ y C # siguen cayendo, SQL " "Resucitado", Swift "mató" a la mitad.
▲ Tabla de tendencias del lenguaje de programación de 2002 a 2020. Imagen de: TIOBE
Los cambios en las herramientas a menudo se sincronizan con los cambios en los lenguajes de programación.
En 2009, Spring requirió varios archivos de configuración XML y Java, mientras que en 2019, solo se necesita un archivo Java / Kotlin. Hace diez años solo existían las opciones Plain Old Javascript, jQuery y ExtJS para la interfaz, pero ahora hay más de veinte opciones.
▲ Cambios en herramientas
▲ La opcionalidad ha mejorado enormemente
"Lo único que no ha cambiado mucho, ¿quizás es el algoritmo?", Dijo un joven programador del extranjero. Hace diez años, las estadísticas (estadísticas) se habían transformado en aprendizaje automático (aprendizaje automático) diez años después, pero la fórmula del algoritmo seguía siendo lo mismo.
Primero pregunte si está allí, luego pregunte si puede "correr"
▲ El programador más grande del mundo "Dating Friends" y la plataforma de alojamiento de código, recién lanzada en 2008
Si desea saber si el código de hace diez años se puede "ejecutar", primero debe poder encontrar el código de hace diez años; este es también el "desafío del código de la década". Aunque ha atraído mucha atención en el círculo, hasta ahora no hay muchos participantes. Una de las razones.
La conocida plataforma de alojamiento de proyectos GitHub se lanzó en abril de 2008 y muchas personas comenzaron a utilizarla para alojar código después de 2012. La mayor parte del código anterior se guardaba en forma de artículos, revistas, etc., por lo que se perdió mucho.
Por ejemplo, Roberto DiCosmo, informático del Instituto Nacional de Información y Automatización de Francia, publicó un artículo en 1998 y escribió un sistema de programación paralelo llamado "OcamlP3l", pero no encontró los discos duros ni las copias de seguridad de él y sus coautores. Puedo encontrar el código y finalmente encontré el código del año en un sitio web de rastreo de códigos por casualidad.
También está Rougier que participó en la actividad. Su código fue publicado en la revista Tremplin Micro hace 32 años. Esta editorial de revista hace tiempo que desapareció en el largo río de la historia. Si no hay otra forma de retroceder y no encuentras la revista del año, Este código es equivalente a nunca existió en la historia de la programación.
Es difícil imaginar que, como producto de Internet, el código también se perderá debido a los problemas de la innovación de contenedores de almacenamiento en la era nueva y antigua. Esta es la primera importancia práctica que la "década del desafío del código" trajo al círculo de programación. Cómo mantener correctamente el código anterior Vale la pena considerarlo.
Tu "corres" con tu "carrera", es inútil sin el software y hardware del año
Después de encontrar el código del año, no se sienta muy feliz. La segunda pregunta está aquí. Una gran parte del código se "ejecuta" en los proveedores de software y hardware del año. ¿Todavía puede encontrar este software y hardware ahora?
Rougier, mencionado en el artículo anterior, encontró tal problema: hace 32 años, en 1988, tenía solo 16. Escribió un código de programa de amplificador de imagen para la computadora Apple II (1977-1993). "El código más antiguo del evento.
▲ Apple II
Afortunadamente, los colegas de Rougier rescataron un Apple II mientras limpiaban la oficina. Esta "vieja antigüedad" no es fácil de "servir". Su antiguo disco no se puede conectar a la computadora actual, y el funcionamiento del código se ha convertido en un gran problema. Al final, Rougier encontró el disco antiguo en Amazon en 1993. Después de escribir los datos tres veces, el disco se "activó" y tenía la base de hardware necesaria para ejecutar el código.
Mucha gente se ha encontrado con problemas similares. Por ejemplo, Hinsen, el iniciador del evento, dijo que el código que escribió en los años 90 estaba almacenado en un disquete, y ahora no puede encontrar una herramienta para leer el disquete correspondiente.
▲ El sistema también afectará el funcionamiento de los códigos antiguos Imagen de: Sabino Maggi
Además, el entorno del sistema también es muy importante.
Sabino Maggi es un físico informático en Italia, modeló un dispositivo superconductor en Fortran en 1996 y utilizó Microsoft Visual Basic para procesar los resultados. Más de dos décadas después, "Visual Basic es un lenguaje muerto, que ha sido reemplazado durante mucho tiempo por Visual Basic.NET". Maggi solo pudo construir una máquina virtual Windows hace diez años en su computadora Mac para intentar ejecutar código . Afortunadamente, muchas versiones del sistema lanzadas por Windows en 1996 no eran compatibles con versiones posteriores, lo que provocó que el código de Maggi no se ejecutara correctamente.
El código escrito por alguien a la edad de 9 años todavía se puede ejecutar, pero estoy jugando en el barro a la edad de 9
▲ El primer código enviado en la página de desafío de código de diez años
"Cuando tenía 9 años traté de curar una rama rota de un árbol con pasto" (Cuando tenía 9 años, traté de curar una rama rota de un árbol con pasto).
Un hermano joven dijo en YouTube que el código que escribió a la edad de 9. Un usuario publicó un comentario como el anterior y recibió 6.363 me gusta.
¿Cuál es el código para participar en el "Desafío del código de diez años" esta vez?
Ai Faner ingresó a la página del evento en GitHub y encontró que estos códigos no eran los mismos que esperábamos, una parte considerable está relacionada con la investigación científica y tiene una baja correlación directa con el público en general.
Por ejemplo, el código enviado por el primer participante John (EBo) David, escrito hace 22 años, se llama "El comportamiento de las métricas del paisaje que se usan comúnmente en el estudio de la fragmentación del hábitat" (el comportamiento de las métricas del paisaje que se usan comúnmente en el estudio de la fragmentación del hábitat). ).
También existen códigos relacionados con el campo de la física y las matemáticas, como "fermiones en la unitaridad", "estimaciones de parámetros espaciales dodecaédricos de Poincaré", etc.
"Características tipográficas para el reconocimiento del texto de la escena", "Efectos del fuego en la evapotranspiración regional en el bosque boreal canadiense central" pueden considerarse como el grado de relevancia para la gente común Es relativamente alto.
▲ Código para la investigación de enfermedades cardiovasculares hace quince años
También hay algunos códigos que pueden hacernos sentir un poco como la "Internet moderna". Por ejemplo, "Estudio de precisión y mejora de la simulación de red en el marco SimGrid" nos recuerda los últimos años. La "IA" del fuego, y este código fue lanzado en 2009.
Están involucradas la genética, la neurología, la informática, la biología, la física, las matemáticas, etc.
Especulamos que puede haber dos razones por las que el código involucrado en la actividad en la página "Diez años de desafío de código" es diferente del código de "desarrollo de software" imaginado.
En primer lugar, gracias al perfecto sistema de tesis, se han conservado bien muchos códigos relacionados con la tesis o con la tesis publicada, sólo el código conservado puede participar en esta actividad. En segundo lugar, hace más de una década, ni las computadoras ni las técnicas de programación eran tan populares como lo son ahora, y el uso de computadoras y códigos estaba más concentrado en los campos de la alta tecnología.
Nota: Las traducciones anteriores son todas de Google.
El código cambia el mundo
Inconscientemente, el lenguaje de programación se ha convertido en una de las cosas que pueden afectar el desarrollo del mundo, y tiene conexiones más o menos diversas con la vida de todos. Incluso se puede decir que no estamos viviendo con programación, viviendo con programación y muertos con programación. "- Los dispositivos médicos que se utilizan para dar a luz a los bebés deben programarse con un software operativo. Cada aspecto, desde la niñez hasta la edad avanzada, requiere la participación en la programación (como WeChat, comida para llevar, etc.). El sistema médico que retrasa nuestra muerte también debe programarse para producir varios software.
El 25 de marzo de este año, muchos usuarios descubrieron que cuando abrían la aplicación Taobao con su iPhone, un cuadro de diálogo aparecía automáticamente, indicándole al usuario que no podrían usar la aplicación Taobao en 3 días. Muchos gánsteres estaban preocupados de no poder vaciar sus carritos de compras en el futuro. Posteriormente, Taobao lanzó rápidamente una nueva versión para corregir este error.
Imagínense, si Taobao realmente deja de estar disponible en 3 días, ¿cómo nos afectará a nosotros personalmente y a toda la sociedad? ¿Qué sucede si todas las aplicaciones de entrega de alimentos no están disponibles a las 12 del mediodía de un día determinado?
Si bien el código cambia el mundo, también trae muchos problemas nuevos, los más interesantes son los datos personales y los problemas de privacidad.
No hace mucho, se lanzó la versión beta MIUI 12 de Xiaomi y se lanzó una nueva función de "destello". Muchas aplicaciones son "poco realistas". Resulta que algunas aplicaciones incluso leen en silencio la información privada de los usuarios hasta miles de usuarios todos los días sin el conocimiento del usuario. En segundo lugar, además del comportamiento de activación asociado necesario, ¿qué tipo de código hay detrás de las "pequeñas acciones" innecesarias de la aplicación? ¿Quién escribió el código de las bengalas MIUI 12 para proteger nuestra privacidad?
▲ La función de bengalas mostrada por MIUI 12
El 3 de septiembre, la aplicación Suzhou "Código de la ciudad de Suzhou" lanzó la función "Código de civilización de la ciudad de Suzhou". Esta función tiene como objetivo construir un sistema de identificación de información de puntos de civilización y formar un "retrato personal" de la civilización ciudadana. Los ciudadanos con altos puntos de civilización serán Disfrutar de la prioridad y la conveniencia del trabajo, la vida, el empleo, el estudio y el entretenimiento ha suscitado un amplio debate entre el público. Mucha gente cree que el estándar de "civilizado" no es lo suficientemente objetivo y que la tecnología influye fácilmente en el castigo de los "incivilizados". Beijing News publicó un comentario especial sobre si ha seguido la justicia procesal y si ha traspasado la "línea roja" de la administración de acuerdo con la ley.
Además, cuando ingresamos algunas palabras clave de productos en el teléfono móvil y la nube las sincroniza o leemos el portapapeles mediante la aplicación, podemos ver productos similares en la posición destacada de la aplicación de compras al día siguiente. No sé quién escribió esta función. ¿Código?
Como herramienta para construir una sociedad virtual, el código es en realidad un reflejo de la naturaleza humana de la sociedad real. Los lenguajes de programación siempre han estado ahí, cómo usarlos, después de todo, depende de nosotros.
#Bienvenido a seguir la cuenta oficial de WeChat de Aifaner: Aifaner (ID de WeChat: ifanr), se le proporcionará más contenido emocionante lo antes posible.