自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

新聞 前端
為了回顧和紀(jì)念編程史,GitHub 上的計(jì)算機(jī)神經(jīng)科學(xué)家 Nicolas Rougier 和理論生物物理學(xué)家 Konrad Hinsen 共同發(fā)起了一項(xiàng) Ten Years Reproducibility Challenge(十年代碼挑戰(zhàn))活動,鼓勵大家找出自己十年前或更早的代碼。

“Hello, World!”

46 年過去,這段被世人熟知的代碼仍散發(fā)著歷久彌新的魅力,和它一起登場的 C 語言,如今也成長為世界幾大通行編程語言之一,為互聯(lián)網(wǎng)世界乃至現(xiàn)實(shí)世界都編織著更美好的未來。

為了回顧和紀(jì)念編程史,GitHub 上的計(jì)算機(jī)神經(jīng)科學(xué)家 Nicolas Rougier 和理論生物物理學(xué)家 Konrad Hinsen 共同發(fā)起了一項(xiàng) Ten Years Reproducibility Challenge(十年代碼挑戰(zhàn))活動,鼓勵大家找出自己十年前或更早的代碼,看看這些代碼現(xiàn)在還能不能運(yùn)行,代碼相關(guān)的研究能不能復(fù)現(xiàn)。

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

目前,活動頁面上已經(jīng)有幾十名參與者提交了十多年前的代碼,這些代碼在當(dāng)年看來算得上高新前沿技術(shù),但現(xiàn)在不少被當(dāng)事人打上了「運(yùn)行可能性低」的標(biāo)簽。這在我們行外人看來很難理解,編程的字母和符號沒變,為什么就不能運(yùn)行了呢?

十多年,首先變的是編程語言和工具

之前流行一句玩笑話,說「寫 C 語言的看不起寫 C++ 的,寫 C++ 的看不起寫 Java 的,寫 Java 的看不起寫 C# 的,最后大家一起看不起寫 PHP 的」。

一句玩笑話,充分說明了編程語言的變化。

TIOBE(編程語言排行榜單)公布了近 20 年的編程語言排行變化趨勢圖,總體來看,Java 和 C 語言仍然占據(jù)老大老二的位置,Python 異軍突起,PHP、C++、C# 持續(xù)走低,SQL「起死回生」,Swift 半路「殺出」。

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 2002 年到 2020 年編程語言趨勢圖。圖片來自:TIOBE

工具的變化往往和編程語言的變化是同步的。

2009 年,Spring 需要若干 XML 配置和 Java 文件,而 2019 年只需要一個 Java/Kotlin 文件就可以。十年前前端只有 Plain Old Javascript、jQuery、ExtJS 可選,而如今就有二十多個選項(xiàng)。

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 工具的變化

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 可選性大大提升

「唯一沒大變的,可能就是算法了吧?」國外一位程序員小哥說,十年前的 Statistics(統(tǒng)計(jì)),到了十年后搖身一變成了 Machine Learning(機(jī)器學(xué)習(xí)),可是算法公式還是一樣的。

先問在不在,再問能不能「run」

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 全球最大的程序員「交友」及代碼托管平臺,2008 年才上線

要想知道十年前的代碼還能不能「run」起來,首先必須能找到十年前的代碼 —— 這也是「十年代碼挑戰(zhàn)」雖然在圈內(nèi)引起不少關(guān)注但截至目前參與者不多的原因之一。

知名的項(xiàng)目托管平臺 GitHub 2008 年 4 月才上線,很多人更是在 2012 年后才開始使用它托管代碼,在此之前的代碼大多以論文、雜志期刊等形式保存,因此遺失了不少。

例如,法國國家信息與自動化研究所的計(jì)算機(jī)科學(xué)家 Roberto DiCosmo 在 1998 年發(fā)布了一篇論文,寫了一個名為「OcamlP3l」的并行編程系統(tǒng),但找遍自己和合著者的硬盤以及備份,他也沒能找到代碼,最后機(jī)緣巧合才在一個代碼抓取網(wǎng)站找到當(dāng)年的代碼。

還有一位參與活動的 Rougier ,他的代碼發(fā)表在 32 年前的雜志《Tremplin Micro》上,這家雜志出版商早已消失在歷史的長河中,如果沒有其它備份途徑又找不到當(dāng)年的雜志,這份代碼相當(dāng)于在編程歷史上從未存在過。

很難想象,作為互聯(lián)網(wǎng)的產(chǎn)物,代碼也會因?yàn)樾吕蠒r代存儲容器革新的問題而遺失,這是「十年代碼挑戰(zhàn)」給編程圈帶來的第一個現(xiàn)實(shí)意義,如何妥善保管之前的代碼是值得考慮的事情。

你「run」憑你「run」,沒當(dāng)年的軟硬件也白搭

