成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Google Go有啥用?以及何謂好的系統編程語言

原創
開發 開發工具
在過去20年中,系統編程一直是C和C++程序員的地盤。Google上個月推出了Go語言,但是似乎沒人知道這個語言適合哪些開發者!有人提出Go應該是一個不錯的系統編程語言,但是本文作者通過Go與C語言的一系列比較證明了這是不可能的。最后作者還編了首小詩,認為Go一無是處。

【51CTO精選譯文】Google在2009年11月推出了Go語言。關于這個Go,我經常聽到的一個問題是“Go語言適合哪些開發者?”我一直未能找到一個合適的答案。甚至連Go語言自己的FAQ頁面也沒有對此問題給出一個確切的答案。

我認為,多數非初學者程序員不會把Go語言納入自己的應用程序編程語言列表之中。當我指出它永遠無法取代Java后,有人說我沒有看到正確的統計數據。他們認為Go非常適合系統程序員。眾所周知,在過去20年中,系統編程一直是C和C++程序員的地盤。通常來說,如果你進行真正的系統編程,必然屬于這兩個陣營之一,當然也有可能使用一點匯編語言。

好的系統編程語言

下面我將具體解釋這個問題。首先,我們看一下一門好的系統編程語言的標準是什么。以下幾點是我們希望它所具備的:

1、能夠運行在資源受限的環境中;

2、效率高且運行時(runtime)開銷小;

3、具有一個非常小的運行時庫,或根本沒有;

4、允許編程人員直接且“原始”的控制內存訪問和控制流;

5、讓編程人員能夠直接以匯編語言編寫部分程序。

那么Google Go語言是否滿足上述要求?下面讓我們逐一分析:

1、平均來說,Go語言的性能數據大約比C++差6倍左右。Go性能測試的最佳結果與C的最差結果相當。在一個應用程序環境中測試性能,Go和Java已經占了一定便宜,因為在這種環境中可能存在許多其它非內存和非CPU瓶頸,真實系統世界對原始執行時間和資源占用的要求要嚴格的多。(Go得10分)

Go的性能 
性能數據,左側為C系列語言,右側為Go

2、Go所需的內存和執行占用空間要比C和C++高得多,并非兩者理想的接班人。一個有趣的實驗:在Go和C++中編譯Hello World示例,Go的內存開銷為38K,而C++則僅為6K,比前者小84%。(Go得10分)

Go語言的內存和執行占用空間
時間、內存和代碼量,Go所用與C系列所用之比

3、如果你考慮垃圾收集器,Go運行時的空間占用肯定要比C/C++大得多。更糟糕的是:Go的垃圾收集器目前還不太安全。(公正的講,這是目前Go團隊首要解決的事情)(Go得15分,此題20分)

4、在Go中可以實現原始且直接控制內存訪問。如果你愿意,你可以使用這一點來研究其運行時架構。(Go得20分,此題20分)

5、Go有一個類似Java的本地接口(JNI),不過是靜態連接的。(Go得20分,此題20分)

以上問題每題按20分計算,那么在滿分為100分的測評中,Go的得分為75分。如果你是一個C/C++程序員,以上測評的得分肯定是滿分,那么你轉向Go的動機何在?加上系統編程人員通常不會迅速采用新推出的領先技術。C++也是經過了數年時間才被嵌入式C語言用戶所接受。考慮到進行高質量系統編程所需要的可靠性程度,我對該領域任何新技術被接受的可能性持懷疑態度。

語法

#T#最后,我們再次看一下Go語法方面的爭議,我認為這是Go所有問題的核心所在。首先我要聲明,就我個人而言,不存在對Go語法的任何問題。作為一個軟件開發迷,我已經學習了大量語言,如果報酬可觀的話,再多學一門語言不是什么大問題。不過根據我作為一個語言講師的經驗和帕金森蒜皮定律(Parkinson’s Law of Triviality)來看,語法學習對多數人來說是一個攔路虎。(51CTO編者注:平心而論,Go語言的語法還是很出色的,而且有著陣容強大的設計者。作者此處強調帕金森定律雖然沒錯,但未免一廂情愿,有失偏頗。)

