D語言和Go語言有前途嗎?
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。發信人: vimer (老來多忘事,惟不忘相思), 信區: Programming
標 題: [合集] D語言和Go語言有前途嗎? (轉載)
發信站: 水木社區 (Wed Dec 14 21:11:33 2011), 站內
☆─────────────────────────────────────☆
zhicxv99me (小氣鬼) 於 (Sat Dec 3 22:34:49 2011) 提到:
【 以下文字轉載自 ITExpress 討論區 】
發信人: zhicxv99me (小氣鬼), 信區: ITExpress
標 題: D語言和Go語言有前途嗎?
發信站: 水木社區 (Sat Dec 3 22:16:16 2011), 站內
☆─────────────────────────────────────☆
lilnelse (不折騰) 於 (Sat Dec 3 22:44:59 2011) 提到:
keng
【 在 zhicxv99me (小氣鬼) 的大作中提到: 】
: 【 以下文字轉載自 ITExpress 討論區 】
: 發信人: zhicxv99me (小氣鬼), 信區: ITExpress
: 標 題: D語言和Go語言有前途嗎?
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Sun Dec 4 21:46:45 2011) 提到:
都學過,個人還用D寫過一個比較大的程式
個人對D的感覺:
1. 對C++做出了有益的改進,而且由於文法和C++非常像所以幾乎沒有學習成本
2. 缺乏足夠的社區支援
3. 由於是個人做出來的語言,編譯器的bug處理速度也不夠快,很多問題提出到解決要
很久
4. 效能只能算是不錯,但是自動gc導致效率明顯低於C++的相同功能代碼(dmd效率最低
,ldc和gdc感覺上差不多)
個人對Go的感覺:
1. 文法是一種專業向的文法,對新學編程者不太友好,學習成本高於D
2. 由於gapps的大力推廣,目前社區還比較活躍,以後可能支援android將會更受矚目
3. 效能比D略高,得益於強大的Team Dev
4. 開發的思路比較清晰,多類型cpu支援從一開始就很認真,因此應用領域比較廣泛
總結:兩者都是試圖創造一種具備現代語言特性同時又有較高運行效率的產生原生機器
代碼的語言,以後的發展完全要看社區活躍程度,入門門檻高低,以及更多的功能支
持。
題外話:其實這兩門語言都不是特別欣賞,新語言個人更看好google前陣子提出的dart
,雖然我是個js都不太懂的唯寫編譯型語言的程式員……
【 在 zhicxv99me (小氣鬼) 的大作中提到: 】
: 【 以下文字轉載自 ITExpress 討論區 】
: 發信人: zhicxv99me (小氣鬼), 信區: ITExpress
: 標 題: D語言和Go語言有前途嗎?
: ...................
☆─────────────────────────────────────☆
javaboy (喝了咖啡就話多-_-;) 於 (Sun Dec 4 22:16:50 2011) 提到:
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 都學過,個人還用D寫過一個比較大的程式
: 個人對D的感覺:
: 1. 對C++做出了有益的改進,而且由於文法和C++非常像所以幾乎沒有學習成本
: 2. 缺乏足夠的社區支援
DMD的社區比Go的社區好多了吧。
我在digitalmars新聞群組的archive裡找到過無數問題的解決辦法...
: 3. 由於是個人做出來的語言,編譯器的bug處理速度也不夠快,很多問題提出到解決要
: 很久
: 4. 效能只能算是不錯,但是自動gc導致效率明顯低於C++的相同功能代碼(dmd效率最低
: ,ldc和gdc感覺上差不多)
把gc和非gc比較是不公平的。
D可以和C++一樣在棧上產生對象:
scope obj = new Object();
這樣再用gdc和gcc比較就不可能有效能差異了!
: 個人對Go的感覺:
: 1. 文法是一種專業向的文法,對新學編程者不太友好,學習成本高於D
: 2. 由於gapps的大力推廣,目前社區還比較活躍,以後可能支援android將會更受矚目
: 3. 效能比D略高,得益於強大的Team Dev
: 4. 開發的思路比較清晰,多類型cpu支援從一開始就很認真,因此應用領域比較廣泛
: 總結:兩者都是試圖創造一種具備現代語言特性同時又有較高運行效率的產生原生機器
: 代碼的語言,以後的發展完全要看社區活躍程度,入門門檻高低,以及更多的功能支
: 持。
: 題外話:其實這兩門語言都不是特別欣賞,新語言個人更看好google前陣子提出的dart
: ,雖然我是個js都不太懂的唯寫編譯型語言的程式員……
Google很多失敗的產品了。
dart和go....俺覺得真沒戲。
dart和gwt其實是一路的。
gwt這麼多年了都一點沒撼動javascript,
dart也就稍微進步一點兒,能有多大作為呢。。。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Mon Dec 5 00:13:25 2011) 提到:
我個人也更加不欣賞Go,一個原因是不喜歡它的文法,而且我討厭gapps這種強行推銷一
個語言的做法。當然這些關乎感情不關乎技術,我不會因為個人感情而認定Go就不行了
,還是要客觀分析現在的情況:
社區和郵件組並不是等價的,它在廣義上包含了開發人員建立的網站,文檔,郵件組,以
及第三方網站,第三方開發庫的支援等等,前面的不說,第三方支援方面D其實已經落後
Go很多,我看到的大多數工具的開發庫Bindings,一般都是Go的版本比較成熟,甚至於
一大半都不支援D的Binding (很奇特地,SFML卻早早支援了D)。
此外D的社區裡有雖然一堆牛人撐著,但是普通開發人員群的活躍程度嚴重不足,以gdc的
換人開發,ldc的做做停停來看,開發人員的活躍度不夠是顯而易見的。而Go的活躍度至少
保持在水準以上,雖然都是一些盲目追隨Google的人。
效率方面的話,個人因為習慣,以及工作(遊戲伺服器)的原因,對效能非常的摳,經常
為了一點點的效能改進而改動代碼,所以GC的效能損失對我來說幾乎是不可接受的。用
棧來處理對象只能處理一部分問題,不可能在一個大項目裡完全解決一些記憶體配置的需
求。
關於dart: 我只是欣賞dart的文法和一些功能而已,幾乎把所有javascript裡比較麻煩
或者很難做的東西都搞定了,藉助Chrome的市場佔有率強推的話,未必沒有前途。gwt的
問題還是因為門檻太高了,你要用java環境來使用,ant來deploy,而dart/js這種直接
任何編輯器開啟就能寫,寫完就能跑的,顯然更容易普及。
【 在 javaboy (喝了咖啡就話多-_-;) 的大作中提到: 】
: DMD的社區比Go的社區好多了吧。
: 我在digitalmars新聞群組的archive裡找到過無數問題的解決辦法...
: 把gc和非gc比較是不公平的。
: ...................
☆─────────────────────────────────────☆
oldwatch (一條叫java的魚◎希望在空中飄) 於 (Mon Dec 5 08:46:01 2011) 提到:
呃
gwt和javascript難道是“撼動”和“被撼動”的關係?
【 在 javaboy (喝了咖啡就話多-_-;) 的大作中提到: 】
: DMD的社區比Go的社區好多了吧。
: 我在digitalmars新聞群組的archive裡找到過無數問題的解決辦法...
: 把gc和非gc比較是不公平的。
: ...................
☆─────────────────────────────────────☆
javaboy (喝了咖啡就話多-_-;) 於 (Mon Dec 5 09:45:07 2011) 提到:
您想表達啥nie?
【 在 oldwatch (一條叫java的魚◎希望在空中飄) 的大作中提到: 】
: 呃
: gwt和javascript難道是“撼動”和“被撼動”的關係?
☆─────────────────────────────────────☆
oldwatch (一條叫java的魚◎希望在空中飄) 於 (Mon Dec 5 10:18:19 2011) 提到:
因為我實在想象不出gwt怎麼去”撼動“它自己依賴的javascript
【 在 javaboy (喝了咖啡就話多-_-;) 的大作中提到: 】
: 您想表達啥nie?
☆─────────────────────────────────────☆
javaboy (喝了咖啡就話多-_-;) 於 (Mon Dec 5 10:34:15 2011) 提到:
c語言不也依賴組合語言麼。想象一下?
【 在 oldwatch (一條叫java的魚◎希望在空中飄) 的大作中提到: 】
: 因為我實在想象不出gwt怎麼去”撼動“它自己依賴的javascript
☆─────────────────────────────────────☆
JunWi (Hey, genius!) 於 (Mon Dec 5 10:44:22 2011) 提到:
只要大家都寫gwt而不裸寫javascript就算撼動了吧
【 在 oldwatch (一條叫java的魚◎希望在空中飄) 的大作中提到: 】
: 因為我實在想象不出gwt怎麼去”撼動“它自己依賴的javascript
☆─────────────────────────────────────☆
oldwatch (一條叫java的魚◎希望在空中飄) 於 (Mon Dec 5 11:00:33 2011) 提到:
不過,話說,現在富js應用,基本沒有直接裸寫javascript了吧
gwt,zk,ext,dojo之類的架構,一般來說終歸是要的
【 在 JunWi (Hey, genius!) 的大作中提到: 】
: 只要大家都寫gwt而不裸寫javascript就算撼動了吧
☆─────────────────────────────────────☆
Tux (藍色幽靈) 於 (Mon Dec 5 11:06:54 2011) 提到:
但是ext,dojo之類的和gwt還是很不一樣的吧
【 在 oldwatch (一條叫java的魚◎希望在空中飄) 的大作中提到: 】
: 不過,話說,現在富js應用,基本沒有直接裸寫javascript了吧
: gwt,zk,ext,dojo之類的架構,一般來說終歸是要的
☆─────────────────────────────────────☆
javaboy (喝了咖啡就話多-_-;) 於 (Mon Dec 5 11:08:50 2011) 提到:
俺覺得趨勢還是html+jquery+less吧。。。
rich ui 帶來的問題比好處多。。。
【 在 oldwatch (一條叫java的魚◎希望在空中飄) 的大作中提到: 】
: 不過,話說,現在富js應用,基本沒有直接裸寫javascript了吧
: gwt,zk,ext,dojo之類的架構,一般來說終歸是要的
☆─────────────────────────────────────☆
JunWi (Hey, genius!) 於 (Mon Dec 5 11:14:38 2011) 提到:
ext dojo之類的寫的還是javascript,gwt寫的是java
【 在 oldwatch (一條叫java的魚◎希望在空中飄) 的大作中提到: 】
: 不過,話說,現在富js應用,基本沒有直接裸寫javascript了吧
: gwt,zk,ext,dojo之類的架構,一般來說終歸是要的
☆─────────────────────────────────────☆
oldwatch (一條叫java的魚◎希望在空中飄) 於 (Mon Dec 5 11:17:17 2011) 提到:
我也覺得這個路數有點走火入魔,不過UI效果確實挺贊的……
希望html5來拯救蒼生吧
【 在 javaboy (喝了咖啡就話多-_-;) 的大作中提到: 】
: 俺覺得趨勢還是html+jquery+less吧。。。
: rich ui 帶來的問題比好處多。。。
☆─────────────────────────────────────☆
oldwatch (一條叫java的魚◎希望在空中飄) 於 (Mon Dec 5 11:20:12 2011) 提到:
google大概手底下編譯大牛把持了話語權
總喜歡用一套完備語 言來解決問題
【 在 JunWi (Hey, genius!) 的大作中提到: 】
: ext dojo之類的寫的還是javascript,gwt寫的是java
☆─────────────────────────────────────☆
bitkevin (kevin) 於 (Mon Dec 5 11:34:04 2011) 提到:
GO的作者們很牛逼,C/Unix的氣質
【 在 zhicxv99me (小氣鬼) 的大作中提到: 】
: 【 以下文字轉載自 ITExpress 討論區 】
: 發信人: zhicxv99me (小氣鬼), 信區: ITExpress
: 標 題: D語言和Go語言有前途嗎?
: ...................
☆─────────────────────────────────────☆
itgirl (程式媛) 於 (Mon Dec 5 12:11:55 2011) 提到:
看好R
【 在 zhicxv99me (小氣鬼) 的大作中提到: 】
: 【 以下文字轉載自 ITExpress 討論區 】
: 發信人: zhicxv99me (小氣鬼), 信區: ITExpress
: 標 題: D語言和Go語言有前途嗎?
: ...................
☆─────────────────────────────────────☆
Philistine (包子) 於 (Mon Dec 5 12:13:36 2011) 提到:
這是通用程式設計語言嗎?
【 在 itgirl (程式媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
NIGHTFIRE (暱稱不告訴你們) 於 (Mon Dec 5 12:25:18 2011) 提到:
就憑那幾乎可稱為反人類的自動向量長度補全?
【 在 itgirl (程式媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
javaboy (喝了咖啡就話多-_-;) 於 (Mon Dec 5 15:31:04 2011) 提到:
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 我個人也更加不欣賞Go,一個原因是不喜歡它的文法,而且我討厭gapps這種強行推銷一
: 個語言的做法。當然這些關乎感情不關乎技術,我不會因為個人感情而認定Go就不行了
: ,還是要客觀分析現在的情況:
: 社區和郵件組並不是等價的,它在廣義上包含了開發人員建立的網站,文檔,郵件組,以
: 及第三方網站,第三方開發庫的支援等等,前面的不說,第三方支援方面D其實已經落後
: Go很多,我看到的大多數工具的開發庫Bindings,一般都是Go的版本比較成熟,甚至於
: 一大半都不支援D的Binding (很奇特地,SFML卻早早支援了D)。
D一個很牛的地方就是隨便用c的庫。
雖然需要自己聲明一下,不能直接匯入.h檔案,但是這個只是時間問題。
等到實現的時候就有無數的成熟c庫可以給d任意取用了。
: 此外D的社區裡有雖然一堆牛人撐著,但是普通開發人員群的活躍程度嚴重不足,以gdc的
: 換人開發,ldc的做做停停來看,開發人員的活躍度不夠是顯而易見的。而Go的活躍度至少
: 保持在水準以上,雖然都是一些盲目追隨Google的人。
: 效率方面的話,個人因為習慣,以及工作(遊戲伺服器)的原因,對效能非常的摳,經常
: 為了一點點的效能改進而改動代碼,所以GC的效能損失對我來說幾乎是不可接受的。用
: 棧來處理對象只能處理一部分問題,不可能在一個大項目裡完全解決一些記憶體配置的需
: 求。
D裡面也可以malloc/free手動管理的。
C++可以的它都可以。
對效能要求高等話可以等等gcc4.7的gdc,
這個和g++用一樣的後端,效能應該沒有區別的。
: 關於dart: 我只是欣賞dart的文法和一些功能而已,幾乎把所有javascript裡比較麻煩
: 或者很難做的東西都搞定了,藉助Chrome的市場佔有率強推的話,未必沒有前途。gwt的
: 問題還是因為門檻太高了,你要用java環境來使用,ant來deploy,而dart/js這種直接
: 任何編輯器開啟就能寫,寫完就能跑的,顯然更容易普及。
你說的這個也是有可能。呵呵。再觀望觀望咯。。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Mon Dec 5 15:47:03 2011) 提到:
D匯入C的庫的時候是可以直接的,但是C++等其他物件導向語言的聲明還是要bind一下的
,我這裡特指各種C++/Java等的開發庫。
此外,在D裡面完全用手動記憶體控制分配和釋放,那我覺得寧可還是回去用C++算了,道
理很簡單,既然是為了D的特性來的,結果反而放棄了這些特性當C++寫,那我何必用D呢
,C++11的功能和D可以說是各有千秋,除了記憶體控制上D要很明顯的方便一些。
【 在 javaboy (喝了咖啡就話多-_-;) 的大作中提到: 】
: D一個很牛的地方就是隨便用c的庫。
: 雖然需要自己聲明一下,不能直接匯入.h檔案,但是這個只是時間問題。
: 等到實現的時候就有無數的成熟c庫可以給d任意取用了。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Mon Dec 5 18:29:50 2011) 提到:
忘了說,gcc 4.7的功能已經freeze了,gdc應該在4.8才會進入gcc
【 在 javaboy (喝了咖啡就話多-_-;) 的大作中提到: 】
: D一個很牛的地方就是隨便用c的庫。
: 雖然需要自己聲明一下,不能直接匯入.h檔案,但是這個只是時間問題。
: 等到實現的時候就有無數的成熟c庫可以給d任意取用了。
: ...................
☆─────────────────────────────────────☆
BigCarrot (大蘿蔔1號) 於 (Mon Dec 5 19:46:17 2011) 提到:
嗯,go已經先走一步了
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 忘了說,gcc 4.7的功能已經freeze了,gdc應該在4.8才會進入gcc
☆─────────────────────────────────────☆
Dooming (Temp) 於 (Mon Dec 5 20:41:51 2011) 提到:
這是統計/科學計算語言啊。。。
【 在 itgirl (程式媛) 的大作中提到: 】
: 看好R
☆─────────────────────────────────────☆
azulla (azulla) 於 (Mon Dec 5 20:45:55 2011) 提到:
上個月看到某篇文章說,gdc代碼要打補丁,很可能趕不上gcc 4.7,看來最終還是沒趕上。
D不進gcc的話,受的關注實在太少了。
上個月tiobe跌到39,這個月的也出來了,是38,哎
☆─────────────────────────────────────☆
RoachCock (拜康神教教主) 於 (Mon Dec 5 23:31:59 2011) 提到:
C++ 缺少 module 機制,不適合開發大型項目。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: D匯入C的庫的時候是可以直接的,但是C++等其他物件導向語言的聲明還是要bind一下的
: ,我這裡特指各種C++/Java等的開發庫。
: 此外,在D裡面完全用手動記憶體控制分配和釋放,那我覺得寧可還是回去用C++算了,道
: ...................
☆─────────────────────────────────────☆
hgoldfish (老魚) 於 (Mon Dec 5 23:41:41 2011) 提到:
話是這麼說,可是現在有很多大型項目都是用C++開發的。
C++的lib有點類似於其它語言的模組。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: C++ 缺少 module 機制,不適合開發大型項目。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Mon Dec 5 23:43:34 2011) 提到:
個人完全不贊成這種觀點,C++可能開發大型項目是容易出問題,但是這還是架構問題,
只要好好架構絕對是適合大型項目的。
我堅決否定把語言差異看成影響生產能力的原因。
我個人的觀點就是,語言的不同,只能決定特定項目環境下不同的的學習成本和後期維
護成本(在滿足成熟開發條件時,功能開發週期差異並不大),而不能決定是否適合開發
。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: C++ 缺少 module 機制,不適合開發大型項目。
☆─────────────────────────────────────☆
RoachCock (拜康神教教主) 於 (Mon Dec 5 23:46:45 2011) 提到:
用 python 寫一小時的,用 C++ 得寫半天,用 C 的兩天,怎麼會不影響生產能力呢。
要不彙編能搞到效率最高,大家都用彙編好了。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 個人完全不贊成這種觀點,C++可能開發大型項目是容易出問題,但是這還是架構問題,
: 只要好好架構絕對是適合大型項目的。
: 我堅決否定把語言差異看成影響生產能力的原因。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Mon Dec 5 23:54:46 2011) 提到:
架構是關鍵,python內建了C++那些第三方庫才能實現的東西,然後去和人家C++裸奔寫
,毫無公平性可言,真正做項目的時候,大量使用現成庫是必須的,我說的足夠成熟的
環境,就是說這些都準備好了。
即使是彙編,如果有足夠的寫好的功能庫,開發週期比進階語言並不會多很多。
再次強調,架構是關鍵,要不現在架構師都能拿著天價工資整天發獃呢,能把架構想清
楚,想明白,設計出適合項目的開發模式才是一個大型項目成功的關鍵。
最後,可以找一下模組化語言Objective C和Mercury到底有多少人在用來開發大型項目
,實在是太少了。
【 在 RoachCock (拜康神教教主) 的大作中提到: 】
: 用 python 寫一小時的,用 C++ 得寫半天,用 C 的兩天,怎麼會不影響生產能力呢。
: 要不彙編能搞到效率最高,大家都用彙編好了。
☆─────────────────────────────────────☆
lvsoft (Lv(The Last Guardian)) 於 (Tue Dec 6 00:03:51 2011) 提到:
對於建築而言,架構是關鍵,底層其實只要不要爛的沒邊,沒啥大問題。
對於軟體工程而言,架構和底層實現都是關鍵。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 架構是關鍵,python內建了C++那些第三方庫才能實現的東西,然後去和人家C++裸奔寫
: ,毫無公平性可言,真正做項目的時候,大量使用現成庫是必須的,我說的足夠成熟的
: 環境,就是說這些都準備好了。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Tue Dec 6 00:05:31 2011) 提到:
好吧,如果底層實現非要從架構中剝離,那確實很重要。
個人只是覺得底層實現就是架構最後要做的一部分而已。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 對於建築而言,架構是關鍵,底層其實只要不要爛的沒邊,沒啥大問題。
: 對於軟體工程而言,架構和底層實現都是關鍵。
☆─────────────────────────────────────☆
blowg (吹哥) 於 (Tue Dec 6 00:06:01 2011) 提到:
他做遊戲, 底層都是現成的...
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 對於建築而言,架構是關鍵,底層其實只要不要爛的沒邊,沒啥大問題。
: 對於軟體工程而言,架構和底層實現都是關鍵。
☆─────────────────────────────────────☆
lvsoft (Lv(The Last Guardian)) 於 (Tue Dec 6 00:07:55 2011) 提到:
偶的意思是,軟體具有混沌屬性。
也就是一個局部的不起眼的小問題可以導致整個項目的崩潰。
所以光強調架構是沒用的。
【 在 soarqin (Soar Qin) 的大作中提到: 】
: 好吧,如果底層實現非要從架構中剝離,那確實很重要。
: 個人只是覺得底層實現就是架構最後要做的一部分而已。
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Tue Dec 6 00:11:37 2011) 提到:
嗯,說的沒錯。
這也是現代語言的優勢,在錯誤處理和問題預防等方面做出了很多有益的改進,C++的優
勢僅僅是效能而已。
【 在 lvsoft (Lv(The Last Guardian)) 的大作中提到: 】
: 偶的意思是,軟體具有混沌屬性。
: 也就是一個局部的小問題可以導致整個項目的崩潰。
: 所以光強調架構是沒用的。
: ...................
☆─────────────────────────────────────☆
soarqin (Soar Qin) 於 (Tue Dec 6 00:14:13 2011) 提到:
老實說,作為一個伺服器開發人員來說,除了通用的幾個網路層庫就沒有現成的底層可用
了,除非能信任那些號稱被偷出來的不知道有沒有做過充分測試的所謂商業代碼。個人
還是相信自己寫的東西,至少出了問題自己熟悉的代碼還是比較容易排查。
此外我們做的也不能說得上是大項目,所以我絕對不是用自己的項目來考量的。
我是參考了世界上大多數的大型項目,包括商業的,開源的。
【 在 blowg (吹哥) 的大作中提到: 】
: 他做遊戲, 底層都是現成的...