淺析C++標準化問題
在C++標準化中,有關(guān)缺省變量值的限制非常模糊?;诖耍芏嗑幾g器允許開發(fā)人員將缺省變量值包含在函數(shù)聲明,指向函數(shù)的指針和引用,成員函數(shù)的指針,以及typedef聲明中。
文章列舉的大量相關(guān)資源就是***的證明,而業(yè)界的大量用C++寫成的產(chǎn)品代碼以及大量的C++職業(yè)工程師則是最直接的證明。同時,我們可以看到各個高校的計算機專業(yè)都開設(shè)有C++標準化這門課程,網(wǎng)絡(luò)上對于C++的學(xué)習(xí)討論也從來都沒有停過。但是,在Java和.NET兩大企業(yè)開發(fā)平臺的圍攻下,給人的感覺是C++越來越“不行”了。
另外一個問題是C++標準化的時間太長,喪失了很多的壯大機會,耗費了很多精力在廠商的之間的斗爭上,而C++的標準庫離一個完善的程序開發(fā)框架還缺少太多太多的內(nèi)容,各個第三方的類庫和框架又在一致性和完整性上沒法和隨平臺提供的框架相提并論。難道C++真的要退出歷史舞臺了?
從C++目前的活躍程度,以及應(yīng)用現(xiàn)狀來說是完全能夠肯定C++仍然是軟件工業(yè)的基礎(chǔ),也不會退出歷史舞臺的。另外從Boost,Loki這些庫中我們也能夠看到C++的發(fā)展非常活躍,對于新技術(shù)新思維非常激進,C++仍然廣泛受到關(guān)注。
從ACE在高性能通信領(lǐng)域的應(yīng)用,以及MTL這樣的庫在數(shù)值計算領(lǐng)域的出色表現(xiàn),我們可以看到C++在高性能應(yīng)用場合下的不可替代的作用,而嵌入式系統(tǒng)這樣的內(nèi)存受限開發(fā)平臺,比如Symbian OS上,C++已經(jīng)發(fā)揮著并且將發(fā)揮更大的作用。
可以預(yù)見的是以后的軟件無論上層的應(yīng)用怎么變,它的底層核心都會是由C++標準化這樣的系統(tǒng)級軟件編寫的,比如Java虛擬機,.NET Framwork。因為只有這樣的系統(tǒng)級軟件才能完全徹底的發(fā)揮機器的功能。 需要看到的是兩個趨勢,一個趨勢是C++變得更加復(fù)雜,更加學(xué)院派,通過模板等有潛力的語法因素構(gòu)造越來越精巧的庫成為了現(xiàn)代C++的熱點。
雖然在利用庫實現(xiàn)新的編程范式,乃至設(shè)計模式等方面很有開創(chuàng)意義,也確實產(chǎn)生了一些能夠便捷開發(fā)的工具,但是更多的是把C++變得更加強大,更加復(fù)雜,也更加難懂,似乎也更加學(xué)院派,不得不說它正在向邊緣化道路發(fā)展。
另一個趨勢是C++在主流的企業(yè)應(yīng)用開發(fā)中已經(jīng)逐漸退出了,ERP這樣的企業(yè)軟件開發(fā)中基本上不會考慮C++,除非需要考慮性能或者和遺留代碼的集成這些因素。C++退守到系統(tǒng)級別語言,成為軟件工業(yè)的基礎(chǔ)是大勢所趨。
然而反思一下,真的是退守么?自從STL出現(xiàn),無數(shù)的人風(fēng)起云涌的開始支持C++,他們狂呼“我看到深夜消失了,目標軟件工程的出現(xiàn)。我看到了可維護的代碼?!笔堑模琒TL在可維護性下做得如此出色。
但是又怎樣呢?STL為C++鋪平了現(xiàn)代軟件工程的道路,而在上層應(yīng)用程序軟件開發(fā)領(lǐng)域這塊場地早不單獨屬于C++,很多程序設(shè)計語言都做得很出色,瘋狂的支持者會毫不猶豫地說我們應(yīng)當(dāng)支持C++標準化,因為它是世界上最棒的語言。
而坦率地說,你的腰桿真的那么硬么?也許只是在逃避一些事實。C++標準化是優(yōu)秀的,這不可否認,STL的出現(xiàn)讓C++一度走上了最輝煌的時刻。然而現(xiàn)在看來……我的一位恩師曾言。
真正能夠?qū)TL應(yīng)用得***的人很保守地說國內(nèi)也不超過200人,或許不加入STL能夠使C++向著它應(yīng)當(dāng)發(fā)展的方向發(fā)展的更好,而現(xiàn)在看來,C++也應(yīng)當(dāng)回首到真正屬于他的那一片圣地上……
【編輯推薦】