精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么我們需要更好的編程語言?

開發 后端
每一種新語言的誕生所帶來的創新,都能造福我們每一個人。但是有時也有不利的一面。有些人可能寫了一些非常有用的開源JavaScript庫,但是從事Python的開發者卻完全沒法用。他們不得不自己寫一個Python版本的函數庫,或者用JavaScript重寫所有代碼。再想想當前有多少種語言和框架。

[[231044]]

我一直在告訴別人:“編程非常了不起。”在你有任何想法的時候,都可以編寫軟件,然后愿望就實現了。這很真實。與建立物理的東西不同,首先你需要建立整個工廠,而軟件的擴張相對非常容易。你可以找到所有已經編譯好的組件,而且是免費的,拿來就可以用。建立好一段代碼后,就可以重復使用無數次,而無需花錢。聽起來很厲害的樣子。

但有時候不是這樣的。編程帶給人的驚喜只是暫時的。在建立了很多代碼以后,在寫代碼的過程中你會不斷遇到讓人迷惑的錯誤。一旦你習慣了特定語言和框架的模式后,一旦你需要第二種天性去掌握所選語言中非自然的語法時,編程的偉大之處就不復存在了。

更別提我們有無數種不同的編程語言。每當開發人員面對特殊語言的語法而深感沮喪時,他們都會想“為什么我們不能創建一種新的語言改正這個問題呢?”有些人還真的這么做了,很幸運的是自然選擇已經淘汰了很多很差的語言(有時也有意外,比如至今PHP還存在)。一旦一門新的語言開始在一群開發者中流行起來,那么恭喜你 ,現在又出現了一個新的開發者社區,他們互相合作,努力讓這門特殊的語言發展壯大。

每一種新語言的誕生所帶來的創新,都能造福我們每一個人。但是有時也有不利的一面。有些人可能寫了一些非常有用的開源JavaScript庫,但是從事Python的開發者卻完全沒法用。他們不得不自己寫一個Python版本的函數庫,或者用JavaScript重寫所有代碼。再想想當前有多少種語言和框架。如果你不覺得這很荒謬的話,那只能說明或許你在軟件開發這一行太長時間,已經習以為常了。

語言都包含些什么?

各種編程語言都在以下三個方面上有著很大的不同:語法、語義和標準庫。

沒錯,我知道,我過于簡化它們了,但是聽我給你解釋。

1. 語法

如果不遵循語法,那么你會在編輯器中看到各種彎彎曲曲的紅線,而且你的代碼也無法通過編譯器或解釋器。