找到當(dāng)年的代碼后,別高興得太早,第二個問題來了,相當(dāng)一部分代碼是「run」在當(dāng)年的軟硬件載體上,現(xiàn)在還能找得到這些軟硬件嗎?

前文提到的 Rougier 就遇到了這樣的問題,32 年前 1988 年他才 16 歲,給 Apple II 電腦(1977 年 - 1993 年)寫了一個圖像放大器的程序代碼,是截至目前「十年代碼挑戰(zhàn)」活動中最古老的代碼。

[[341589]]

▲ Apple II

還好 Rougier 的同事在清理辦公室時搶救出了一臺 Apple II ,這臺「老古董」可不好「伺候」,它的老式磁盤無法和現(xiàn)在的計(jì)算機(jī)連接,代碼的運(yùn)行也就成了大難題。最終 Rougier 在亞馬遜上淘到了 1993 年的老式磁盤,寫入了三次數(shù)據(jù)才「盤活」磁盤,有了運(yùn)行代碼的必要硬件基礎(chǔ)。

遇到類似問題的人不少,比如活動的發(fā)起者 Hinsen 說,他在 90 年代寫的代碼都保存在軟盤里,現(xiàn)在找不到讀取相應(yīng)軟盤的的工具了。

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 系統(tǒng)也會影響老舊代碼的運(yùn)行。圖片來自:Sabino Maggi

另外,系統(tǒng)環(huán)境也很重要。

Sabino Maggi 是意大利的一名計(jì)算機(jī)物理學(xué)家,他在 1996 年用 Fortran 語言建模了一個超導(dǎo)裝置,并用 Microsoft Visual Basic 來處理結(jié)果。二十多年過去,「Visual Basic 是一門死掉的語言,早就被 Visual Basic.NET 取代」,Maggi 只能在自己的 Mac 電腦上做了一個十年前的 Windows 虛擬機(jī)來嘗試運(yùn)行代碼。好巧不巧,Windows 在 96 年發(fā)布的眾多系統(tǒng)版本不向前兼容,導(dǎo)致 Maggi 的代碼沒能成功運(yùn)行。

人家 9 歲寫的代碼還能運(yùn)行,9 歲的我卻在玩泥巴

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 十年代碼挑戰(zhàn)網(wǎng)頁第一個提交的代碼

「When I was 9 I tried to heal a trees broken branch with grass.」(當(dāng)我 9 歲的時候,我試圖用草來治療一棵樹的斷枝。)

一位年輕的小哥在 YouTube 上說自己 9 歲寫的代碼還能運(yùn)行,一位用戶發(fā)布了上面這樣的評論,獲得了 6363 個贊。

這次參與「十年代碼挑戰(zhàn)」的代碼都是什么樣的呢?

愛范兒進(jìn)入 GitHub 上的活動頁面,發(fā)現(xiàn)這些代碼和我們預(yù)想的不太一樣,相當(dāng)一部分是和科學(xué)研究有關(guān)的,和大眾衣食住行的直接關(guān)聯(lián)性較低。

比如第一個參與人 John (EBo) David 提交的代碼,寫于 22 年前,名為「The behavior of landscape metrics commonly used in the study of habitat fragmentation」(常用于生境破碎化研究的景觀度量的行為)。

還有的代碼涉及物理和數(shù)學(xué)研究領(lǐng)域,像「fermions at unitarity(統(tǒng)一的費(fèi)米子)」、「Poincaré dodecahedral space parameter estimates(龐加萊十二面體空間參數(shù)估計(jì)值)」等。

「Typographical features for scene text recognition(場景文字識別的印刷功能)」、「Effects of fire on regional evapotranspiration in the central Canadian boreal forest(火對加拿大中部北方森林中區(qū)域蒸散的影響)」算是和普通人關(guān)聯(lián)度比較高的了。

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ 十五年前有關(guān)心血管疾病研究的代碼

能讓我們感覺到有一點(diǎn)「現(xiàn)代互聯(lián)網(wǎng)」的代碼也有一些,例如「Accuracy Study and Improvement of Network Simulation in the SimGrid Framework(SimGrid 框架中網(wǎng)絡(luò)仿真的準(zhǔn)確性研究和改進(jìn))」讓我們聯(lián)想到了近幾年大火的「AI」,而這份代碼實(shí)際發(fā)布于 2009 年。

基因?qū)W、神經(jīng)學(xué)、計(jì)算機(jī)學(xué)、生物學(xué)、物理學(xué)、數(shù)學(xué)等都有涉及。

「十年代碼挑戰(zhàn)」頁面參與活動的代碼之所以和想象中「軟件開發(fā)」代碼有所不同,我們推測可能有兩個原因。

