編程語(yǔ)言的進(jìn)化

第95篇

極客時(shí)間《許式偉的架構(gòu)課》課程筆記。

編程語(yǔ)言的出現(xiàn)解藻,誕生了程序員這個(gè)職業(yè),匯編語(yǔ)言則是程序員這個(gè)分工出現(xiàn)的標(biāo)志啡浊。

軟件是活的書籍

  • 書籍能夠通過文字記載事件胶背、傳遞情感、揭示規(guī)律廷粒、傳承技術(shù)红且,軟件也可以做到這些并且做得更好
  • 軟件的表達(dá)方式更具有多樣性:書籍只能通過文字描述進(jìn)行表達(dá),軟件除了文字嗤放,還能通過超鏈接斤吐、聲音搔涝、動(dòng)畫庄呈、視頻派阱、實(shí)時(shí)交互反饋等方式來還原場(chǎng)景
  • 軟件對(duì)技術(shù)可以現(xiàn)場(chǎng)還原:文字記載可能會(huì)出現(xiàn)看不懂學(xué)不會(huì)的情況贫母,而軟件對(duì)技術(shù)的還原是精確的,技術(shù)傳承也是精確的腺劣,失傳概率大大降低

編程范式的進(jìn)化

編程范式是編程語(yǔ)言的一種分類方式,它并不針對(duì)某種編程語(yǔ)言籍铁,一個(gè)編程語(yǔ)言可以支持多種范型多范型拒名。典型語(yǔ)言是C++

過程式

  • 過程式就是以一條條命令的方式芋酌,讓計(jì)算機(jī)按我們的意愿來執(zhí)行
  • 過程式編程中最核心的兩個(gè)概念是結(jié)構(gòu)體(自定義的類型)和過程(也叫函數(shù))
  • 通過結(jié)構(gòu)體對(duì)數(shù)據(jù)進(jìn)行組合,可以構(gòu)建出任意復(fù)雜的自定義數(shù)據(jù)結(jié)構(gòu)同云。通過過程可以抽象出任意復(fù)雜的自定義指令腮恩,復(fù)用以前的成果秸滴,簡(jiǎn)化意圖的表達(dá)
  • 過程式語(yǔ)言的代表是 Fortran、C/C++荡含、JavaScript释液、Go 等等

函數(shù)式

  • 函數(shù)式本質(zhì)上是過程式編程的一種約束,它最核心的主張就是變量不可變浸船,函數(shù)盡可能沒有副作用
  • 函數(shù)式編程相對(duì)小眾,因?yàn)榇a質(zhì)量雖然高登淘,但是學(xué)習(xí)門檻也高
  • 函數(shù)式語(yǔ)言的代表是 Haskell、Erlang 等

面向?qū)ο?/h2>
  • 面向?qū)ο笤谶^程式的基礎(chǔ)上黔州,引入了對(duì)象(類)和對(duì)象方法(類成員函數(shù))
  • 面向?qū)ο缶幊讨鲝埍M可能把方法(其實(shí)就是過程)歸納到合適的對(duì)象(類)上流妻,不主張全局函數(shù)(過程)
  • 面向?qū)ο笳Z(yǔ)言的代表是 Java笆制、C#宇色、C++碱茁、Go 等等

從“面向?qū)ο蟆钡健懊嫦蜻B接”

面向?qū)ο蟮牡膬?yōu)點(diǎn)

  • 一是清晰的使用界面仗岸,某種類型的對(duì)象有哪些方法一目了然
  • 二是信息的封裝。面向?qū)ο蟛恢鲝埨@過對(duì)象的使用接口侵入到對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)

多態(tài)和繼承

  • 面向?qū)ο笸ㄟ^接口可以實(shí)現(xiàn)過程編程很費(fèi)勁才能做到的“多態(tài)”:不同對(duì)象可以用相同代碼來實(shí)現(xiàn)類似的復(fù)雜行為
  • 繼承帶來了編碼的便捷性完残,但也有了新的負(fù)擔(dān),因?yàn)閺?fù)合對(duì)象的構(gòu)造方法需要在“組合”和“繼承”兩個(gè)中間進(jìn)行選擇