簡單來說,帕金森定律認為,我們在討論一件事情上所花費的時間和精力,往往和這件事的重要程度成反比,也就說,越不重要的事情,我們都能理解,就會花越多的時間去討論;而越重要的事情,因為我們不能理解,就會花更少的時間去討論。該定律對編程語言和語法來說尤其適用。上世紀90年代中期,向C++用戶教授Java時曾遭遇阻力。從C++轉向Go所面臨的阻力要比從C++轉向Java大的多,而這種阻力對Go的采用率非常關鍵。

因此,我不認為Go會取代C/C++成為新的系統編程語言。

原文:Google Go: Good For What?  作者:Dave

結語——Dave編寫的一首小詩

“Go! Huh!  Yeah! (Go!哈!耶!)

What is it good for? (它有什么好?)

Absolutely nothing. (它一無是處。)

Say it again.” (再說一遍。)

51CTO編者后記:Go語言自亮相以來并沒有展示一個明確的方向,Google員工將Go語言稱為一個“試驗性語言”,稱其試圖融合Python等動態語言的開發速度和C或C++等編譯語言的性能和安全。一位Go語言的支持者概括而言Go語言如下:簡單、快速、安全、并發、快樂編程、開源;但Go語言缺乏方向以及其“集大成者”的嘗試很容易會導致其學貓不成學狗也不成,淪為四不像。盡管如此,編者仍然覺得Go語言有相當大的潛力:很多開發者對它感興趣——不僅它的最初設計者陣容強大,而且在參與修改源代碼的人群中也不乏大牛級人物。這很有可能幫助Go語言找到適合自己的方向,開拓系統編程的新方向。

責任編輯:yangsai 來源: 51CTO.com
相關推薦

2009-12-10 10:33:09

Go語言

2012-07-06 13:16:37

Google Go

2012-03-13 10:40:58

Google Go

2019-05-15 11:38:22

GoogleGo編程語言

2011-01-05 10:58:05

Google Go

2022-04-26 09:23:07

Hare編程語言C

2010-01-11 09:38:28

編程語言排行榜Google Go

2012-11-08 09:36:10

Google Go

2014-12-08 09:47:48

Go

2023-02-22 08:36:47

顯卡VBIOS存儲

2017-01-09 11:28:31

編程語言排行榜

2020-10-05 22:01:02

Linux系統編程線程屬性

2020-09-26 21:43:59

Linux系統編程條件變量

2020-10-10 07:18:14

Linux系統編程管道

2020-10-18 07:13:44

Linux系統編程信號捕捉

2014-07-16 09:41:12

Swift傳統編程

2019-02-11 08:32:22

編程語言Go

2021-05-16 18:02:52

系統編程JavaScript

2020-09-25 07:34:40

Linux系統編程信號量

2020-10-05 22:05:10

Linux系統編程時序競態
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美亚洲一区二区三区 | 黄色三级在线播放 | 国产精品自拍一区 | 成人做爰www免费看视频网站 | 羞羞的视频免费看 | 综合色播| 四虎永久免费在线 | 亚洲a视频 | 91麻豆蜜桃一区二区三区 | 黄色视频a级毛片 | 国产视频一区在线 | 伊人免费视频二 | 人人草人人干 | av香港经典三级级 在线 | 日韩精品在线一区 | 中文字幕福利视频 | 国产精品久久一区二区三区 | 国产精品一区三区 | 日韩一区二区三区视频在线观看 | 一区视频在线免费观看 | 色就干| 成人高清网站 | 99视频久 | 欧美精品三区 | 欧美激情 一区 | 欧美涩 | 一级毛片免费完整视频 | 亚洲视频欧美视频 | 久久久久久久97 | 精品在线免费观看视频 | 91性高湖久久久久久久久_久久99 | 中文字幕第十一页 | 欧美日韩国产综合在线 | 精品视频一区二区三区 | 国产精品二区三区在线观看 | 日本小电影网站 | 91精品国产91久久久久游泳池 | 91 中文字幕 | 国产一区二区三区在线看 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 国产精品视频一二三区 |