第一,得益于完善的論文制度,很多和論文相關(guān)或發(fā)布了論文的代碼都得到了良好的保存,只有保存下來的代碼才有可能參與這次活動。第二,十多年前無論是電腦還是編程技術(shù)都不像現(xiàn)在那么普及,電腦和代碼的運(yùn)用更多集中在高精尖領(lǐng)域。

備注:以上翻譯均來自谷歌

代碼改變世界

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

不知不覺中,編程語言已經(jīng)成為能影響世界發(fā)展軌跡的事物之一,和每個人的生活或多或少產(chǎn)生著各種關(guān)聯(lián),甚至可以說我們「生不離編程,活不離編程,死不離編程」—— 接生嬰孩的醫(yī)療器械需要編程好操作軟件,從小到老的方方面面都需要編程參與(例如微信、外賣等),延緩我們死亡的醫(yī)療系統(tǒng)也需要編程制作各種軟件。

今年 3 月 25 日,不少用戶發(fā)現(xiàn)用 iPhone 打開淘寶 app 時,會自動彈出一個對話框,提示用戶 3 天后將無法使用淘寶 app,不少剁手黨都擔(dān)心以后不能愉快清空購物車了。事后,淘寶迅速發(fā)布了新版本,修復(fù)了這一 BUG。

不妨想象一下,如果 3 天后淘寶真的不能用了,我們個人乃至整個社會將會受到怎樣的影響?如果某一天中午 12 點(diǎn),所有的外賣 app 都不能使用了,又會出現(xiàn)什么樣的局面?

代碼在改變世界的同時,也帶來了很多新的問題,最引人關(guān)注的就是個人數(shù)據(jù)和隱私問題。

前不久,小米的 MIUI 12 測試版上線,新推出了「照明彈」功能,許多 app「原形畢露」,原來在用戶不知情的時候,有的 app 甚至每日悄悄讀取用戶的隱私信息高達(dá)上千次,除了必要的關(guān)聯(lián)喚醒行為,app 那些不必要的「小動作」,究竟是什么樣的代碼在背后驅(qū)動?護(hù)衛(wèi)我們隱私的 MIUI 12 照明彈的代碼,又是誰替我們寫的?

為了運(yùn)行十年前的代碼,他們翻出了1977年的Apple II

▲ MIUI 12 展示的照明彈功能

9 月 3 日,蘇州「蘇城碼」app 上線「蘇城文明碼」功能,該功能旨在構(gòu)筑起文明積分信息識別體系,形成市民文明程度「個性畫像」,文明積分等級高的市民將會享受工作、生活、就業(yè)、學(xué)習(xí)、娛樂的優(yōu)先和便利,引起了大眾的廣泛討論,不少人認(rèn)為「文明」的標(biāo)準(zhǔn)不夠客觀,「不文明」的懲罰也容易被技術(shù)左右。新京報(bào)專門發(fā)表了點(diǎn)評 —— 是否遵循了程序正義,是否突破了依法行政的「紅線」。

還有,當(dāng)我們在手機(jī)上輸入了一些商品關(guān)鍵詞被云同步或被 app 讀取剪切板后,第二天在購物 app 顯要位置就能看到相似商品,不知這個功能是誰寫下的代碼?

作為構(gòu)建虛擬社會的工具,代碼實(shí)際是現(xiàn)實(shí)社會人性的折射。編程語言一直在那里,怎么用,終究要看我們自己。

 

責(zé)任編輯:張燕妮 來源: 愛范兒
相關(guān)推薦

2020-08-25 10:50:01

代碼開發(fā)挑戰(zhàn)

2019-10-11 18:24:02

網(wǎng)站門戶網(wǎng)站互聯(lián)網(wǎng)

2021-07-12 08:53:21

互聯(lián)網(wǎng) 行業(yè)數(shù)據(jù)

2019-12-25 14:33:15

5G革命通信

2014-09-26 11:40:06

2021-01-16 08:05:30

Windows微軟互聯(lián)網(wǎng)

2018-04-28 15:42:46

iPhone XiPhone蘋果

2019-09-09 15:35:40

互聯(lián)網(wǎng)百度微博

2022-12-07 15:36:20

日系車智能電動汽車

2010-08-31 16:22:57

2018-08-02 16:21:18

路由器

2016-03-09 09:23:57

編程語言排行榜趨勢

2011-06-16 09:34:54

Mac OS十年

2022-03-28 11:41:21

物聯(lián)網(wǎng)物聯(lián)網(wǎng)市場智能電網(wǎng)

2022-09-26 15:42:15

人工智能推理

2011-05-28 17:45:41

打印機(jī)體驗(yàn)

2015-08-17 08:56:45

二十年前游戲開發(fā)開發(fā)

2015-08-17 09:45:15

開發(fā)游戲

2016-04-20 11:08:57

代碼歷史新功能

2019-12-13 16:08:57

戴爾
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號