原文出處: A Brief, Incomplete, and Mostly Wrong History of Programming Languages 譯文出處: Mort Yao
警告:
原文中的內(nèi)容不一定都是真實(shí)的锋勺。
小字部分不屬于原文挣柬,是翻譯君為了便于讀者讀懂原文擅自所加的注解。當(dāng)然,也不能保證一定都是真實(shí)的媒咳。
為了照顧那些幽默感退化的人們凶杖,維基百科有一個(gè)主題關(guān)于:History of programming languages。
1801 - Joseph Marie Jacquard用打孔卡為一臺(tái)織布機(jī)編寫(xiě)指令底洗,在掛毯上織出了“hello, world”字樣腋么。當(dāng)時(shí)的reddit網(wǎng)友對(duì)這項(xiàng)工作的反響并不熱烈,因?yàn)樗热鄙傥策f歸調(diào)用亥揖,又不支持并發(fā)珊擂,而且甚至都沒(méi)有注意在拼寫(xiě)時(shí)恰當(dāng)?shù)貐^(qū)分大小寫(xiě)。
Jacquard織布機(jī)是第一臺(tái)可進(jìn)行程序控制的織布機(jī)费变。用打孔卡進(jìn)行編程的概念摧扇,直到電子計(jì)算機(jī)被發(fā)明出來(lái)之后仍然被廣泛運(yùn)用。
最早的Hello World程序(出自K&R C)打印的是全小寫(xiě)的字符串:"hello, world"
挚歧。
在許多英文技術(shù)社區(qū)里扛稽,不正確地使用大小寫(xiě)發(fā)貼會(huì)被視作是小白的行為。(如把“Python”拼作“python”滑负,把“FreeBSD”拼作“freebsd”在张,把“Qt”拼作“QT”)
reddit / Hacker News的月經(jīng)帖標(biāo)題:“.: a new .-based .* programming language”锡搜。底下常見(jiàn)的回帖形式:“它支持并發(fā)嗎?”“沒(méi)有尾調(diào)用優(yōu)化果斷差評(píng)瞧掺「停”“現(xiàn)在的編程語(yǔ)言已經(jīng)足夠多了,為什么我們還需要更多的語(yǔ) 言辟狈?”……
1842 - Ada Lovelace寫(xiě)了世界上第一個(gè)程序肠缔。她的努力只遇到了一點(diǎn)點(diǎn)小小的麻煩,那就是:實(shí)際上并沒(méi)有任何計(jì)算機(jī)能夠用來(lái)運(yùn)行她的程序哼转。后來(lái)的企業(yè)架構(gòu)師們重新吸收了她的這個(gè)技能明未,用來(lái)學(xué)習(xí)如何更好地使用UML進(jìn)行編程。
Ada Lovelace為Charles Babbage的分析機(jī)寫(xiě)了一個(gè)計(jì)算伯努利數(shù)的算法實(shí)現(xiàn)壹蔓,因此被后世公認(rèn)為是世界上第一個(gè)程序員趟妥。實(shí)際上,分析機(jī)由于其設(shè)計(jì)思想過(guò)于先進(jìn)佣蓉,在當(dāng)時(shí)根本沒(méi)有 被制造出來(lái)披摄。(Babbage的分析機(jī)一般被認(rèn)為是現(xiàn)代電子通用計(jì)算機(jī)的先驅(qū))
諷刺現(xiàn)在的某些“軟件架構(gòu)師”頂多只會(huì)紙上談兵地畫(huà)畫(huà)UML。
1936 - Alan Turing發(fā)明了世間一切程序語(yǔ)言的最終形態(tài)勇凭,但很快他就被英國(guó)軍情六處“請(qǐng)”去當(dāng)007了疚膊,以至于他根本來(lái)不及為這些語(yǔ)言申請(qǐng)專利。
與通用圖靈機(jī)(Universal Turing machine)等價(jià)的語(yǔ)言被稱為圖靈完備的(Turing completeness)虾标,它定義了“什么樣的語(yǔ)言可以被稱作是程序語(yǔ)言”寓盗。
二戰(zhàn)期間Turing曾秘密地為英國(guó)軍方工作,破解德軍的Enigma密碼機(jī)璧函,并在戰(zhàn)后被授予大英帝國(guó)勛章傀蚌。但這項(xiàng)事實(shí)直到多年以后才向公眾公開(kāi)。
1936 - Alonzo Church同時(shí)也發(fā)明了世間一切程序語(yǔ)言的最終形態(tài)蘸吓,甚至做得更好善炫。但他的λ演算被絕大部分人忽視了,因?yàn)樗cC語(yǔ)言“不夠像”美澳。盡管存在著這樣的批評(píng)销部,但事實(shí)上,C在當(dāng)時(shí)還沒(méi)有被發(fā)明出來(lái)制跟。
Church是Turing在Princeton的博士生導(dǎo)師舅桩,他在λ演算方面的工作先于Turing指出了不存在一個(gè)對(duì)可判定性問(wèn)題的通用解法,這后來(lái)證明和Turing針對(duì)停機(jī)問(wèn)題提出的圖靈機(jī)模型是等價(jià)的雨膨。即著名的Church-Turing論題擂涛。
說(shuō)Church“甚至做得更好”,因?yàn)棣搜菟銥楹笫浪械暮瘮?shù)式語(yǔ)言提供了理論基礎(chǔ)。
現(xiàn)在一種常見(jiàn)的關(guān)于函數(shù)式編程的批評(píng)就是:“它們與C語(yǔ)言不夠像”撒妈。
1940年代 - 一些直接采用布線和開(kāi)關(guān)來(lái)進(jìn)行程序控制的“計(jì)算機(jī)”出現(xiàn)了恢暖。工程師們當(dāng)時(shí)這么做,據(jù)說(shuō)是為了避開(kāi)“用空格還是用制表符縮進(jìn)”這樣的論戰(zhàn)狰右。
據(jù)說(shuō)當(dāng)時(shí)負(fù)責(zé)設(shè)計(jì)ENIAC的工程師中間曾經(jīng)發(fā)生過(guò)這樣的爭(zhēng)論:空格比制表符好杰捂。
制表符比空格好。
4個(gè)空格比8個(gè)空格好棋蚌。
什么嫁佳?用2個(gè)空格的統(tǒng)統(tǒng)燒死。
關(guān)于這臺(tái)具有里程碑意義的人類史上第一臺(tái)電子計(jì)算機(jī)ENIAC上應(yīng)該預(yù)裝何種編輯器谷暮,工程師們還發(fā)生過(guò)這樣的爭(zhēng)吵:Vim比Emacs好蒿往!
Emacs比Vim好!
強(qiáng)烈推薦Sublime Text湿弦。
你丫用編輯器的都是找虐瓤漏,IDE才是王道。
沒(méi)錯(cuò)颊埃,要用就用世界上最好的公司微軟開(kāi)發(fā)出來(lái)的世界上最好的IDE:Visual Studio蔬充。
我早就看透了無(wú)謂的編輯器論戰(zhàn)什么的了,我要告訴樓上吵架的竟秫,你們?nèi)际巧当疲?/p>
最后娃惯,工程師們一致決定使用布線和開(kāi)關(guān)來(lái)為他們即將發(fā)明的計(jì)算機(jī)進(jìn)行編程,機(jī)智地避開(kāi)了所有這些無(wú)謂的爭(zhēng)吵肥败,最終齊心協(xié)力創(chuàng)造出了人類歷史上第一臺(tái)電子計(jì)算機(jī):ENIAC。(鼓掌
(圖:兩位ENIAC程序員在運(yùn)用敏捷開(kāi)發(fā)方法進(jìn)行愉快的結(jié)對(duì)編程愕提÷裕“自從拋棄伴隨我多年的Emacs和HHKB Pro、改用布線和開(kāi)關(guān)進(jìn)行編程之后浅侨,我的左手小指麻痹奇跡般地痊愈了纽谒。”其中一位接受采訪時(shí)如是說(shuō)如输。另一位則表示:“新的編程方式讓曾經(jīng)專注頸椎病20 年的我得到了徹底的康復(fù)鼓黔,不用再整天盯著顯示屏,身心同時(shí)得到了極大的放松不见,值得大力推廣澳化!”)
1957 - John Backus和IBM發(fā)明了FORTRAN語(yǔ)言。關(guān)于IBM或FORTRAN并沒(méi)有什么特別好笑的地方稳吮。除了缎谷,寫(xiě)FORTRAN程序的時(shí)候不系藍(lán)領(lǐng)帶將被編譯器視作是一個(gè)syntax error。
藍(lán)領(lǐng)帶灶似、白襯衫列林、深色西裝似乎是IBM公司20世紀(jì)經(jīng)典的dress code瑞你。
早期FORTRAN(FORTRAN 77)對(duì)程序書(shū)寫(xiě)格式的要求那是相當(dāng)嚴(yán)格。(例如希痴,蛋疼的固定格式縮進(jìn))
1958 - John McCarthy和Paul Graham發(fā)明了LISP者甲。由于冷戰(zhàn)期間的戰(zhàn)略括號(hào)資源儲(chǔ)備所造成的巨大成本,LISP從未流行過(guò)砌创。盡管欠缺足夠的流行度过牙,LISP(現(xiàn)在叫做 “Lisp”,有時(shí)叫“Arc”)仍然被視作一門有影響力的語(yǔ)言纺铭,在關(guān)鍵的算法思想諸如遞歸(recursion)和提升逼格 (condescension)上尤為典范寇钉。
(原文的腳注:
幸運(yùn)的是對(duì)于計(jì)算機(jī)科學(xué)來(lái)說(shuō),花括號(hào)和尖括號(hào)的供應(yīng)尚充足舶赔。
“關(guān)鍵的算法思想”這一說(shuō)法來(lái)自于Verity Stob的Catch as catch can扫倡。)
戰(zhàn)略括號(hào)儲(chǔ)備:據(jù)信是因?yàn)榭烁癫獙?duì)于他們費(fèi)盡千辛萬(wàn)苦搜集到的程序片段全都是括號(hào)感到極端憤怒,于是封鎖了世界各地的括號(hào)礦產(chǎn)資源竟纳,導(dǎo)致白宮方面不得不加強(qiáng)戰(zhàn)略濃縮括號(hào)的儲(chǔ)備撵溃。(誤
LISP發(fā)明的那一年P(guān)aul Graham其實(shí)還沒(méi)有出生。據(jù)說(shuō)是因?yàn)槟潮窘凶觥禜aste and Waste》的偽程裝黑圣典實(shí)在太有名了锥累,以至于許多編程小白們把寫(xiě)這本書(shū)的傳奇人物同Lisp之間畫(huà)上了等號(hào)缘挑。
提升逼格確實(shí)是一種與遞歸調(diào)用同樣關(guān)鍵的算法思想。嗯,你懂的。
1959 - 在輸?shù)袅撕蚅. Ron Hubbard之間的一場(chǎng)打賭之后捅厂,Grace Hopper和其他幾個(gè)抖S發(fā)明了所謂的“面向Boilerplate的全大寫(xiě)化語(yǔ)言(Capitalization Of Boilerplate Oriented Language祭务,COBOL)”。多年以后,由于一些被誤導(dǎo)的、性別歧視主義者對(duì)Adm. Hopper關(guān)于COBOL的工作的報(bào)復(fù),在Ruby技術(shù)會(huì)議上不時(shí)會(huì)看到一些厭女主義乃至仇視女性的材料出現(xiàn)吕粗。
L. Ron Hubbard是山達(dá)基教(Scientology)的創(chuàng)始人,二戰(zhàn)期間曾與Grace Hopper同樣供職于美國(guó)海軍旭愧。(尚不清楚這兩人之間有無(wú)其他聯(lián)系)
COBOL語(yǔ)言以代碼極其冗長(zhǎng)和通篇大寫(xiě)字母的書(shū)寫(xiě)風(fēng)格而聞名颅筋。
Adm. Hopper:Grace Murray Hopper女士的軍銜是Rear Admiral Lower Half,即美國(guó)海軍準(zhǔn)將输枯。
Ruby技術(shù)會(huì)議與性別歧視:在09年的GoGaRuCo會(huì)議上议泵,有人做了一場(chǎng)題為“CouchDB perform like a pr0n star”的 報(bào)告,幻燈片演示中使用了大量色情材料用押,引起了在場(chǎng)的少數(shù)女性觀眾的極大不適(“This was a national conference, not a gathering of teenager boys in a smelly upstairs bedroom!”)肢簿。會(huì)后,DHH(Ruby on Rails的作者)發(fā)推表示“it's "absolutely" appropriate to use porn in a business presentation”。關(guān)于其他更多技術(shù)會(huì)議上出現(xiàn)的性別歧視事件池充,參見(jiàn)這里桩引。
1964 - John Kemeny和Thomas Kurtz創(chuàng)造了BASIC,一個(gè)為非計(jì)算機(jī)科學(xué)家設(shè)計(jì)的非結(jié)構(gòu)化的程序語(yǔ)言收夸。
1965 - Kemeny和Kurtz兩人goto
到了1964坑匠。
調(diào)侃BASIC語(yǔ)言對(duì)行號(hào)和goto
的無(wú)節(jié)制濫用。
1970 - Guy Steele和Gerald Sussman創(chuàng)造了Scheme卧惜。他們的工作導(dǎo)致了一系列以《Lambda之究極(Lambda the Ultimate)……》為標(biāo)題開(kāi)頭的論文發(fā)表厘灼,并在《Lambda之究極廚房神器》這一篇中達(dá)到了最高潮。以這篇論文為基礎(chǔ)咽瓷,開(kāi)始了一個(gè)長(zhǎng)年累月的设凹、收 視率究極失敗的晚間電視購(gòu)物節(jié)目。Lambda們因?yàn)槠涓拍钕鄬?duì)難以理解而被大眾所忽視茅姜,直到未來(lái)的某一天闪朱,Java語(yǔ)言終于讓它們變得有名了起來(lái)。通過(guò) 不包含它們這件事情钻洒。
Lambda之究極神器系列:(Lambda之究極命令式編程奋姿、Lambda之究極宣告式編程、Lambda之究極GOTO語(yǔ)句素标、Lambda之究極Opcode)Guy Lewis Steele, Jr. and Gerald Jay Sussman. "Lambda: The Ultimate Imperative"). MIT AI Lab. AI Lab Memo AIM-353. March 1976.
Guy Lewis Steele, Jr.. "Lambda: The Ultimate Declarative". MIT AI Lab. AI Lab Memo AIM-379. November 1976.
Guy Lewis Steele, Jr.. "Debunking the 'Expensive Procedure Call' Myth, or, Procedure Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO". MIT AI Lab. AI Lab Memo AIM-443. October 1977.
Guy Lewis Steele, Jr. and Gerald Jay Sussman. "Design of LISP-based Processors, or SCHEME: A Dielectric LISP, or Finite Memories Considered Harmful, or LAMBDA: The Ultimate Opcode". MIT AI Lab. AI Lab Memo AIM-514. March 1979.
后來(lái)大概有人覺(jué)得每次都投一篇正式的paper太麻煩了称诗,于是干脆專門開(kāi)了一個(gè)博客,名字就叫做Lambda the Ultimate头遭。這樣他們將來(lái)要發(fā)《Lambda之究極割草機(jī)》《Lambda之究極廁所皮拔子》這樣的營(yíng)銷廣告就更加方便了寓免。
長(zhǎng)年累月的收視率究極失敗的晚間電視購(gòu)物節(jié)目:也許是在暗諷MIT專注用SICP作為教給CS學(xué)生的第一門編程課20余年。
眾Java程序員:聽(tīng)說(shuō)Java 8要開(kāi)始支持lambda了任岸,想來(lái)Java真是極先進(jìn)的……等一下再榄,我先看看lambda是個(gè)啥玩意?于是lambda這個(gè)“新鮮貨”就一下子在主流業(yè)界變得流行起來(lái)了享潜。
1970 - Niklaus Wirth創(chuàng)造了Pascal,一個(gè)過(guò)程式的語(yǔ)言嗅蔬。很快就有人開(kāi)始聲討Pascal剑按,因?yàn)樗褂昧祟愃啤皒 := x + y
”這樣的語(yǔ)法,而不是更為人熟知的類C語(yǔ)法“x = x + y
”澜术。盡管存在著這樣的批評(píng)艺蝴,而事實(shí)上當(dāng)時(shí)C還沒(méi)有被發(fā)明出來(lái)。
1972 - Dennis Ritchie發(fā)明了一把射擊時(shí)能同時(shí)向前和向后兩個(gè)方向發(fā)射子彈的絕世好槍鸟废。但他對(duì)此發(fā)明造成的致死和終身殘疾數(shù)量感到還不夠滿意猜敢,所以他又發(fā)明了C語(yǔ)言和Unix。
翻譯君:……
1972 - Alain Colmerauer設(shè)計(jì)了邏輯編程語(yǔ)言Prolog。他的目標(biāo)是創(chuàng)造一個(gè)具有兩歲小孩智商的程序語(yǔ)言缩擂。為了證明他成功達(dá)到了這個(gè)目標(biāo)鼠冕,他展示了一個(gè)Prolog程序,它對(duì)于每條查詢都會(huì)機(jī)智地給出相同的回答:“No”胯盯。
Ask me anything!
?-
1973 - Robin Milner創(chuàng)造了ML懈费,一個(gè)建立在M&M類型理論基礎(chǔ)上的語(yǔ)言。由ML衍生而來(lái)的SML加上了一套形式語(yǔ)義的規(guī)范博脑。當(dāng)被要求給這個(gè)形式語(yǔ)義本身 書(shū)寫(xiě)一套形式語(yǔ)義時(shí)憎乙,Milner的腦子爆掉了。其他ML家族的著名語(yǔ)言還包括OCaml叉趣,F(xiàn)#泞边,和,Visual Basic疗杉。
SML的形式語(yǔ)義規(guī)范事實(shí)上被寫(xiě)成了這樣一本書(shū)(SML'97):《The Definition Of Standard ML》阵谚。
ML明顯是建立在H-M(Hindley–Milner)類型推斷的基礎(chǔ)上的,不太清楚原文所說(shuō)的M&M類型理論是在吐槽神馬……
Visual Basic近年來(lái)吸收了函數(shù)式編程里的不少東西(不知道是不是因?yàn)槭艿搅薋#影響的緣故)乡数。最典型的是它具備和ML相似的類型推斷椭蹄。
1980 - Alan Kay創(chuàng)造了Smalltalk并發(fā)明了“面向?qū)ο蟆边@個(gè)詞。當(dāng)被問(wèn)到它的含義時(shí)净赴,他回答道:“Smalltalk程序本身就是對(duì)象绳矩。”當(dāng)被問(wèn)到對(duì)象是由 什么組成時(shí)玖翅,他回答到:“對(duì)象翼馆。”當(dāng)再一次被問(wèn)到這個(gè)問(wèn)題時(shí)金度,他說(shuō)“看应媚,它從里到外都是對(duì)象。直到你抽出一只烏龜猜极≈薪”
Smalltalk的設(shè)計(jì)從很大程度上受到了Logo的影響。
1983 - 為了紀(jì)念偉大的先輩程序員Ada Lovelace那能夠?qū)懗鲇肋h(yuǎn)也無(wú)法被執(zhí)行的代碼的彪悍技能跟伏,Jean Ichbiah和美國(guó)國(guó)防部創(chuàng)造了Ada語(yǔ)言丢胚。盡管缺乏證據(jù)顯示有任何重要的Ada程序曾經(jīng)被完成過(guò),歷史學(xué)家仍然確信Ada是個(gè)成功的公益項(xiàng)目受扳,它讓數(shù) 以千計(jì)的國(guó)防承包商免于淪落為與黑幫為伍携龟。
Ada曾經(jīng)是美國(guó)國(guó)防部指定的嵌入式計(jì)算機(jī)系統(tǒng)唯一開(kāi)發(fā)語(yǔ)言,在其研發(fā)上耗資巨大勘高。(國(guó)防承包商們于是不用靠販賣軍火給黑幫來(lái)維持生計(jì)了)
雖然有充分的證據(jù)顯示Ada的整型范圍溢出檢查失敗導(dǎo)致弄壞了歐空局的一枚Ariane 5運(yùn)載火箭峡蟋,不過(guò)美國(guó)國(guó)防部發(fā)言人對(duì)此表示:關(guān)我P事坟桅。
1983 - Bjarne Stroustrup把他所聽(tīng)說(shuō)過(guò)的一切都試圖嫁接到C上,創(chuàng)造出了C++蕊蝗。最后得到的語(yǔ)言是如此地復(fù)雜仅乓,以至于程序必須被送到未來(lái)去讓“天網(wǎng)”人工智能 進(jìn)行編譯。編譯時(shí)間難以容忍匿又。天網(wǎng)開(kāi)展這項(xiàng)服務(wù)的動(dòng)機(jī)仍然不為人知方灾,但來(lái)自未來(lái)的發(fā)言人說(shuō)道:“沒(méi)什么好擔(dān)心的,寶貝碌更≡3ィ”帶著一口奧地利腔的機(jī)械口音。有 一些來(lái)自坊間的推測(cè)痛单,所謂的天網(wǎng)只不過(guò)是個(gè)自命不凡的緩沖區(qū)溢出而已嘿棘。
這篇文章寫(xiě)出來(lái)的時(shí)候,一個(gè)被稱作C++0x的新標(biāo)準(zhǔn)還遙遙無(wú)期旭绒。許多編譯器對(duì)它的支持似乎永遠(yuǎn)停留在“partial”階段鸟妙。
請(qǐng)自行腦補(bǔ)終結(jié)者里的T-800……
無(wú)論什么都改變不了C/C++是個(gè)經(jīng)典的“緩沖區(qū)溢出語(yǔ)言”的事實(shí)。
1986 - Brad Cox和Tom Love創(chuàng)造了Objective-C挥吵,宣稱“該語(yǔ)言完美地結(jié)合了C的內(nèi)存安全性與Smalltalk的神奇效率”≈馗福現(xiàn)在的歷史學(xué)家懷疑這兩人其實(shí)是誦讀障礙癥患者。
“C的內(nèi)存安全性十分好”忽匈。
Smalltalk編譯出來(lái)的程序以低效緩慢著稱房午。
1987 - Larry Wall在電腦前打了個(gè)盹,Larry Wall的腦門子壓到了鍵盤上丹允。醒來(lái)之后郭厌,Larry Wall深信 ,在Larry Wall的顯示器上出現(xiàn)的神秘字符串并非是隨機(jī)的雕蔽,那是某種編程語(yǔ)言之程序樣例的神諭折柠。那必是上帝要他的先知,Larry Wall批狐,去設(shè)計(jì)的扇售。Perl語(yǔ)言就此誕生了。
1990 - 一個(gè)由Simon Peyton-Jones嚣艇、Paul Hudak缘眶、Philip Wadler、Ashton Kutcher和善待動(dòng)物組織(PETA)組成的委員會(huì)創(chuàng)造了Haskell髓废,一種純函數(shù)式的、非嚴(yán)求值的語(yǔ)言该抒。Haskell由于使用了Monad這種 較費(fèi)解的概念來(lái)控制副作用而遭到了一些批評(píng)意見(jiàn)慌洪。Wadler試圖平息這些質(zhì)疑顶燕,他解釋說(shuō):“一個(gè)單子(Monad)說(shuō)白了不過(guò)就是自函子范疇上的一個(gè)幺 半群而已,這有什么難以理解的冈爹?”
素食主義鼓吹者:為了獲取食物而不必要地殺死動(dòng)物是邪惡的涌攻;“純函數(shù)式編程”鼓吹者:為了編程而引入不必要的副作用是邪惡的。
(科普帖)自函子說(shuō)穿了就是把一個(gè)范疇映射到自身的函子频伤,自函子范疇說(shuō)穿了就是從小范疇映射到自身的函子所構(gòu)成的以自函子為對(duì)象以自然變換為態(tài)射 的范疇恳谎,幺半群說(shuō)穿了就是只有單個(gè)對(duì)象的范疇,給定了一個(gè)幺半群則可構(gòu)造出一個(gè)僅有單個(gè)對(duì)象的小范疇使其態(tài)射由幺半群的元素給出而合成由幺半群的運(yùn)算給 出憋肖,而單子說(shuō)穿了就是自函子范疇上的這樣一個(gè)幺半群因痛。(這都不理解么親連這種最基本的概念都不理解還學(xué)什么編程!)
又:“A monad is a monoid in the category of endofunctors(一個(gè)單子是自函子范疇上的一個(gè)幺半群)”這句話的原出處據(jù)信是Mac Lane的這本書(shū):
1991 - 荷蘭程序員Guido van Rossum為了一次神秘的手術(shù)而進(jìn)行了一次阿根廷之旅岸更⊥腋啵回來(lái)后他帶著一個(gè)巨大的顱疤,發(fā)明了Python怎炊,而被數(shù)以軍團(tuán)計(jì)的追隨者們加冕為“終生大獨(dú)裁 者”谭企,并向全世界宣布“要辦到一件事情,只可有唯一的一種方法评肆!”债查。整個(gè)波蘭陷入了恐慌。
BDFL(Benevolent Dictator for Life):開(kāi)源社區(qū)一種流行的說(shuō)法瓜挽,“仁慈的”終生大獨(dú)裁者盹廷。這個(gè)說(shuō)法最早指的就是Guido van Rossum。
希特勒在提出建立“純正的雅利安人國(guó)家”“統(tǒng)一的大德意志帝國(guó)”并實(shí)現(xiàn)了德奧合并之后秸抚,翌年便入侵了波蘭速和,引發(fā)了第二次世界大戰(zhàn)“溃“我一個(gè)人征服了整個(gè)歐洲颠放!”
1995 - 在家門口附近的一個(gè)意大利飯館用餐時(shí),Rasmus Lerdorf意識(shí)到他吃的那盤意面正好是一個(gè)用來(lái)理解WWW萬(wàn)維網(wǎng)的極好模型吭敢,而所有的Web應(yīng)用都應(yīng)該仿照它們的媒介那樣去做碰凶。在他的餐巾的背后,他 設(shè)計(jì)出了著名的“可編程超鏈接Pasta(Programmable Hyperlinked Pasta鹿驼,PHP)”語(yǔ)言欲低。PHP的文檔至今仍然保留在那片餐巾上。
PHP最顯著的特點(diǎn)就是:代碼是可以直接嵌在HTML文檔中的畜晰。
1995 - 松本“Mad Matz”行弘創(chuàng)造出了Ruby語(yǔ)言砾莱,用來(lái)辟謠一些意味不明的、有關(guān)澳洲將會(huì)變成一片由莫霍克族戰(zhàn)士和Tina Turner統(tǒng)治的荒漠的末世預(yù)言凄鼻。該語(yǔ)言后來(lái)被它的真正發(fā)明者David Heinemeier Hansson重新命名為Ruby on Rails腊瑟。(關(guān)于某個(gè)叫松本行弘的人發(fā)明了一種叫做Ruby的語(yǔ)言這件事情從未發(fā)生過(guò)聚假,最好在這篇文章的下一個(gè)版本中刪掉。 - DHH表示)
最早關(guān)于Ruby的國(guó)際會(huì)議不是RubyConf闰非,而是每年在澳大利亞舉辦的OSDConf膘格。
這里應(yīng)該是在吐槽Ruby的殺手級(jí)應(yīng)用Ruby on Rails實(shí)在太有名了,以至于超越了原來(lái)的Ruby語(yǔ)言本身财松。
Matz并沒(méi)有為“Ruby”這個(gè)名字注冊(cè)商標(biāo)——本著開(kāi)源的黑客精神瘪贱。
而DHH(RoR的作者)卻把“Ruby on Rails”這個(gè)(包含了“Ruby”字樣的)名稱注冊(cè)成了商標(biāo),并且阻止別人未經(jīng)授權(quán)使用“Rails”這個(gè)名字辆毡。
(雖然搶注商標(biāo)對(duì)開(kāi)源來(lái)說(shuō)未必是一件壞事情——Python基金會(huì)今年在歐洲還卷入了一場(chǎng)商標(biāo)之爭(zhēng)了不是)
假如你從來(lái)沒(méi)聽(tīng)說(shuō)過(guò)的話菜秦,莫霍克族戰(zhàn)士據(jù)說(shuō)是像這個(gè)樣子的:
而Tina Turner看起來(lái)是這個(gè)樣子的:
1995 - Brendan Eich讀完了歷史上所有在程序語(yǔ)言設(shè)計(jì)中曾經(jīng)出現(xiàn)過(guò)的錯(cuò)誤,自己又發(fā)明了一些更多的錯(cuò)誤胚迫,然后用它們創(chuàng)造出了LiveScript喷户。之后,為了緊跟 Java語(yǔ)言的時(shí)髦潮流访锻,它被重新命名為JavaScript褪尝。再然后,為了追隨一種皮膚病的時(shí)髦潮流期犬,這語(yǔ)言又被命名為ECMAScript河哑。
WAT!https://www.destroyallsoftware.com/talks/wat
JavaScript和Java語(yǔ)言沒(méi)有任何實(shí)質(zhì)上的聯(lián)系龟虎;就像ECMAScript和Eczema(濕疹)沒(méi)有任何實(shí)質(zhì)上的聯(lián)系一樣璃谨。 (Brendan Eich曾表示:“ECMAScript was always an unwanted trade name that sounds like a skin disease.”)
但很多人覺(jué)得其實(shí)JavaScript設(shè)計(jì)中包含的錯(cuò)誤還不夠多,本著為程序語(yǔ)言的設(shè)計(jì)貢獻(xiàn)更多錯(cuò)誤這樣的目的鲤妥,他們?nèi)翰呷毫?chuàng)造出了更多的佳吞、JavaScript中未曾成功涵蓋的錯(cuò)誤。這兒有一個(gè)五花八門的列表棉安,以供有志于為程序語(yǔ)言設(shè)計(jì)的謬誤史添磚加瓦的人們參考底扳。
1996 - James Gosling發(fā)明了Java。Java是一個(gè)相對(duì)繁冗的贡耽、帶垃圾收集的衷模、基于類的、靜態(tài)類型的蒲赂、單分派的面向?qū)ο笳Z(yǔ)言阱冶,擁有單實(shí)現(xiàn)繼承和多接口繼承。Sun不遺余力地宣傳著Java的獨(dú)一無(wú)二不同凡響之處滥嘴。
2001 - Anders Hejlsberg發(fā)明了C#木蹬。C#是一個(gè)相對(duì)繁冗的、帶垃圾收集的若皱、基于類的届囚、靜態(tài)類型的有梆、單分派的面向?qū)ο笳Z(yǔ)言,擁有單實(shí)現(xiàn)繼承和多接口繼承意系。微軟不遺余力地宣傳著C#的獨(dú)一無(wú)二不同凡響之處。
2003 - 一個(gè)叫Martin Odersky的醉漢看見(jiàn)了好時(shí)瑞森花生醬杯的廣告饺汹,展示了某個(gè)人的花生醬倒入另一個(gè)人的巧克力的場(chǎng)景蛔添,他忽然有了個(gè)點(diǎn)子。他創(chuàng)造了Scala兜辞,一種結(jié)合 了面向?qū)ο蠛秃瘮?shù)式編程的語(yǔ)言迎瞧。這同時(shí)激怒了兩個(gè)陣營(yíng)的忠實(shí)信徒,他們立刻宣布要發(fā)動(dòng)圣戰(zhàn)燒死異教徒逸吵。
(原文請(qǐng)戳:http://james-iry.blogspot.co.at/2009/05/brief-incomplete-and-mostly-wrong.html)
補(bǔ)充:原文的評(píng)論中有人尖銳地指出凶硅,開(kāi)頭提到的Jacquard可編程織布機(jī)不但支持并發(fā)(concurrency),而且是一個(gè)典型的多線程 (multi-threaded)的例子扫皱。如你所見(jiàn)足绅,它確實(shí)通過(guò)良好的同步機(jī)制避免了多個(gè)thread間產(chǎn)生競(jìng)爭(zhēng)條件導(dǎo)致死鎖,其實(shí)可以看作是現(xiàn)代操作系 統(tǒng)最早的雛形韩脑。(目測(cè)此項(xiàng)科技樹(shù)成果已突破天際)