亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                一個(gè)發(fā)誓不用Java的程序員,不得不在太空中調(diào)試Lisp

                1998年10月24日,伴隨著火箭的轟鳴,美國(guó)宇航局的深空一號(hào)成功升空。

                深空一號(hào)肩負(fù)著NASA的重要使命,旨在驗(yàn)證未來(lái)行星際探測(cè)所需的十幾項(xiàng)新技術(shù)。

                在深空一號(hào)飛行了2.4億公里以后,突然發(fā)生了一個(gè)故障,有個(gè)進(jìn)程不工作了。

                地面人員非常緊張,趕緊召來(lái)軟件團(tuán)隊(duì)商量對(duì)策。

                軟件團(tuán)隊(duì)在會(huì)議絞盡腦汁,激烈爭(zhēng)論,最后決定對(duì)深空一號(hào)的軟件進(jìn)行調(diào)試。

                調(diào)試?到底該怎么調(diào)試?

                軟件可不是部署在某個(gè)機(jī)房里,而是位于距離地球2.4億公里的航天器中,距離之遠(yuǎn)即使是光也需要半個(gè)小時(shí)才能跑個(gè)來(lái)回。

                但是NASA的工程師們卻成功地解決了這個(gè)問(wèn)題,原因就是深空一號(hào)上的控制軟件是用Lisp寫(xiě)的!

                1

                要想了解整個(gè)事情的來(lái)龍去脈,必須把時(shí)間拉得長(zhǎng)一些。

                1988年,羅恩來(lái)到NASA的JPL(噴氣推進(jìn)實(shí)驗(yàn)室,錢(qián)學(xué)森是創(chuàng)始人之一),在自主機(jī)器人的人工智能組工作。

                JPL當(dāng)時(shí)制定了一個(gè)火星探測(cè)的計(jì)劃,希望能到達(dá)火星,并且采樣返回。

                任務(wù)龐大而艱巨,預(yù)算有數(shù)十億美元,羅恩他們要做的是火星車(chē)原型的研制。

                這些原型有大有小,有重達(dá)一噸,像SUV的Robby :

                也有小巧玲瓏,像個(gè)玩具車(chē)的Tooth:

                為了讓火星車(chē)能自主避障,在火星漫游,必須要給它配套一個(gè)強(qiáng)大的軟件,讓它具備一個(gè)強(qiáng)大的大腦。

                用什么編程語(yǔ)言呢?

                在80年代,沒(méi)有Java, 沒(méi)有Python,沒(méi)有JavaScript,航天器主要是用匯編編寫(xiě)的。

                而羅恩他們決定嘗試一個(gè)新語(yǔ)言:Lisp。

                Lisp在當(dāng)時(shí)是人工智能的編程語(yǔ)言,正好和火星車(chē)的任務(wù)匹配,并且也不用管理C語(yǔ)言的指針,還支持垃圾回收。

                不過(guò)當(dāng)時(shí)的NASA對(duì)Lisp持懷疑的態(tài)度,很多人覺(jué)得Lisp很奇怪,擔(dān)心Lisp那奇怪的垃圾回收技術(shù)會(huì)突然讓?xiě)?yīng)用進(jìn)程死掉。

                但是羅恩認(rèn)為:“當(dāng)你使用的語(yǔ)言提供一種高級(jí)的抽象時(shí),完成工作會(huì)變得更快更容易?!?/p>

                羅恩他們先使用Lisp針對(duì)手頭的問(wèn)題定義一個(gè)自定義語(yǔ)言,相當(dāng)于DSL,然后為火星車(chē)的硬件進(jìn)行編譯,這種方式對(duì)于內(nèi)存受限的硬件非常有用。

                在把代碼安裝到火星車(chē)上進(jìn)行測(cè)試之前,羅恩的小組還在Macintosh 電腦上寫(xiě)了一個(gè)模擬器,把代碼做了非常充分的測(cè)試。

                羅恩的小組不但能寫(xiě)火星車(chē)的漫游和避障程序,還能寫(xiě)底層的編譯器和模擬器,可見(jiàn)技術(shù)能力還是非常強(qiáng)的。

                雖然Lisp火星車(chē)進(jìn)展順利,可以使用立體視覺(jué)傳感器在戶外自主導(dǎo)航,在崎嶇地形環(huán)境下漫游,但是羅恩他們并不是唯一一組火星車(chē)原型制造者,他們還有競(jìng)爭(zhēng)對(duì)手。

                羅恩回憶說(shuō):NASA內(nèi)部也存在山頭,也有政治斗爭(zhēng),Lisp火星車(chē)不幸成為犧牲品,最后團(tuán)隊(duì)解散,很多成員離開(kāi)了。

                1997年,第一個(gè)火星車(chē)Sojourner到達(dá)火星,這時(shí)候,驅(qū)動(dòng)它的是C語(yǔ)言。

                2

                幸運(yùn)的是,NASA換了一個(gè)領(lǐng)導(dǎo),發(fā)起了一個(gè)叫做新千年的計(jì)劃,其中一個(gè)任務(wù)就是深空探測(cè)。

                深空一號(hào)計(jì)劃飛過(guò)一個(gè)小行星和彗星。

                它需要一個(gè)自主航天器控制系統(tǒng),叫做遠(yuǎn)程代理(Remote Agent)。

                C++派和Lisp派展開(kāi)了一場(chǎng)斗爭(zhēng),這一次最終Lisp獲勝。

                羅恩他們故伎重演,再次使用Lisp 定制了一個(gè)領(lǐng)域?qū)S姓Z(yǔ)言,這個(gè)語(yǔ)言的結(jié)構(gòu)會(huì)阻止你編寫(xiě)某些有問(wèn)題的代碼,例如競(jìng)爭(zhēng)條件。

                代碼在深空一號(hào)的備份上做了一遍又一遍的測(cè)試,羅恩他們對(duì)軟件非常有信心,認(rèn)為絕對(duì)不會(huì)出錯(cuò)。

                但是世界上哪有絕對(duì)的事情?

                越是你覺(jué)得不會(huì)出錯(cuò)的地方,偏偏就在那里出錯(cuò)。

                Lisp代碼被部署到了生產(chǎn)環(huán)境:深空一號(hào)航天器

                深空一號(hào)向一顆小行星飛去,這一去就是2.4億公里。

                就在這時(shí),深空一號(hào)發(fā)生了故障,它并沒(méi)有完成一件應(yīng)該做的事情。

                羅恩他們必須對(duì)深空一號(hào)上的Lisp軟件進(jìn)行調(diào)試,這個(gè)調(diào)試并不是在一個(gè)機(jī)房的服務(wù)器上,代碼運(yùn)行的地方在2.4億公里以外,即使是光也需要半個(gè)小時(shí)才能跑一個(gè)來(lái)回!

                幸虧深空一號(hào)運(yùn)行的是Lisp,它支持REPL(read–eval–print loop)這樣功能,可以輸入一個(gè)命令,然后查看結(jié)果。

                一群人坐在會(huì)議中,絞盡腦汁,討論發(fā)送什么命令來(lái)調(diào)試。

                當(dāng)然,每一條調(diào)試命令都需要層層審批,讓所有人簽字,然后由接受過(guò)培訓(xùn)的操作員在深空網(wǎng)絡(luò)控制臺(tái)前輸入命令,按下紅色按鈕,信號(hào)會(huì)通過(guò)一個(gè)巨大的70米的天線發(fā)送出去,以光速奔向深空一號(hào)。

                羅恩他們要做的第一件事是看看系統(tǒng)的轉(zhuǎn)儲(chǔ)信息,看看當(dāng)前活動(dòng)進(jìn)程的列表,他們向深空一號(hào)發(fā)了一個(gè)S表達(dá)式。

                數(shù)據(jù)傳輸回來(lái)以后,大家立刻就發(fā)現(xiàn)了問(wèn)題:有個(gè)進(jìn)程在等待一個(gè)已經(jīng)發(fā)生了的事件。

                這本來(lái)是不可能發(fā)生的,主要是因?yàn)橛袀€(gè)程序調(diào)用了底層的Lisp函數(shù)導(dǎo)致的。

                團(tuán)隊(duì)決定手工觸發(fā)這個(gè)事件,這就可以讓那個(gè)進(jìn)程繼續(xù)執(zhí)行了。

                感謝 LISP 的魔力,感謝在深空一號(hào)飛船上安裝實(shí)時(shí) REPL 的驚人想法,他們成功地挽救了這項(xiàng)任務(wù)。

                3

                在2.4億公里以外調(diào)試代碼,修復(fù)問(wèn)題確實(shí)讓人印象深刻,但是NASA并沒(méi)有擁抱Lisp。

                NASA當(dāng)時(shí)有個(gè)響亮的口號(hào)“更好,更快,更省”,其實(shí)這更像一個(gè)不可能三角形。

                在這樣的思想指引下,深空探測(cè)項(xiàng)目經(jīng)費(fèi)很少,時(shí)間又很緊張。所以當(dāng)出現(xiàn)進(jìn)度延期和預(yù)算超支時(shí),Lisp成了替罪羊。

                關(guān)鍵的轉(zhuǎn)折點(diǎn)是一個(gè)有著200人參加的重大審查,包括很多JPL的高級(jí)管理人員,當(dāng)軟件集成工程師在做演示時(shí),有人問(wèn)他:如果可以改變一件事情,可以讓事情變得更好,這件事情是什么?

                這個(gè)工程師回答:去掉Lisp。

                這幾乎就宣布了Lisp在JPL的死刑。

                羅恩非常沮喪,他在JPL被邊緣化,希望和他合作的人越來(lái)越少。

                這時(shí)候,他發(fā)現(xiàn)一家叫做Google的網(wǎng)站,這個(gè)網(wǎng)站的搜索結(jié)果好得不可思議,速度快得嚇人,羅恩很快找到了招聘鏈接,投遞了簡(jiǎn)歷。

                2000年,羅恩在JPL工作了12年以后,加入了正在冉冉升起的明星公司Google。

                4

                羅恩一直覺(jué)得在軟件業(yè),管理層一直在尋找一種開(kāi)發(fā)流程,讓程序員變成可以插拔的、可以替換的組件,這實(shí)在是太嚇人了。

                而Java恰好匹配了管理層的這種需求,所以他發(fā)誓永遠(yuǎn)不會(huì)成為一名Java程序員,在90年代后期,這個(gè)決定讓90%以上的工作對(duì)他關(guān)閉了大門(mén)。

                羅恩選擇Google的一個(gè)重要原因就是他們不使用Java,但是,他在Google的第一項(xiàng)工作就是:

                領(lǐng)導(dǎo)公司的第一個(gè)Java項(xiàng)目!

                這個(gè)項(xiàng)目最終變成了Google AdWords。

                羅恩很懷念Lisp,他有過(guò)在JPL推銷(xiāo)Lisp的經(jīng)驗(yàn),于是他故伎重演,先在團(tuán)隊(duì)做了Lisp演示,成功地捕獲了程序員的芳心,大家一致認(rèn)為使用Lisp是個(gè)好主意,接下來(lái)只需要說(shuō)服工程副總即可。

                羅恩信心滿滿地去找副總。

                羅恩:有件事我想和你談?wù)?#8230;

                副總:讓我猜猜,你想用Smalltalk ?

                羅恩:呃,不….

                副總:Lisp?

                羅恩:是的!

                副總:不可能!

                羅恩:…

                參考資料:

                https://corecursive.com/lisp-in-space-with-ron-garret/

                https://flownet.com/gat/jpl-lisp.html

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年9月18日 15:16
                下一篇 2022年9月18日 15:16

                相關(guān)推薦

                • 世界杯海外直播在哪看(中國(guó)女籃世界杯直播)

                  最近一段時(shí)間最火爆的話題就是世界杯了,大家都想第一時(shí)間觀看直播比賽,一些海外小伙伴在問(wèn)世界杯海外直播在哪看?2022年世界杯海外直播免費(fèi)觀看平臺(tái)有哪些?下面小編為大家?guī)?lái)世界杯海外…

                  2022年11月25日
                • 免費(fèi)加盟一件代發(fā)貨源在哪里找(加盟一件代發(fā)收費(fèi)嗎)

                  這幾天有關(guān)網(wǎng)上貨源平臺(tái)還是有不少人咨詢(xún)的,為了能夠拿到便宜的貨源,大家對(duì)各大貨源網(wǎng)站也是關(guān)注不斷。那么,免費(fèi)加盟一件代發(fā)貨源在哪里找?現(xiàn)在一件代發(fā)貨源平臺(tái)有哪些呢?哪里拿貨價(jià)格最便…

                • 世界杯買(mǎi)球軟件有哪些合法嗎

                  隨著2022卡塔爾世界杯的開(kāi)幕,許多球迷朋友們也都開(kāi)始參與世界杯的競(jìng)猜了。世界杯競(jìng)猜是目前足球彩票的主要玩法,想要參與世界杯買(mǎi)球的小伙伴,可以購(gòu)買(mǎi)世界杯體彩。最近有些小伙伴在問(wèn),世…

                  2022年11月24日
                • 免費(fèi)清理c盤(pán)的軟件(清理c盤(pán)空間不影響系統(tǒng))

                  電腦用久了慢如龜速,還卡頓,這最大的原因啊就是C盤(pán)空間不足造成的。 即使電腦配置再好,或者硬盤(pán)再快,如果長(zhǎng)時(shí)間沒(méi)有打掃C盤(pán),打開(kāi)文件或者穩(wěn)定之類(lèi)的,都卡得讓人頭大。 這時(shí)候呢不要去…

                  2022年11月24日
                • 電商打單是什么意思 打單軟件哪個(gè)好

                  在電商行業(yè)當(dāng)中,打單配貨方式分為前置打單和后置打單。兩者之前其實(shí)是有區(qū)別的,那今天小編就來(lái)跟大家說(shuō)說(shuō)。 一、前置打單和后置打單的區(qū)別 一般電商行業(yè)用的打單發(fā)貨的方式其實(shí)都是前置打單…

                  2022年11月23日
                • 愛(ài)美劇改成什么了(愛(ài)美劇什么意思)

                  現(xiàn)在市面是哪個(gè)有很多看劇神器,有韓劇軟件、泰劇軟件、美劇軟件,其中愛(ài)美劇是非常不錯(cuò)的一款看美劇軟件,里面資源豐富,據(jù)悉現(xiàn)在已經(jīng)改名了,那么愛(ài)美劇改成什么了?愛(ài)美劇現(xiàn)在叫什么?下面小…

                  2022年11月22日
                • 騰訊視頻app(騰訊視頻app怎么登錄別人的會(huì)員)

                  今天小編給各位分享騰訊視頻app的知識(shí),其中也會(huì)對(duì)騰訊視頻app怎么登錄別人的會(huì)員進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧! 手機(jī)如何登錄騰訊視頻 ;?…

                  2022年11月22日
                • 想學(xué)美工從哪里學(xué)起(淘寶美工如何自學(xué))

                  其實(shí)學(xué)習(xí)淘寶美工這件事情,不并像大家想的那么艱難,萬(wàn)事開(kāi)頭難,只要我們邁出第一步,并且在以后的每一步都踏踏實(shí)實(shí)、認(rèn)認(rèn)真真的去做,那么學(xué)習(xí)淘寶美工并不是一件如登天一樣的難事。如果說(shuō)我…

                  2022年11月22日
                • 炒股軟件排名(最好的炒股軟件排名)

                  本文主要講的是炒股軟件排名,以及和最好的炒股軟件排名相關(guān)的知識(shí),如果覺(jué)得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 炒股軟件有哪些 常用的十大炒股APP:1、自選股 2、雪球3、…

                  2022年11月22日
                • 新直播平臺(tái)(新直播平臺(tái)人多)

                  本文主要講的是新直播平臺(tái),以及和新直播平臺(tái)人多相關(guān)的知識(shí),如果覺(jué)得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 最新的直播軟件有哪些 直播軟件推薦微贊直播,微贊直播提供多種直播功能…

                  2022年11月21日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息