go的優缺點

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

1.1 不允許左花括弧另起一行
1.2 編譯器莫名其妙地給行尾加上分號
1.3 極度強調編譯速度,不惜放棄本應提供的功能
1.4 錯誤處理機制太原始
1.5 記憶體回收行程(GC)不完善、有重大缺陷
1.6 禁止未使用變數和多餘import
1.7 建立對象的方式太多令人糾結
1.8 對象沒有建構函式和解構函式
1.9 defer語句的語義設定不甚合理
1.10 許多語言內建設施不支援使用者定義的類型
1.11 沒有泛型支援,常見資料類型介面醜陋
1.12 實現介面不需要明確聲明
1.13 省掉小括弧卻省不掉花括弧
1.14 編譯產生的可執行檔尺寸非常大
1.15 不支援動態載入類庫

Go語言的優點:
並發/網路/效能/工具(fmt/pprof/test)/標準庫(http/json/log/flags/atomic)/Google
Go語言記憶體回收行程真正致命的缺陷是,會導致整個進程不可預知的間歇性停頓。
像某些大型後台服務程式,如遊戲伺服器、APP容器等,由於佔用記憶體巨大,其記憶體對象數量極多,GC完成一次回收周期,可能需要數秒甚至更長
時間,這段時間內,整個服務進程是阻塞的、停頓的,在外界看來就是服務中斷、無響應,再牛逼的並發機制到了這裡統統失效。記憶體回收行程定期
啟動,每次啟動就導致短暫的服務中斷,這樣下去,還有人敢用嗎?這可是後台伺服器處理序,是Go語言的重點應用領域。

小米網在使用Go的開發第二版搶購系統的過程中也遇到了Go程式消耗大量記憶體後,GC緩慢,最終導致服務停用問題.C語言使用網路架構庫比如
libevent/libev/libuv/acl(Advanced C/C++ Library)後是否就能抵消Go的優勢,而又沒有Go記憶體回收時卡頓的缺點呢?在OpenResty(Nginx)
上進行Lua編程也是另一種開發高效能網路應用的選擇.


----------------------------------------------------------------
Go 缺點
1 GO很慢,運行速度比Java慢,一個編譯型的語言居然比解釋性的還慢.
2 GO缺少安全檢查,在第三方包調os.exit((1)的我見過太多了.
3 泛型不想吐槽,就沒有泛型支援
4 err成為函數傳回值成為標配,寫起來千篇一律,if太多,沒意思
5 :=這種定義我真不想說什麼,看代碼的時候左值什麼類型都不知道,還要深入看右值的函數去看,尤其是沒有一個好的IDE可以點進去看函數定義.
Go 優點
6 沒有一個好的工程版本管理,尤其是github上第三方的.
1 開發速度很快,代碼比較簡潔.
2 標準庫比較強大
3 編譯簡單,最後就一個可執行檔

----------------------------------------------------------------
Plan 9的作者還是沒有Anders Hejlsberg 會懂得簡單的道理,Plan 9的複雜有點過了

作為一個使用golang開發了一年多的人,看遍全文,我只能說,這個作者要麼go剛剛入門,要麼根本不懂go的精髓。


好熱鬧,我也來點參與感。最近用Go寫過小工具,總體感覺滿意,文法很乾淨,包組織比較舒服,並發非常爽。不足的是:IDE的確沒找到合適的
,用過IntelliJ+golang外掛程式以及LitteIDE,跟成熟的IDE相比差了挺多的。

nodejs 粉們不知道你們的 TJ 大神都已經轉 golang 了嗎?http://www.welefen.com/about-tj-farewell-node.js-article.html


go和nodejs都是很差的語言.node那非同步回調也能被大吹特吹,非同步回調是C++早已玩爛的東西好嗎!
我支援C#,c#ide完善,語言設計精妙,現在c#跨平台能力比java還強,c#的非同步文法甩nodejs一百條街


參考:http://blog.csdn.net/liigo/article/details/23699459

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.