成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為了運(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))活動(dòng),鼓勵(lì)大家找出自己十年前或更早的代碼。

“Hello, World!”

46 年過去,這段被世人熟知的代碼仍散發(fā)著歷久彌新的魅力,和它一起登場(chǎng)的 C 語(yǔ)言,如今也成長(zhǎng)為世界幾大通行編程語(yǔ)言之一,為互聯(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))活動(dòng),鼓勵(lì)大家找出自己十年前或更早的代碼,看看這些代碼現(xiàn)在還能不能運(yùn)行,代碼相關(guān)的研究能不能復(fù)現(xiàn)。

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

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

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

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

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

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

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

▲ 2002 年到 2020 年編程語(yǔ)言趨勢(shì)圖。圖片來自:TIOBE

工具的變化往往和編程語(yǔ)言的變化是同步的。

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

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

▲ 工具的變化

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

▲ 可選性大大提升

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

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

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

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

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

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

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

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

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

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

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

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

[[341589]]

▲ Apple II

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

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

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

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

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

Sabino Maggi 是意大利的一名計(jì)算機(jī)物理學(xué)家,他在 1996 年用 Fortran 語(yǔ)言建模了一個(gè)超導(dǎo)裝置,并用 Microsoft Visual Basic 來處理結(jié)果。二十多年過去,「Visual Basic 是一門死掉的語(yǔ)言,早就被 Visual Basic.NET 取代」,Maggi 只能在自己的 Mac 電腦上做了一個(gè)十年前的 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)頁(yè)第一個(gè)提交的代碼

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

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

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

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

比如第一個(gè)參與人 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(場(chǎng)景文字識(shí)別的印刷功能)」、「Effects of fire on regional evapotranspiration in the central Canadian boreal forest(火對(duì)加拿大中部北方森林中區(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)」頁(yè)面參與活動(dòng)的代碼之所以和想象中「軟件開發(fā)」代碼有所不同,我們推測(cè)可能有兩個(gè)原因。

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

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

代碼改變世界

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

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

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

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

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

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

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

▲ MIUI 12 展示的照明彈功能

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

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

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

 

責(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

日系車智能電動(dòng)汽車

2010-08-31 16:22:57

2018-08-02 16:21:18

路由器

2011-06-16 09:34:54

Mac OS十年

2016-03-09 09:23:57

編程語(yǔ)言排行榜趨勢(shì)

2022-03-28 11:41:21

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

2022-09-26 15:42:15

人工智能推理

2019-12-13 16:08:57

戴爾

2016-04-20 11:08:57

代碼歷史新功能

2011-05-28 17:45:41

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

2015-08-17 08:56:45

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

2015-08-17 09:45:15

開發(fā)游戲
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 毛片一级电影 | 色久电影 | 亚洲欧美久久 | 大香网伊人 | 中文字幕一区二区三区乱码在线 | 亚洲第一福利视频 | 成人在线观看免费 | 久久久久久久久久久一区二区 | 91福利在线观看视频 | 一级做a毛片 | 台湾佬成人网 | 在线伊人网 | 亚洲欧美成人在线 | 免费毛片在线 | 亚洲国产91 | 精品人伦一区二区三区蜜桃网站 | 日本一区二区在线视频 | 国产精品日韩在线观看 | 视频第一区 | 一级黄色片免费在线观看 | 日韩美香港a一级毛片免费 国产综合av | 国产一区二区不卡 | 日批日韩在线观看 | 一级片网站视频 | 欧美性影院 | 精品久久一区 | 99久久精品免费视频 | 国产亚洲高清视频 | 超碰在线播 | 国产精品久久久久久久久久免费看 | 午夜精品一区二区三区在线观看 | 黄色亚洲网站 | 人人九九精| 黄色一级电影在线观看 | 久久久久久成人 | 狠狠爱免费视频 | 国产精品99久久久久久www | 久免费视频 | 午夜视频网 | 在线免费av电影 | 中文字幕一区二区三区乱码图片 |