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