JavaScript使用大括號,布爾型使用小寫的true和false,用//表示行注釋。

 

  1. function doSomething() { 
  2.   a = true
  3.   if (a) { 
  4.     ... // Do something. 
  5.   } 

Python用縮進,布爾型用首字母大寫的True和False表示,用#表示行注釋。

 

  1. def doSomething(): 
  2.   a = True 
  3.   if a: 
  4.     ... # Do something. 

Haskell又有完全不同的語法:

 

  1. doSomething :: IO () 
  2. doSomething = do 
  3.   let a = True 
  4.   if a 
  5.     then ... -- Do something. 
  6.     else return () 

2.語義

所有編程語言都有大多數相同的特征:變量賦值、數字相加、字符串操作、調用函數、等等。

然而,每種語言都有特殊的思想,以特定的方式運行。可以將它們劃分成不同的模式(命令式、面向對象、函數式),但是即便是兩個相同模式的編程語言在細節上也是完全不同的。

在“聲明類”,“調用函數”,或“定義參數的類型”時,你定義了程序的語義。有些語言遵循這樣一套規則,而其他的遵循別的規則。比如:C++中聲明的類可以延伸到多個類。當你使用“+”將數字和字符串加到一起的時候,根據語言的語義會得出不同的結果。一些編程語言會因為類型不匹配而導致編譯失敗,但是有些編程語言會自動將數字轉換成十進制的字符串。

語法與語義的關系就相當于用單詞(語法)來表達想法(語義)。你可以通過語言的語法來表達語義。

3.標準庫

***,每種語言都有各自的軟件包,我們稱之為“標準庫”。

在Python中,你可以調用如下函數:

  • print():在控制臺輸出信息
  • len():返回數組的長度
  • 以及各種實用的模塊,例如:json,threading,等等
  • 在JavaScript中,你可以使用console.log()代替print(),可以訪問Object、Array等類。

標準庫是一門語言中重要的組成部分。它可以為語言帶來活力,沒有標準庫,你無法簡單地做出任何東西。

很諷刺的是,并沒有“標準的標準庫”。每個標準庫基本上都不同于其他庫:一些庫只提供***限度的方法,而有些庫則提供非常廣泛的函數,所以開發人員基本上不需要依賴任何第三方庫。

基本的想法

以上我們介紹了一門語言的構成,接下來我有一個基本的想法:我們是否可以找到一種方法清晰地分割語法、語義和標準庫呢?我們又如何實現這一想法呢?

***步:只有程序員關心語法

我想解決的***個問題就是語法。編譯器和解釋器擁有更加有效的方式表現代碼,我們稱之為抽象語法樹。我們用代碼描述的內容最終可以用如下抽象語法樹表示:

 

為什么我們需要更好的編程語言?

圖:歐幾里得算法的抽象語法樹

如果仔細觀察,你會發現上述語法樹可能來自多個語言。是Python?是JavaScript?還是C++?這都無所謂:所有這些語言都擁有同一個語法樹。

當然,現實的例子會更加復雜。這就是為什么我們用文本寫代碼的原因:更加緊湊,更加易于書寫,還有更加易于閱讀(有人可能有不同的看法)。從編程誕生的***天,我們采用的就是這種方法,很少有人對此質疑。

對于一個更加現實的例子來說,抽象語法樹會描述所選語言的語義(例如:類的定義)。但是擁有類似語義的語言之間還是可以共享同一個抽象語法樹,并可以擴展到一定范圍。這非常實用,因為你可以自動轉化部分代碼。

所以,我們可以把語法想象成抽象語法樹之上的人類思維。代碼可能并不會以文本的形式存儲在任何地方,僅在文本編輯器內。如果你想在特殊的語言上使用不同的語法,也完全可以。這不會影響到別人。

我其實有點驚訝怎么沒有一種工具可以將代碼從一種語言轉換成另一種語言,這完全可行啊。我猜肯定有人試過,但是放棄了,因為如果不將整個標準庫轉換過去的話是沒有實用性的。很明顯,我也在做這方面的嘗試。

第二步. 將標準庫抽象成API

API是一個非常高明的概念。每個軟件都可以通過API與其他軟件溝通。移動端的應用可以通過API與服務器交流。服務器可以通過API與數據庫交流。每個人都可以通過API與他人對話。這是一件很酷的事情。

為什么我要在這里討論API?因為這正是我們所需要的。API是語言的媒介。它們是一套語義,可以描述一個特殊代碼模塊對外提供的功能。無論是函數庫,HTTP服務器,或是別的。

聲明API的方式多種多樣。可以是NPM上的JavaScript模塊,并在README文件內提供API文檔。也可以是代碼中明確聲明的API,比如TypeScript模塊。也有可能并沒有API的聲明,也沒有清晰的文檔。

但是重要的是:API聲明了代碼模塊的”對外接口“,你可以用其他語言重寫模塊內部的代碼,但API不會發生改變。這就是API的魅力所在。雖然編程語言一團糟,但是API很酷。

前面我們提到了標準庫,并說了各個語言都擁有完全不同的標準庫。如果我們能想個辦法將標準庫抽象出來,做成干凈利落的API,那么我們就可以解決這個問題。雖然在語義上,調用print(“Hello”)與Java調用System.out.println(“Hello”)不同,但是其實它們可以是同一個API。

我們有兩種方法可以解決這個問題。要么我們讓大家都不要再使用標準庫了,轉而使用我們的“API層”。或者我們可以讓計算機自動推斷你使用的代碼。我并不看好“說服大家改變他們的方式”,所以我會選擇后一種方法。

我們不用為編程語言的標準庫中的每個函數都提供API。一般我們只可能用到標準庫中的幾個函數。我們可以自動將這些代碼從一種語言轉換到另一種語言。然后,我們只需要每個開發都用這些API替換具體的標準庫的調用。不用擔心,計算機依然需要你,至少現在需要。

第三步:把所有東西都做成API

現在我們有了干凈的代碼模塊定義的純粹的語義,并將與標準庫的交互抽象成了API。

下一步做什么?創建API。

現今的代碼庫有多個文件構成,彼此之間通過“import語句”互相引用。這對于我們來說很便利,但是這也意味著我們需要在腦海中勾畫代碼庫的結構。任何一個地方發生小的變化,都可能在不經意期間給別的地方帶來破壞性的影響,尤其是如果我們沒有做好自動測試的話。而且,代碼庫會不斷增長,而編譯的時間會逐漸加長。

也許有更好的方法解決這個問題。比如模塊化就是個好辦法。

我之前寫過關于模塊化的文章(點擊這里查看:https://medium.com/@fwouts/the-zenc-master-plan-c693bf3b265e),基本上來說:每段獨立的代碼都應該抽象成API。我稱之為模塊。你無需在意一個具體的模塊使用什么語言編寫的。在寫模塊的時候,你不用導入這些文件。實際上,這時文件已不復存在。你可以直接使用API,它們會自動加載這些功能。

模塊有什么好處?

  1. 可以鼓勵大家考慮設計:首先你需要設計API
  2. 可以降低認知的開銷:你僅需要“填空”
  3. 簡化測試:你只需測試API,并可以模擬所有的依賴性
  4. 世界會變得更加美好:沒有了語言之間的壁壘,沒有了巨大的代碼庫;程序員更加快樂,客戶更加快樂

第四步:盡情享受

我不確定第三步之后會發生什么,但是我覺得所有人都會很滿意。

責任編輯:未麗燕 來源: 程序師
相關推薦

2022-12-12 07:30:59

編程語言架構

2014-07-02 09:56:33

2014-11-19 10:05:26

編程

2012-04-11 09:19:08

Haskell編程

2023-02-10 08:58:46

2023-09-05 09:49:03

2018-09-14 18:00:29

無損網絡

2022-08-26 08:00:19

企業架構IT

2019-08-05 08:42:37

物聯網IOT技術

2025-06-24 02:00:00

5G-A運營商基站

2020-04-06 14:45:22

云計算邊緣計算網絡

2022-12-01 14:43:56

物聯網智慧城市

2015-08-03 10:40:45

動效設計優勢

2015-11-11 13:35:15

2021-05-24 11:30:49

智能建筑IOT物聯網

2016-01-20 09:54:51

微服務架構設計SOA

2023-01-11 16:22:07

2016-09-27 21:25:08

Go語言Ken Thompso

2010-11-03 09:22:00

C語言

2011-12-31 21:16:42

Windows Pho
點贊
收藏

51CTO技術棧公眾號

日本一卡二卡在线| 日韩精品久久一区| 伊人365影院| 国产成人精品亚洲线观看| 亚洲综合色丁香婷婷六月图片| 99re国产视频| 国产精品19乱码一区二区三区| 激情av综合| 婷婷夜色潮精品综合在线| 国产在线日韩在线| 久久av高潮av无码av喷吹| 国产精品天天看天天狠| 欧美中文字幕一区| 午夜探花在线观看| 四虎永久在线精品免费网址| 免费日韩一区二区| 色婷婷综合久久久久中文字幕1| 亚洲一级片网站| 青青青国内视频在线观看软件| www.欧美日韩国产在线| 国产精品日韩在线一区| 欧美日韩国产精品综合| 色狼人综合干| 欧美久久婷婷综合色| 欧美这里只有精品| 黄色软件在线观看| 国产不卡视频一区二区三区| 亚洲精品中文字| 国产高清一区二区三区| 日韩av男人天堂| 精品欧美激情在线观看| 欧美一级艳片视频免费观看| 国产中文字幕二区| 麻豆tv免费在线观看| 成人小视频免费观看| 国产精品久久久久久久电影| 清纯粉嫩极品夜夜嗨av| 精品美女久久| 精品久久一区二区三区| 超碰在线公开97| 日本三级一区| 黄色一级片在线观看| 嗯用力啊快一点好舒服小柔久久| 色又黄又爽网站www久久| 国产精品av免费| 丝袜视频国产在线播放| 懂色av一区二区夜夜嗨| 国产精品久久久久久久app| 日本在线视频免费观看| 66国产精品| 国产一区二区三区精品久久久| 男人添女人荫蒂国产| av成人在线网站| 色偷偷成人一区二区三区91| 欧美视频在线观看网站| 麻豆免费在线观看| 欧美韩国日本一区| 欧美一区二区三区四区夜夜大片| 亚洲精品国产精| 精品亚洲成av人在线观看| 国产成人拍精品视频午夜网站| 国产精品23p| 黄色日韩在线| 久久久精品美女| 亚洲a∨无码无在线观看| 视频一区中文| 精品成人佐山爱一区二区| 一级黄色免费毛片| www.久久爱.com| 欧美高清性hdvideosex| 国产福利影院在线观看| a∨色狠狠一区二区三区| 色美美综合视频| 国产日韩在线亚洲字幕中文| 国产视频精品网| 亚洲天堂aaa| 免费人成黄页网站在线一区二区| 国产精品久久久久久av福利| 亚洲精品成人在线视频| 免播放器亚洲| 国产精品777| 这里只有精品999| 奇米影视一区二区三区小说| 国产精品人成电影在线观看| 国产又黄又粗又硬| 国产毛片一区二区| 99热在线播放| 婷婷国产在线| 国产亚洲精品精华液| 日韩一区二区三区高清| 日本中文字幕伦在线观看| 日韩理论片网站| 男女啪啪免费观看| av不卡高清| 欧美性xxxx在线播放| 热久久精品国产| 国产综合色激情| 在线精品视频免费观看| 中文字幕一区二区三区四区在线视频| jizz久久久久久| 日韩一区二区三| 国产精品久久久久久亚洲av| 精品国产一区二区三区成人影院 | 日韩三级av在线| 国产精品腿扒开做爽爽爽挤奶网站| 热门国产精品亚洲第一区在线| 精品国产www| 国产精品538一区二区在线| 国内精品二区| 免费av在线| 偷拍亚洲欧洲综合| wwwwwxxxx日本| 国产成人福利av| 中文字幕日韩欧美精品在线观看| 九九在线观看视频| 视频一区欧美日韩| 91成人伦理在线电影| 四虎影院在线播放| 17c精品麻豆一区二区免费| 日本a视频在线观看| 99久久亚洲国产日韩美女| 欧美变态凌虐bdsm| 中文字幕精品亚洲| 亚洲日本欧美| 91久久精品国产91性色| 日韩午夜影院| 亚洲精品视频在线观看免费| 久久精品视频91| 一区二区三区免费在线看| 亚洲最新av网址| 国产精品suv一区二区三区| 国产一区二区三区黄视频 | 久热国产在线| 欧美性猛交xxxxx水多| 超碰人人cao| 日韩精品免费一区二区三区| 2019中文字幕全在线观看| 日b视频免费观看| 少妇高潮一区二区三区69| 国产精品高潮呻吟久久| 超碰97人人射妻| 高潮久久久久久久久久久久久久| 中文字幕国产亚洲2019| 日本一区二区三区精品| 国产成人综合亚洲网站| 亚洲国产婷婷香蕉久久久久久99| а√天堂中文在线资源8| 欧美色老头old∨ideo| 亚洲熟妇无码av| 一区二区三区成人精品| 国产 高清 精品 在线 a| 免费看a在线观看| 欧美综合一区二区| 91精品人妻一区二区| 亚洲精选91| 国产日本一区二区三区| 国产原创视频在线观看| 欧美日韩亚洲综合一区| 日韩丰满少妇无码内射| 国产午夜精品一区二区三区欧美 | 中文字幕无线精品亚洲乱码一区 | 国产91精品最新在线播放| 天天干天天爱天天操| 亚洲国产美国国产综合一区二区 | 懂色av中文字幕一区二区三区| 深田咏美在线x99av| 国产伦子伦对白在线播放观看| 日韩精品一区二区三区在线播放| 91日韩中文字幕| 韩国视频一区二区| 亚洲综合激情五月| 成人网av.com/| 久热精品在线视频| a在线观看免费| 亚洲一区av在线| 老司机免费视频| 国产精品毛片| 欧美裸体网站| 国产精品久久免费| 91麻豆精品| 国产亚洲精品久久| 亚洲熟妇av乱码在线观看| 中文字幕免费在线观看视频一区| 国产熟人av一二三区| 国产精品一区高清| 国产精品久久久久久久7电影| 日本综合在线| 欧美刺激午夜性久久久久久久| 国产一级免费av| 99re热视频这里只精品| 男人日女人bb视频| 欧美偷拍综合| 91日本在线观看| 美女航空一级毛片在线播放| 日韩av在线资源| 波多野结衣绝顶大高潮| 中文字幕中文字幕在线一区| 亚洲AV无码久久精品国产一区| 欧美午夜免费影院| 欧美日韩系列| www.久久久.com| 7m精品福利视频导航| wwwxxx在线观看| 欧美一区二区播放| 欧美精品韩国精品| 国产精品九色蝌蚪自拍| 日本一区二区免费视频| 先锋亚洲精品| 先锋影音男人资源| 欧美三级电影在线| 国产美女被下药99| 蜜臀av在线| 一本色道久久88精品综合| av官网在线观看| 色综合久久综合| 老熟妻内射精品一区| 爱情电影社保片一区| 亚洲国产天堂久久国产91| 日本视频免费观看| 又紧又大又爽精品一区二区| 精品少妇一区二区三区免费观 | 国产精品无码专区av在线播放| 99久久九九| 久久久水蜜桃| 美女精品久久| 国产精品视频精品视频| 大香伊人久久| 久久久国产精彩视频美女艺术照福利| 好吊色一区二区| 在线不卡中文字幕| 九九九在线观看| 亚洲一区二区综合| 美女av免费看| www国产亚洲精品久久麻豆| 日韩av在线中文| 久久综合导航| 99精品人妻少妇一区二区| 69xxxx国产| 奇米精品一区二区三区在线观看 | 欧美激情一区二区三区久久久| 你懂的在线观看| 精品国产乱码久久| 91丨九色丨蝌蚪丨对白| 色成人在线视频| 国产原创视频在线| 亚洲第一久久影院| 黄页网站免费观看| 亚洲三级在线播放| 谁有免费的黄色网址| www.日韩精品| 91看片破解版| 麻豆成人免费电影| 天天插天天操天天射| 国产精品综合| 免费黄色福利视频| 亚洲国产专区校园欧美| 青青草视频国产| 午夜视频一区| 最近中文字幕免费mv| 91亚洲国产| 在线免费一区| 亚洲成人最新网站| 天天综合中文字幕| 一区二区中文字| 免费成人深夜夜行网站视频| 亚洲成人一区| 亚洲一卡二卡三卡四卡无卡网站在线看| 亚洲+小说+欧美+激情+另类| 精品免费视频123区| 欧美美女在线直播| 久久免费视频1| 天堂成人娱乐在线视频免费播放网站 | 亚洲天堂资源在线| 福利视频在线看| 在线91免费看| 国产草草影院ccyycom| 91精品欧美综合在线观看最新 | 成人欧美一区二区三区在线| 欧美videos粗暴| 日本亚洲欧美成人| 亚洲妇女成熟| 欧美又大又粗又长| 天然素人一区二区视频| 国产精品女主播| 国产精品视频一区视频二区| 成人av.网址在线网站| 玖玖玖电影综合影院| 国产精品日韩一区二区| 亚洲性视频在线| 欧美精品一区二区视频| 台湾色综合娱乐中文网| 婷婷四月色综合| 亚洲一区二区| 欧美这里只有精品| 久久天天综合| 天天操精品视频| 99久久精品国产一区| 青青草成人免费视频| 久久久不卡影院| 少妇被躁爽到高潮无码文| 亚洲一线二线三线视频| 欧美一级特黄视频| 欧美肥妇毛茸茸| 污视频网站免费观看| 亚洲午夜精品久久久久久久久久久久 | 亚洲自拍偷拍色图| 久久aimee| 蜜桃久久精品乱码一区二区| 精品久久综合| 欧美黄网在线观看| 久热re这里精品视频在线6| 亚洲欧美aaa| 99久久精品免费看国产免费软件| 亚洲成人黄色av| 一片黄亚洲嫩模| 日韩在线视频不卡| 欧美一二三在线| 日韩精品视频无播放器在线看 | avav免费在线观看| 欧美极品美女视频网站在线观看免费 | 日韩欧美国产高清| 高清毛片在线看| 国产69精品久久久久9| 天天综合网天天| 国产精品乱码| 亚洲成人av| 日韩 欧美 高清| 成人免费视频app| 精品在线观看一区| 疯狂做受xxxx高潮欧美日本| 国产精品51麻豆cm传媒| 日韩欧美专区在线| av中文在线| 欧美最顶级的aⅴ艳星| 一区二区三区免费在线看| 亚洲五月六月| 久久一区国产| 精品无码在线视频| 亚洲一区二区三区四区不卡| 一级黄色录像大片| 国产丝袜精品第一页| 久久香蕉av| 亚洲资源在线看| 国产精品99视频| av五月天在线| 国产午夜一区二区三区| 日本三级一区二区| 亚洲激情视频在线播放| jizzjizz中国精品麻豆| 国产精品久久一区二区三区| 亚洲欧洲综合| 亚洲AV无码国产精品| 色婷婷综合久久久久中文一区二区| 免费一级在线观看播放网址| 国产成人鲁鲁免费视频a| 精品欧美久久| 手机在线国产视频| 一个色妞综合视频在线观看| 蜜臀av中文字幕| 欧美亚洲另类激情另类| 青青草原综合久久大伊人精品| 天天色综合社区| 一区二区三区精品在线| 日本美女一级片| 欧美综合在线第二页| 大片网站久久| 欧美69精品久久久久久不卡| 午夜精品久久久久久| 黄色毛片在线看| 91在线观看免费高清完整版在线观看| 亚洲国产老妈| 国产xxxxxxxxx| 精品视频在线免费| 日本中文字幕中出在线| 久久精品国产精品青草色艺| 日本特黄久久久高潮| 97成人资源站| 日韩av中文字幕在线| 成人午夜一级| www.好吊操| 亚洲国产精品精华液2区45| a天堂在线视频| 欧美最猛性xxxx| 一区二区三区午夜视频| 在线观看日韩精品视频| 欧美日韩不卡一区| 91九色在线播放| 手机成人在线| 国产成人精品三级| 国产午夜精品久久久久| 欧美成人免费全部| 九九热线有精品视频99| 在线a免费观看| 色婷婷久久久亚洲一区二区三区| 国产日产一区二区| 久久综合久久久| 国产盗摄精品一区二区三区在线| 性色av免费观看| 国a精品视频大全| 91成人影院|