傻大方


首页 > 人文 >

编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II



按关键词阅读:

46 年过去,这段被世人熟知的代码仍散发着历久弥新的魅力,和它一起登场的 C 语言,如今也成长为世界几大通行编程语言之一,为互联网世界乃至现实世界都编织着更美好的未来。
为了回顾和纪念编程史,GitHub 上的计算机神经科学家 Nicolas Rougier 和理论生物物理学家 Konrad Hinsen 共同发起了一项 Ten Years Reproducibility Challenge(十年代码挑战)活动,鼓励大家找出自己十年前或更早的代码,看看这些代码现在还能不能运行,代码相关的研究能不能复现。
 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II
文章图片
目前,活动页面上已经有几十名参与者提交了十多年前的代码,这些代码在当年看来算得上高新前沿技术,但现在不少被当事人打上了「运行可能性低」的标签。这在我们行外人看来很难理解,编程的字母和符号没变,为什么就不能运行了呢?
十多年,首先变的是编程语言和工具
之前流行一句玩笑话,说「写 C 语言的看不起写 C++ 的,写 C++ 的看不起写 Java 的,写 Java 的看不起写 C# 的,最后大家一起看不起写 PHP 的」。
一句玩笑话,充分说明了编程语言的变化。
TIOBE(编程语言排行榜单) 公布了近 20 年的编程语言排行变化趋势图,总体来看,Java 和 C 语言仍然占据老大老二的位置,Python 异军突起,PHP、C++、C# 持续走低,SQL「起死回生」,Swift 半路「杀出」。
 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II
文章图片
2002 年到 2020 年编程语言趋势图 . 图片来自:TIOBE
工具的变化往往和编程语言的变化是同步的。
2009 年,Spring 需要若干 XML 配置和 Java 文件,而 2019 年只需要一个 Java/Kotlin 文件就可以。十年前前端只有 Plain Old Javascript、jQuery、ExtJS 可选,而如今就有二十多个选项。
 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II
文章图片
工具的变化
 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II
文章图片
可选性大大提升
「唯一没大变的,可能就是算法了吧?」国外一位程序员小哥说,十年前的 Statistics(统计),到了十年后摇身一变成了 Machine Learning(机器学习),可是算法公式还是一样的。
【 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II】先问在不在,再问能不能「run」
 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II
文章图片
全球最大的程序员「交友」及代码托管平台,2008 年才上线
要想知道十年前的代码还能不能「run」起来,首先必须能找到十年前的代码 —— 这也是「十年代码挑战」虽然在圈内引起不少关注但截至目前参与者不多的原因之一。
知名的项目托管平台 GitHub 2008 年 4 月才上线,很多人更是在 2012 年后才开始使用它托管代码,在此之前的代码大多以论文、杂志期刊等形式保存,因此遗失了不少。
例如,法国国家信息与自动化研究所的计算机科学家 Roberto DiCosmo 在 1998 年发布了一篇论文,写了一个名为「OcamlP3l」的并行编程系统,但找遍自己和合著者的硬盘以及备份,他也没能找到代码,最后机缘巧合才在一个代码抓取网站找到当年的代码。
还有一位参与活动的 Rougier ,他的代码发表在 32 年前的杂志《Tremplin Micro》上,这家杂志出版商早已消失在历史的长河中,如果没有其它备份途径又找不到当年的杂志,这份代码相当于在编程历史上从未存在过。
很难想象,作为互联网的产物,代码也会因为新老时代存储容器革新的问题而遗失,这是「十年代码挑战」给编程圈带来的第一个现实意义,如何妥善保管之前的代码是值得考虑的事情。
你「run」凭你「run」,没当年的软硬件也白搭
找到当年的代码后,别高兴得太早,第二个问题来了,相当一部分代码是「run」在当年的软硬件载体上,现在还能找得到这些软硬件吗?
前文提到的 Rougier 就遇到了这样的问题,32 年前 1988 年他才 16 岁,给 Apple II 电脑(1977 年 -1993 年)写了一个图像放大器的程序代码,是截至目前「十年代码挑战」活动中最古老的代码。
 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II
