《Hello,World!》46年过去了,这段家喻户晓的代码依然散发着永恒的魅力,与它一同出现的C语言,已经成长为世界上最流行的编程语言之一,为互联网世界乃至现实世界编织了更加美好的未来.为了回顾和纪念编程的历史,GitHub上的计算机神经科学家NicolasRougier和理论生物物理学家KonradHinsen联合发起了十年重现性挑战(TenYearsCodeChallenge)活动,鼓励大家找出自己是十年前或更长时间。最早的代码,看看现在这些代码还能不能运行,代码相关的研究能不能复现。目前已有数十位参与者在活动页面提交了十几年前的代码。这些代码在当时被认为是高科技、尖端技术,但现在很多代码都被当事人贴上了“可操作性低”的标签。这是我们外人很难理解的。编程的字母和符号都没有变,为什么不能运行呢?十多年来,首先发生变化的是编程语言和工具。以前流行一个笑话,说“写C的看不起写C++的,写C++的看不起写Java的,写Java的看不起写C#的,最后大家看看不起那些编写PHP的人”。一个笑话,充分说明了编程语言的变迁。TIOBE(ProgrammingLanguageRankingList)发布了近20年编程语言排行榜的趋势图。总体来看,Java和C语言依然占据No.起死回生,半路被Swift“杀死”。▲2002-2020年编程语言趋势。图片来自:TIOBE工具变化往往与编程语言变化同步。在2009年,Spring需要几个XML配置和Java文件,2019年只需要一个Java/Kotlin文件。十年前,前端只有PlainOldJavascript、jQuery、ExtJS,现在有超过▲工具的变化▲可选性大大提高“唯一没有太大变化的可能是算法吧?”国外程序员说十年前的Statistics(统计)变成了十年后的MachineLearning(机器)learning),但是算法公式还是一样的。先问你在不在,再问你能不能“跑”▲全球最大的程序员“交友”和代码托管平台,2008年才上线如果你想知道十年前的代码还能不能“跑”》,你首先要能够找到十年前的代码——这也是“十年代码挑战赛”在圈内备受关注的原因之一,但迄今为止参与人数并不多。知名的项目托管平台GitHub是2008年4月才上线的,2012年后很多人开始用它来托管代码。之前的代码大多以论文、杂志等形式保存,所以很多它丢失了。例如,法国国家信息与自动化研究所的计算机科学家罗伯托·迪科斯莫在1998年发表论文,编写了一个名为“OcamlP3l”的并行编程系统,但他搜索了自己和合作者的硬盘和备份.能找到代码,终于偶然在一个抢码网站上找到了当年的代码。参加活动的还有一个鲁吉尔。他的代码发表在32年前的《Tremplin Micro》杂志上。这家杂志社早已消失在历史的长河中。相当于编程史上从未存在过的代码。很难想象,代码作为互联网的产物,也会因为新旧时代存储容器的革新而丢失。这是“十年代码挑战赛”给编程圈带来的第一个现实意义。如何妥善保留以前的代码是值得考虑的事情。你的“跑”要靠你的“跑”,没有当年的软硬件是没有用的,你现在还能找到这些软硬件吗?上面提到的Rougier就遇到过这样的问题。32年前的1988年,他才16岁。他为AppleII计算机(1977-1993)的图像放大器编写了程序代码。》活动中最古老的代码。▲AppleII幸运的是,Rougier的同事在打扫办公室时拯救了一台AppleII。这个“老古董”不好“伺候”。问题。最后,Rougier找到了一个老式磁盘从1993年在亚马逊开始,用了3次数据写入才“盘活”了磁盘,具备了运行代码的必要硬件基础,很多人都遇到过类似的问题,比如事件发起人Hinsen就表示,他在1990年代编写的代码存储在一张软盘上,现在他找不到读取相应软盘的工具。▲系统也会影响旧代码的运行。图片来自:SabinoMaggi另外,系统环境也很重要。意大利的计算机物理学家SabinoMaggi于1996年在Fortran中建立了一个超导设备的模型,并在MicrosoftVisualBasic中处理了结果。20多年后,“VisualBasic是一门死语言,早已被VisualBasic.NET所取代”,Maggi只能在他的Mac电脑上制作一个十年前的Windows虚拟机来尝试运行代码。无独有偶,1996年Windows发布的很多系统版本并不向前兼容,导致Maggi的代码无法成功运行。别人9岁写的代码还能跑,我9岁就在玩泥巴,9岁的时候试过用草来救断树。)YouTube上有个小伙子说他9岁时编写的代码仍然有效,一位用户发表了类似上述的评论,并获得了6363个赞。本次参加“十年代码挑战赛”的代码是什么?爱范儿进入GitHub上的活动页面,发现这些代码和我们预想的不一样。其中相当一部分与科研有关,与公众衣食住行的直接关联性较低。比如第一位参与者John(EBo)David提交的代码,写于22年前,名为“Thebehavioroflandscapemetricscommonlyusedinthestudyofhabitatfragmentation”(thebehavioroflandscapemetricscommonlyusedinthestudyof栖息地破碎化)。还有与物理学和数学研究领域相关的代码,如“酉性费米子(unifiedfermions)”、“庞加莱十二面体空间参数估计(Poincarédodecahedralspaceparameterestimates)”等。《Typographicalfeaturesforscenetextrecognition(场景文本识别的打印功能)》、《EffectsoffireonregionalevapotranpirationinthecentralCanadianborealforest(火灾对加拿大中部北方森林的区域蒸散)》可视为与普通的相关人是比较高的。▲十五年前心血管疾病研究的代码,能让我们感受到一点“现代互联网”的代码,比如《AccuracyStudyandImprovementofNetworkSimulationintheSimGridFramework》(TheaccuracyofnetworksimulationintheSimGridframeworkResearchandImprovement)”让我们想起近年火爆的“AI”,而这段代码其实是在2009年发布的。遗传学、神经学、计算机科学、生物学、物理学、数学等都有涉及。我们推测,“十年代码挑战”页面中涉及的代码与想象中的“软件开发”代码不同的原因可能有两个。首先,得益于完善的论文系统,很多与论文或已发表论文相关的代码都得到了很好的保存,只有保存的代码才能参与本次活动。第二,十多年前计算机和编程技术都没有像现在这样普及,计算机和代码的使用更集中在高科技领域。备注:以上翻译均来自GoogleCodeChangingtheworld不知不觉中,编程语言已经成为能够影响世界发展轨迹的事物之一,与每个人的生活或多或少都有联系。人不能没有编程,不能没有编程,不能没有编程,不能死。从小到大(比如微信、外卖等),延缓我们死亡的医疗系统也需要编程制作各种软件。今年3月25日,不少用户发现用iPhone打开淘宝APP时,会自动弹出一个对话框,提示3天后将无法使用淘宝APP。很多购物者担心不能愉快地清空购物车。之后淘宝很快出新版本修复了这个bug。试想一下,如果淘宝真的在3天内无法使用,我们个人乃至整个社会将受到怎样的影响?如果某天中午12:00所有的外卖APP都不可用,会发生什么?代码在改变世界的同时,也带来了很多新的问题,其中最引人注目的就是个人数据和隐私问题。前不久,小米MIUI12公测版上线,全新的“光晕”功能上线。许多应用程序“露出了本来面目”。原来,有些APP甚至每天悄悄读取用户的隐私信息。第二,除了必要的关联唤醒行为外,app不必要的“小动作”背后又是怎样的代码?保护我们隐私的MIUI12弹幕代码是谁写的?▲MIUI12展示的闪光灯功能9月3日,苏州“苏城密码”APP上线了“苏州城市文明密码”功能。积分高的市民将在工作、生活、就业、学习、娱乐等方面享有优先权和便利性,引发了社会各界的广泛讨论。很多人认为“文明”的标准不够客观,“不文明”的处罚很容易被排除在外。技术左右。新京报发表专题评论——是否遵循程序正义,是否突破依法行政“红??线”。还有,当我们在手机端输入一些商品关键词,云端同步或者app读取剪贴板时,第二天我们就可以在购物app的显着位置看到类似的商品。不知道这个功能代码是谁写的?代码作为构建虚拟社会的工具,其实是人性在现实社会中的反映。编程语言一直都在,怎么用终究要看我们自己了。
