幼教網(wǎng)
全國站
您現(xiàn)在的位置:幼教 > 家庭教育 > 幼兒家庭教育 > 智力開發(fā) > 正文

編程語言的發(fā)展歷史

來源:一個(gè)程序員的日常 作者:開源中國 2018-06-17 10:26:46

說兩句

  1801 - Joseph Marie Jacquard用打孔卡為一臺(tái)織布機(jī)編寫指令,在掛毯上織出了“hello, world”字樣。當(dāng)時(shí)的reddit網(wǎng)友對(duì)這項(xiàng)工作的反響并不熱烈,因?yàn)樗热鄙傥策f歸調(diào)用,又不支持并發(fā),而且甚至都沒有注意在拼寫時(shí)恰當(dāng)?shù)貐^(qū)分大小寫。

  Jacquard織布機(jī)是第一臺(tái)可進(jìn)行程序控制的織布機(jī)。用打孔卡進(jìn)行編程的概念,直到電子計(jì)算機(jī)被發(fā)明出來之后仍然被廣泛運(yùn)用。

  最早的Hello World程序(出自K&R C)打印的是全小寫的字符串:"hello, world"。

  在許多英文技術(shù)社區(qū)里,不正確地使用大小寫發(fā)貼會(huì)被視作是小白的行為。(如把“Python”拼作“python”,把“FreeBSD”拼作“freebsd”,把“Qt”拼作“QT”)

  1842 - Ada Lovelace寫了世界上第一個(gè)程序。她的努力只遇到了一點(diǎn)點(diǎn)小小的麻煩,那就是:實(shí)際上并沒有任何計(jì)算機(jī)能夠用來運(yùn)行她的程序。后來的企業(yè)架構(gòu)師們重新吸收了她的這個(gè)技能,用來學(xué)習(xí)如何更好地使用UML進(jìn)行編程。

  Ada Lovelace為Charles Babbage的分析機(jī)寫了一個(gè)計(jì)算伯努利數(shù)的算法實(shí)現(xiàn),因此被后世公認(rèn)為是世界上第一個(gè)程序員。實(shí)際上,分析機(jī)由于其設(shè)計(jì)思想過于先進(jìn),在當(dāng)時(shí)根本沒有 被制造出來。(Babbage的分析機(jī)一般被認(rèn)為是現(xiàn)代電子通用計(jì)算機(jī)的先驅(qū))

  諷刺現(xiàn)在的某些“軟件架構(gòu)師”頂多只會(huì)紙上談兵地畫畫UML。

  1936 - Alan Turing發(fā)明了世間一切程序語言的最終形態(tài),但很快他就被英國軍情六處“請(qǐng)”去當(dāng)007了,以至于他根本來不及為這些語言申請(qǐng)專利。

  與通用圖靈機(jī)(Universal Turing machine)等價(jià)的語言被稱為圖靈完備的(Turing completeness),它定義了“什么樣的語言可以被稱作是程序語言”。

  二戰(zhàn)期間Turing曾秘密地為英國軍方工作,破解德軍的Enigma密碼機(jī),并在戰(zhàn)后被授予大英帝國勛章。但這項(xiàng)事實(shí)直到多年以后才向公眾公開。

  1936 - Alonzo Church同時(shí)也發(fā)明了世間一切程序語言的最終形態(tài),甚至做得更好。但他的λ演算被絕大部分人忽視了,因?yàn)樗cC語言“不夠像”。盡管存在著這樣的批評(píng),但事實(shí)上,C在當(dāng)時(shí)還沒有被發(fā)明出來。

  Church是Turing在Princeton的博士生導(dǎo)師,他在λ演算方面的工作先于Turing指出了不存在一個(gè)對(duì)可判定性問題的通用解法,這后來證明和Turing針對(duì)停機(jī)問題提出的圖靈機(jī)模型是等價(jià)的。即著名的Church-Turing論題。

  說Church“甚至做得更好”,因?yàn)?lambda;演算為后世所有的函數(shù)式語言提供了理論基礎(chǔ)。

  現(xiàn)在一種常見的關(guān)于函數(shù)式編程的批評(píng)就是:“它們與C語言不夠像”。

  1940年代 - 一些直接采用布線和開關(guān)來進(jìn)行程序控制的“計(jì)算機(jī)”出現(xiàn)了。工程師們當(dāng)時(shí)這么做,據(jù)說是為了避開“用空格還是用制表符縮進(jìn)”這樣的論戰(zhàn)。

  據(jù)說當(dāng)時(shí)負(fù)責(zé)設(shè)計(jì)ENIAC的工程師中間曾經(jīng)發(fā)生過這樣的爭(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ā)生過這樣的爭(zhēng)吵:

  Vim比Emacs好!

  Emacs比Vim好!

  強(qiáng)烈推薦Sublime Text。

  你丫用編輯器的都是找虐,IDE才是王道。

  沒錯(cuò),要用就用世界上最好的公司微軟開發(fā)出來的世界上最好的IDE:Visual Studio。

  我早就看透了無謂的編輯器論戰(zhàn)什么的了,我要告訴樓上吵架的,你們?nèi)际巧当疲?br />
  最后,工程師們一致決定使用布線和開關(guān)來為他們即將發(fā)明的計(jì)算機(jī)進(jìn)行編程,機(jī)智地避開了所有這些無謂的爭(zhēng)吵,最終齊心協(xié)力創(chuàng)造出了人類歷史上第一臺(tái)電子計(jì)算機(jī):ENIAC。(鼓掌

  (圖:兩位ENIAC程序員在運(yùn)用敏捷開發(fā)方法進(jìn)行愉快的結(jié)對(duì)編程。“自從拋棄伴隨我多年的Emacs和HHKB Pro、改用布線和開關(guān)進(jìn)行編程之后,我的左手小指麻痹奇跡般地痊愈了。”其中一位接受采訪時(shí)如是說。另一位則表示:“新的編程方式讓曾經(jīng)專注頸椎病20 年的我得到了徹底的康復(fù),不用再整天盯著顯示屏,身心同時(shí)得到了極大的放松,值得大力推廣!”)

  1957 - John Backus和IBM發(fā)明了FORTRAN語言。關(guān)于IBM或FORTRAN并沒有什么特別好笑的地方。除了,寫FORTRAN程序的時(shí)候不系藍(lán)領(lǐng)帶將被編譯器視作是一個(gè)syntax error。

  藍(lán)領(lǐng)帶、白襯衫、深色西裝似乎是IBM公司20世紀(jì)經(jīng)典的dress code。

  早期FORTRAN(FORTRAN 77)對(duì)程序書寫格式的要求那是相當(dāng)嚴(yán)格。(例如,蛋疼的固定格式縮進(jìn))

  1958 - John McCarthy和Paul Graham發(fā)明了LISP。由于冷戰(zhàn)期間的戰(zhàn)略括號(hào)資源儲(chǔ)備所造成的巨大成本,LISP從未流行過。盡管欠缺足夠的流行度,LISP(現(xiàn)在叫做 “Lisp”,有時(shí)叫“Arc”)仍然被視作一門有影響力的語言,在關(guān)鍵的算法思想諸如遞歸(recursion)和提升逼格 (condescension)上尤為典范。

  LISP發(fā)明的那一年P(guān)aul Graham其實(shí)還沒有出生。據(jù)說是因?yàn)槟潮窘凶觥禜aste and Waste》的偽程裝黑圣典實(shí)在太有名了,以至于許多編程小白們把寫這本書的傳奇人物同Lisp之間畫上了等號(hào)。

  提升逼格確實(shí)是一種與遞歸調(diào)用同樣關(guān)鍵的算法思想。嗯,你懂的。

  1959 - 在輸?shù)袅撕蚅. Ron Hubbard之間的一場(chǎng)打賭之后,Grace Hopper和其他幾個(gè)抖S發(fā)明了所謂的“面向Boilerplate的全大寫化語言(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同樣供職于美國海軍。(尚不清楚這兩人之間有無其他聯(lián)系)

  COBOL語言以代碼極其冗長(zhǎng)和通篇大寫字母的書寫風(fēng)格而聞名。

  Adm. Hopper:Grace Murray Hopper女士的軍銜是Rear Admiral Lower Half,即美國海軍準(zhǔn)將。

  1964 - John Kemeny和Thomas Kurtz創(chuàng)造了BASIC,一個(gè)為非計(jì)算機(jī)科學(xué)家設(shè)計(jì)的非結(jié)構(gòu)化的程序語言。

  1965 - Kemeny和Kurtz兩人goto到了1964。

  調(diào)侃BASIC語言對(duì)行號(hào)和goto的無節(jié)制濫用。

  1970 - Guy Steele和Gerald Sussman創(chuàng)造了Scheme。他們的工作導(dǎo)致了一系列以《Lambda之究極(Lambda the Ultimate)……》為標(biāo)題開頭的論文發(fā)表,并在《Lambda之究極廚房神器》這一篇中達(dá)到了最高潮。以這篇論文為基礎(chǔ),開始了一個(gè)長(zhǎng)年累月的、收 視率究極失敗的晚間電視購物節(jié)目。Lambda們因?yàn)槠涓拍钕鄬?duì)難以理解而被大眾所忽視,直到未來的某一天,Java語言終于讓它們變得有名了起來。通過 不包含它們這件事情。

  1970 - Niklaus Wirth創(chuàng)造了Pascal,一個(gè)過程式的語言。很快就有人開始聲討Pascal,因?yàn)樗褂昧祟愃?ldquo;x := x + y”這樣的語法,而不是更為人熟知的類C語法“x = x + y”。盡管存在著這樣的批評(píng),而事實(shí)上當(dāng)時(shí)C還沒有被發(fā)明出來。

  1972 - Dennis Ritchie發(fā)明了一把射擊時(shí)能同時(shí)向前和向后兩個(gè)方向發(fā)射子彈的絕世好槍。但他對(duì)此發(fā)明造成的致死和終身殘疾數(shù)量感到還不夠滿意,所以他又發(fā)明了C語言和Unix。

  翻譯君:……

  相關(guān)推薦:

