“Hello,World!”
46年过去,这段被世人熟知的代码仍散发着历久弥新的魅力,和它一起登场的C语言,如今也成长为世界几大通行编程语言之一,为互联网世界乃至现实世界都编织着更美好的未来。
为了回顾和纪念编程史,GitHub上的计算机神经科学家NicolasRougier和理论生物物理学家KonradHinsen共同发起了一项TenYearsReproducibilityChallenge(十年代码挑战)活动,鼓励大家找出自己十年前或更早的代码,看看这些代码现在还能不能运行,代码相关的研究能不能复现。
目前,活动页面上已经有几十名参与者提交了十多年前的代码,这些代码在当年看来算得上高新前沿技术,但现在不少被当事人打上了「运行可能性低」的标签。这在我们行外人看来很难理解,编程的字母和符号没变,为什么就不能运行了呢?
十多年,首先变的是编程语言和工具
之前流行一句玩笑话,说「写C语言的看不起写C++的,写C++的看不起写Java的,写Java的看不起写C#的,最后大家一起看不起写PHP的」。
一句玩笑话,充分说明了编程语言的变化。
TIOBE(编程语言排行榜单)公布了近20年的编程语言排行变化趋势图,总体来看,Java和C语言仍然占据老大老二的位置,Python异军突起,PHP、C++、C#持续走低,SQL「起死回生」,Swift半路「杀出」。
▲年到年编程语言趋势图.图片来自:TIOBE
工具的变化往往和编程语言的变化是同步的。
年,Spring需要若干XML配置和Java文件,而年只需要一个Java/Kotlin文件就可以。十年前前端只有PlainOldJavascript、jQuery、ExtJS可选,而如今就有二十多个选项。
▲工具的变化
▲可选性大大提升
「唯一没大变的,可能就是算法了吧?」国外一位程序员小哥说,十年前的Statistics(统计),到了十年后摇身一变成了MachineLearning(机器学习),可是算法公式还是一样的。
先问在不在,再问能不能「run」
▲全球最大的程序员「交友」及代码托管平台,年才上线
要想知道十年前的代码还能不能「run」起来,首先必须能找到十年前的代码——这也是「十年代码挑战」虽然在圈内引起不少