0
本文作者: 我在思考中 | 2021-09-22 11:58 |
編者按:近日,英國(guó)科技網(wǎng)站The Register對(duì)麻省理工學(xué)院教授Barbara Liskov進(jìn)行了采訪。Barbara于2009年因其對(duì)編程語言和系統(tǒng)設(shè)計(jì)的貢獻(xiàn)而獲得圖靈獎(jiǎng),在本次采訪中,Barbara總結(jié)回顧了其在70年代創(chuàng)建CLU編程語言早期工作,并發(fā)表了一些關(guān)于CLU編程語言的最新見解。
在即將開幕的CNCC2021(中國(guó)計(jì)算機(jī)大會(huì))上,Barbara也將作為特邀嘉賓發(fā)表演講,為幫助參會(huì)者更好了解Barbara的最新研究及對(duì)編程理念的思考,AI科技評(píng)論特此對(duì)The Register的文章進(jìn)行了編譯。
編譯 | 吳彤
自從Barbara Liskov因其對(duì)編程語言和系統(tǒng)設(shè)計(jì)的貢獻(xiàn)而獲得圖靈獎(jiǎng)已經(jīng)有12年了,最近,她又發(fā)表了一些關(guān)于CLU編程語言的最新見解:為什么編程仍然很酷?
現(xiàn)年80多歲的Liskov, 正領(lǐng)導(dǎo)著麻省理工學(xué)院的編程方法論小組。最近,她一直在研究并行計(jì)算。
在90年代時(shí)她曾與一名學(xué)生一起開發(fā)了拜占庭容錯(cuò)系統(tǒng)(Byzantine Fault Tolerance),如今她表示,這對(duì)充滿區(qū)塊鏈的世界來說意義重大。
近年來,隨著CLU在GitHub上的出現(xiàn),人們的注意力轉(zhuǎn)向了Liskov師徒在20世紀(jì)70年代初創(chuàng)造的這門語言時(shí)的早期工作。今天,我們?cè)敿?xì)談?wù)劄槭裁粗钡浇裉?,編程仍然很重要?/span>
當(dāng)初CLU起步時(shí),整個(gè)編程語言的狀態(tài)太差,許多東西需要?jiǎng)?chuàng)新。
例如,我們不得不正視泛型的問題。在抽象數(shù)據(jù)類型的概念出現(xiàn)之前,實(shí)際上已經(jīng)需要泛型了。如果你寫一個(gè)排序例程,并不希望更替不同類型的數(shù)組時(shí)都要重寫。
然后是異常處理。Liskov回憶起關(guān)于恢復(fù)模型與替代方案的爭(zhēng)論:“問題是,在引發(fā)異常之后,控制權(quán)是否隨后恢復(fù)到引發(fā)異常的代碼,還是只是結(jié)束了該代碼?"
如果沒有一種方法從主流中分離單個(gè)異常情況,那么經(jīng)常出現(xiàn)在遠(yuǎn)離錯(cuò)誤源的bug就越難追蹤。不幸的是,今天這種情況仍然會(huì)發(fā)生,還需要你一個(gè)一個(gè)debug。
數(shù)據(jù)抽象是一件大事,所有其他東西也都是隨之而來的。Liskov說到。“如果你回顧一下 90 年代 Java 發(fā)生的事情,他們想使用采用參數(shù)多態(tài)的方式,但他們沒有做,也從來想過優(yōu)化異常處理”。
然而,到了20世紀(jì)70年代末,科研道路出現(xiàn)了岔路口: 要么嘗試將這門語言商業(yè)化,要么堅(jiān)持研究。Liskov選擇了研究,“在我的小組里,沒有一個(gè)學(xué)生想要?jiǎng)?chuàng)業(yè)。"
直到現(xiàn)在,Liskov 還一直贊揚(yáng)她的學(xué)生 Russ Atkinson、Alan Snyder 和 Craig Schaffert 以及Stephen Zilles。后者也在麻省理工學(xué)院,并于 1973 年與她一起改進(jìn) CLU 基礎(chǔ)概念。Bob Scheifler, Eliot Moss和Toby Bloom也出現(xiàn)在1979年10月的CLU參考手冊(cè)上。
她指出,現(xiàn)在發(fā)生的事情別無二致?,F(xiàn)如今把東西放到網(wǎng)上,并建立一個(gè)智囊社區(qū)是一個(gè)相對(duì)簡(jiǎn)單的過程。但是在70年代,你必須掛靠一家公司,但即便如此,也很難獲得啟動(dòng)資金。直到90年代初,情況才有好轉(zhuǎn)。
話說回來,CLU的本質(zhì)是它沒有全盤接受多年來困擾其他語言的糟粕。Liskov說 ,“一門語言一旦運(yùn)行,它就開始衍生遺留問題,致使你必須繼續(xù)支持所有已經(jīng)編寫的代碼。這就產(chǎn)生了負(fù)擔(dān)。"
在過去的20年里,Liskov參與的大部分開發(fā)工作都與c++有關(guān)。她說,“程序開發(fā)不再是用機(jī)器語言完成的。這是一個(gè)很大的進(jìn)步。只是提高了抽象的層次,模塊化的原則就已經(jīng)被很好地理解了。"
然而,直到今天,Liskov一直希望改變的事情是:語言被強(qiáng)制執(zhí)行封裝。但是當(dāng)大家在構(gòu)建一些低級(jí)平臺(tái)時(shí),又必須違反封裝。Liskov認(rèn)為封裝是編程方法的關(guān)鍵工作--模塊化,即將數(shù)據(jù)和處理數(shù)據(jù)的方法捆綁到單個(gè)單元中,并將對(duì)數(shù)據(jù)內(nèi)部的訪問限制在這些方法中。這與讓編譯器強(qiáng)制執(zhí)行是兩碼事。
不過,其他方面也有所改善。與 1970 年代可用的存儲(chǔ)能力相比,今天的巨大存儲(chǔ)能力意味著在設(shè)計(jì)模塊時(shí),“緊湊性”可以讓“優(yōu)雅”退居二線。我們總是希望它可用,但盡可能簡(jiǎn)單。
Liskov現(xiàn)在仍對(duì)編程和技術(shù)充滿熱情,她說:“編程和軟件工程仍然是一個(gè)令人興奮的職業(yè)。我認(rèn)為要牢記接口和實(shí)現(xiàn)之間的區(qū)別,讓行為與實(shí)現(xiàn)分開定義。
“如果你沒有使用強(qiáng)制封裝的語言(不幸的是,大多數(shù)語言都強(qiáng)制封裝),那么你就必須自己強(qiáng)制封裝,這有助于維持區(qū)塊鏈系統(tǒng)完整性,廣義地說,超類的對(duì)象應(yīng)該可以被子類的對(duì)象替換而不破壞應(yīng)用程序?!?/span>
10月28-30日,深圳,來CNCC2021會(huì)場(chǎng),親耳聆聽專家們的精彩報(bào)告,將帶給你無與倫比的專業(yè)享受!
CNCC2021將于10月28-30日在深圳舉行,今年大會(huì)主題是“計(jì)算賦能加速數(shù)字化轉(zhuǎn)型”。CNCC是計(jì)算領(lǐng)域?qū)W術(shù)界、產(chǎn)業(yè)界、教育界的年度盛會(huì),宏觀探討技術(shù)發(fā)展趨勢(shì),今年預(yù)計(jì)參會(huì)人數(shù)將達(dá)到萬人。每年特邀報(bào)告的座上嘉賓匯聚了院士、圖領(lǐng)獎(jiǎng)得主、國(guó)內(nèi)外名校學(xué)者、名企領(lǐng)軍人物、各領(lǐng)域極具影響力的業(yè)內(nèi)專家,豪華的嘉賓陣容凸顯著CNCC的頂級(jí)行業(yè)水準(zhǔn)及業(yè)內(nèi)影響力。
今年的特邀嘉賓包括ACM圖靈獎(jiǎng)獲得者John Hopcroft教授和Barbara Liskov教授,南加州大學(xué)計(jì)算機(jī)科學(xué)系和空間研究所Yolanda Gil教授,陳維江、馮登國(guó)、郭光燦、孫凝暉、王懷民等多位院士,及眾多深具業(yè)內(nèi)影響力的專家。今年的技術(shù)論壇多達(dá)111個(gè),無論從數(shù)量、質(zhì)量還是覆蓋,都開創(chuàng)了歷史之最,將為參會(huì)者帶來學(xué)術(shù)、技術(shù)、產(chǎn)業(yè)、教育、科普等方面的全方位體驗(yàn)。大會(huì)期間還將首次舉辦“會(huì)員之夜”大型主題狂歡活動(dòng),讓參會(huì)者暢快交流。
CNCC2021將匯聚國(guó)內(nèi)外頂級(jí)專業(yè)力量、專家資源,為逾萬名參會(huì)者呈上一場(chǎng)精彩宏大的專業(yè)盛宴。別缺席,等你來,歡迎參會(huì)報(bào)名!
CNCC2021參會(huì)報(bào)名
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。