小升初試題、期中期末題、小學(xué)奧數(shù)題

盡在奧數(shù)網(wǎng)公眾號(hào)

   歡迎使用手機(jī)、平板等移動(dòng)設(shè)備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點(diǎn)擊查看

  • 歡迎掃描二維碼
    關(guān)注幼教網(wǎng)微信
    gh_5735a1f9f07c

  • 歡迎掃描二維碼
    關(guān)注奧數(shù)網(wǎng)微信
    ID:aoshu_2003

熱點(diǎn)專題

  • 幼兒園教學(xué)課件:奇特的建筑
  • 幼兒教學(xué)課件:小魚的夢(mèng)
  • 河頭幼兒園“幫水寶寶搬家”

[幼兒園英語課件]幼兒園英語課件:認(rèn)識(shí)時(shí)間

[幼兒園英語課件]幼兒園英語課件:A Apple

幼升小

幼升小資訊

幼升小政策

幼升小擇校

幼升小指導(dǎo)

學(xué)區(qū)房

幼升小真題

重點(diǎn)小學(xué)

上海小學(xué)

廣州小學(xué)

深圳小學(xué)

成都小學(xué)

武漢小學(xué)

南京小學(xué)

北京一類幼兒園

海淀區(qū)幼兒園

西城區(qū)幼兒園

東城區(qū)幼兒園

朝陽區(qū)幼兒園

其他區(qū)幼兒園

幼兒園資訊

教師園地

幼兒園說課稿

幼兒園教案

教學(xué)論文

幼兒園課件

幼兒園教師心得

幼兒園評(píng)語

少兒教育

胎教

早期教育

入園必讀

潛能開發(fā)

藝術(shù)培養(yǎng)

家庭教育

兒童樂園

科普知識(shí)

圖書推薦

睡前故事

成語故事

童話故事

唐詩宋詞

孕育指南

時(shí)尚媽咪

健康寶貝

美食廚房

趣味數(shù)學(xué)

健康飲食

專家答疑

-->