文章图片
Apple II
还好 Rougier 的同事在清理办公室时抢救出了一台 Apple II ,这台「老古董」可不好「伺候」,它的老式磁盘无法和现在的计算机连接,代码的运行也就成了大难题。最终 Rougier 在亚马逊上淘到了 1993 年的老式磁盘,写入了三次数据才「盘活」磁盘,有了运行代码的必要硬件基础。
遇到类似问题的人不少,比如活动的发起者 Hinsen 说,他在 90 年代写的代码都保存在软盘里,现在找不到读取相应软盘的的工具了。
系统也会影响老旧代码的运行 . 图片来自:Sabino Maggi
另外,系统环境也很重要。
Sabino Maggi 是意大利的一名计算机物理学家,他在 1996 年用 Fortran 语言建模了一个超导装置,并用 Microsoft Visual Basic 来处理结果。


稿源:(中金网)

【】网址:http://www.shadafang.com/c/sc092M954442020.html

标题: 编程语言|为了运行十年前的代码 程序员们翻出了一台 1977 年的 Apple II


上一篇: 电商行业|佛冈95后电商人姚斌:10年追梦,成榴莲网销“顶流”

下一篇: 无人驾驶|滴滴柳青:无人驾驶技术如同交通领域的青霉素


人文

道梵老师|教师节送花?不如告诉恩师们击退肩周炎的九种疗法

阅读(24)

9月10日 , 一年一度的教师节即将到来 。 教师 , 是一个集脑力劳动与体力劳动于一体的职业 , “辛勤的园丁们”在繁重而辛劳的教学中 , 自身健康“成绩”也面临众多挑战 。 老师们长期伏案工作 , 很容易因为劳损而引起肩周炎 , 导致举手困难 。 特別是50...

人文

taq|魔兽怀旧服:死钉真香,比风剑还值钱,工作室带的节奏?

阅读(24)

首先不得不说的是,死钉确实很香。在盗贼这个职业的怀旧服装备规划里,死钉绝对是必拿的装备。因为哪怕后期出了帝陨,死钉依然是可以副手的毕业存在。所以对于盗贼玩家来说,这把武器无论多少钱,只要想追求毕业,也都要硬着头皮吃下去。而且更重要的是,现在...

人文

品味生活▲心脏病患者如何运动

阅读(33)

对于那些病情较轻,以前就有运动基础的患者来说,可以选择短距离慢跑,慢跑时最高心率应该控制在120次/分以下。运动前进行合理的热身活动、运动时要循序渐进,运动后还要进行拉伸,避免运动损伤。▲...

人文

「沈阳网」国家卫健委发布重要通知

阅读(19)

据国家卫健委官网消息 , 昨日国务院应对新型冠状病毒肺炎疫情联防联控机制综合组发布了《关于发挥医疗机构哨点作用做好常态化疫情防控工作的通知》 , 通知称 , 对于所有到发热门诊就诊的患者 , 必须扫“健康码” , 并进行核酸检测 。 文章图片 关于发挥...

人文

【来可能不孝】当孩子出现在《3个信号》中时,将来可能就不孝顺了。最后一个必须立即纠正

阅读(35)

白叟常说,三岁看岁看老。孩子长大年夜后的性格,在孩子小的时刻就能看出来,是以,家长要大年夜小就教导孩子,给孩子建立精确的三不雅,养成优胜的习惯。部分家长可能不知道,孩子出现“三个旌旗灯号”,将来可能不孝敬,最后一种必须要急速改┞俘!“这是我...

人文

植入|突破!马斯克演示芯片植入猪脑新技术

阅读(40)

资料图,新华社供图马斯克介绍,这枚名为“Link”的设备约为硬币大小,由其旗下的脑机接口公司——“神经连接”公司开发,植入大脑后能够读取大脑活动。这一设备可通过蓝牙连接智能手机,电池续航时间为一整天。演示现场展示了3只实验小猪:一只在两个月前被...