面向連接的語(yǔ)言

  • 所謂面向連接就是樸素的組合思想扎拣。研究連接二蓝,就是研究人與人如何組合,研究代碼與代碼之間怎么組合鸥诽。
  • 代碼規(guī)范約束了人的行為牡借,是人與人的連接契約地回;消息傳遞約束了進(jìn)程的行為刻像,是進(jìn)程與進(jìn)程的連接契約
  • 消息傳遞是多核背景下流行起來的一種編程思想,其核心主張是:盡可能用消息傳遞來取代共享內(nèi)存溜徙,從而盡可能避免顯式的鎖蠢壹,降低編程負(fù)擔(dān)

語(yǔ)言對(duì)架構(gòu)的影響

  • 從軟件的業(yè)務(wù)架構(gòu)來說图贸,本身應(yīng)該怎么拆分模塊,每個(gè)模塊具體做什么樣的事情(業(yè)務(wù)邊界是什么)沟优,這是業(yè)務(wù)需求本身決定的挠阁,和編程語(yǔ)言并沒有關(guān)系
  • 但在描述每個(gè)模塊的規(guī)格時(shí),采用的規(guī)格描述語(yǔ)言建議選擇團(tuán)隊(duì)開發(fā)時(shí)采用的語(yǔ)言來描述接口
  • 現(xiàn)實(shí)中語(yǔ)言的選擇對(duì)業(yè)務(wù)架構(gòu)決策的影響極其關(guān)鍵坡慌,原因有兩個(gè)跪者,1是開發(fā)效率渣玲,2是后期維護(hù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末卿城,一起剝皮案震驚了整個(gè)濱河市搀捷,隨后出現(xiàn)的幾起案子嫩舟,更是在濱河造成了極大的恐慌家厌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枢纠,死亡現(xiàn)場(chǎng)離奇詭異像街,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)晋渺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脓斩,“玉大人木西,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵杂瘸,是天一觀的道長(zhǎng)绒怨。 經(jīng)常有香客問我六剥,道長(zhǎng)策彤,這世上最難降的妖魔是什么庞瘸? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任贯被,我火速辦了婚禮枢希,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘契邀。我一直安慰自己欠橘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布转唉。 她就那樣靜靜地躺著款侵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贸弥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音薇正,去河邊找鬼。 笑死杈女,一個(gè)胖子當(dāng)著我的面吹牛呈枉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辉阶,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼兰珍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了斧蜕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后痹屹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡象缀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年廉沮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颁井,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出懈凹,到底是詐尸還是另有隱情蜀变,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布介评,位于F島的核電站库北,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏威沫。R本人自食惡果不足惜贤惯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棒掠。 院中可真熱鬧孵构,春花似錦、人聲如沸烟很。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至恤筛,卻和暖如春官还,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毒坛。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工望伦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人煎殷。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓屯伞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親豪直。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劣摇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 計(jì)算機(jī)編程語(yǔ)言可用于將指令傳達(dá)給計(jì)算機(jī)。它們基于某些句法和語(yǔ)義規(guī)則弓乙,定義了編程語(yǔ)言中每種結(jié)構(gòu)的含義末融。 現(xiàn)在我得到了...
    幻凌風(fēng)閱讀 8,157評(píng)論 1 26
  • TITLE: 編程語(yǔ)言亂燉 碼農(nóng)最大的煩惱——編程語(yǔ)言太多。不是我不學(xué)習(xí)暇韧,這世界變化快勾习! 有時(shí)候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,321評(píng)論 2 35
  • 一輪明月 幾朵繁星 有你在旁 便是美好 今夜的月也很圓 夜空的星也算亮 風(fēng)也吹得很輕柔 只是偏偏少了你 便也稱不上美好
    27938046f70f閱讀 365評(píng)論 0 0
  • 在使用 JSON api 的時(shí)候锨咙,經(jīng)常會(huì)遇見一些蛋疼的事情语卤,我只要獲取一些數(shù)據(jù)就可以,但 API 確給我所有的數(shù)據(jù)...
    Lupino閱讀 1,154評(píng)論 0 0
  • 和閨蜜晴聊天時(shí)酪刀,聊到了好友橙子粹舵。晴說,橙子自從結(jié)婚以后就慢慢地不再和她往來了骂倘,她其實(shí)是有些難過的眼滤。晴說,你到時(shí)候會(huì)...
    時(shí)貳婳閱讀 845評(píng)論 2 10