無(wú)意中聽(tīng)說(shuō)了還有一種D語(yǔ)言,發(fā)現(xiàn)這D還真不賴,簡(jiǎn)直一個(gè)改良的C++高級(jí)語(yǔ)言版,兼具C++和Java的優(yōu)點(diǎn),比那遙遙無(wú)期的C++0X 要爽得多。
花了一個(gè)晚上,粗淺得了解了一下,感覺(jué)最強(qiáng)烈的有以下幾點(diǎn):
(1)超快的編譯速度:編譯幾百個(gè)文件,只要3,4秒,估計(jì)C++要半個(gè)小時(shí)吧。這是因?yàn)樗腗odule機(jī)制實(shí)在是比C++的include機(jī)制強(qiáng)太多了。
(2)與C兼容策略:只與C接口兼容,這樣既能利用現(xiàn)有的C資源,又不引入C的低級(jí)特征。這一點(diǎn)要比C++的完全兼容策略好多了。這樣,Linus大牛也不用叫喊:“你們這些搞C++的家伙不要往我這C陣營(yíng)里擠”。弄得好多人馬上說(shuō)C++高不成低不就什么的。
(3)完美的宏替代者:Mixin
(4)對(duì)象既可以由gc管理,也可以手動(dòng)管理,倒是和C++0x有些像。 所以還可以結(jié)合析構(gòu)函數(shù)實(shí)現(xiàn)RAII,這一點(diǎn)JAVA是沒(méi)有辦法的(Java只能用丑陋的try catch塊來(lái)解決這個(gè)問(wèn)題)。
(5)很多新的特征:unittest, 不變式,contract programming, 簡(jiǎn)單的模板用法。。。
說(shuō)了這么多好處,再說(shuō)一下D現(xiàn)在的最大問(wèn)題:
對(duì)于現(xiàn)在D語(yǔ)言的發(fā)展,既沒(méi)有一家成熟的商業(yè)公司支持,也沒(méi)有一個(gè)有效的開(kāi)源社區(qū)維護(hù),它的設(shè)計(jì)完全掌握在設(shè)計(jì)者一個(gè)人手中,它的核心代碼也沒(méi)有完全開(kāi)源,這使它的前景呈現(xiàn)出一些不穩(wěn)定的因素。如果要用它進(jìn)行商業(yè)開(kāi)發(fā)的話,還是有點(diǎn)為時(shí)過(guò)早。
想起了Borland和CodeGear,與其弄什么Turbo C++,還不如去支持這個(gè)D。。。
又開(kāi)始YY了,睡了。。。