對(duì)于C++開發(fā)環(huán)境進(jìn)行講析
大多數(shù)企業(yè)用的開發(fā)語言,莫過于C++了,但是隨著科技地發(fā)展,其他的編程語言也在慢慢的進(jìn)入用戶的視野,那么這三種開發(fā)環(huán)境并不一定說哪個(gè)程序比哪個(gè)程序要好,但是目前還是C++開發(fā)環(huán)境占主流。
一個(gè)古董級(jí)的開發(fā)環(huán)境,說他是古董是因?yàn)楹苌儆熊浖媚敲淳眠€有大量的用戶在使用,有點(diǎn)像當(dāng)年的Borland公司的tc。vc6.0用微軟在開發(fā)環(huán)境上的***突破,是帶有歷史意義的。由于vc6.0的出現(xiàn),使微軟打破的長久以來被Borland公司的C++ builder獨(dú)占C++開發(fā)環(huán)境的局面。
VC6.0界面簡潔,軟件運(yùn)行效率高,使得他成為的大家都***。其實(shí)就用vc的后續(xù)版本,現(xiàn)在微軟已經(jīng)把它出到了vs2010。每年更新一次版本,可見微軟對(duì)vs的雄心壯志。系出我軟件,所以比起其它開發(fā)環(huán)境有著得天獨(dú)厚的優(yōu)勢。
對(duì)自己操作系統(tǒng)的***支持,豐富的功能集成,使得他成為的大量程序員的***。BCBBorland的公司的杰作。特別是BCB6.0很是值得一提,看看市面的關(guān)于C++ builder相關(guān)的書就知道,幾乎所有的書都是根據(jù)6.0寫的。
比起微軟的作品,BCB有著她獨(dú)有的魅力。像vb一樣的高效的開發(fā)環(huán)境,高度集成的控件可以滿足我們大部分的需求。雖然BCB所開發(fā)的軟件運(yùn)行效率比不上微軟的,但是使用它開發(fā)軟件可以節(jié)省我們好多的時(shí)間。當(dāng)前硬件發(fā)展的如此之快,BCB與vs的效率幾乎是感覺不出來的。
使用vs可以提高軟件運(yùn)行效率,但是使用BCB卻可以節(jié)約我們的開發(fā)時(shí)間。如果是個(gè)小程序BCB的開發(fā)時(shí)間是相當(dāng)短的。BCB提供的控件相當(dāng)豐富,操作又想到簡單,使得它能節(jié)約相當(dāng)多的時(shí)間。
微軟的MFC框架是一套相當(dāng)復(fù)雜的模型,用BCB則完全跳出來MFC框架。在計(jì)算量大且軟件界面沒什么要求的情況下完全可以使用vc6.0,要求再高點(diǎn)的話就可以使用vs,如果時(shí)間緊且對(duì)界面要求高,我很是建議大家用BCB。
單純的比較開放環(huán)境其實(shí)是沒有多大意義的,具體的選擇還得看大家的個(gè)人習(xí)慣及工作環(huán)境。開放效率和運(yùn)行效率本就很難兩全齊美,就如同用sdk開發(fā)軟件肯定比用mfc開發(fā)出來的運(yùn)行效率高,但是大家卻很少有人去用sdk開發(fā)一樣。開發(fā)效率和運(yùn)行效率只能有開發(fā)的要求去權(quán)衡,單純的說哪個(gè)好求實(shí)是無稽之談。
這篇文章本來發(fā)的很早了,寫的也一般,只是今天無意間看到了網(wǎng)上一篇2003年的關(guān)于vc和bcb開發(fā)軟件在執(zhí)行效率上的比較,感慨一下,又把這篇改了一下。單純的比較執(zhí)行效率是一件愚蠢的事
但看了無數(shù)篇闡述C++復(fù)雜性的文章,和爭論C++復(fù)雜性的吐沫星子(包括我前段時(shí)間寫的兩篇關(guān)于C++的總結(jié))。我始終都有一個(gè)感覺——沒分析透,就跟盲人摸象一樣。正如“Why C++”的一位讀者批評(píng)的,我在文章里面沒有寫明到底哪些是C++的“非本質(zhì)復(fù)雜性”。
當(dāng)然,我自己憑感覺就能知道,而接觸C++一段時(shí)間的人大致也能知道,但新手乃至非新手則對(duì)我所謂的“非本質(zhì)復(fù)雜性”根本沒有一個(gè)具體的認(rèn)識(shí),這就使得那篇“Why C++開發(fā)環(huán)境”脫離了原本的意圖——面向所有C++使用者和學(xué)習(xí)者。
同樣的原因,在寫了“你應(yīng)當(dāng)如何學(xué)習(xí)C++”一文之后,當(dāng)孟巖先生邀請(qǐng)我給《程序員》寫一個(gè)系列的文章,介紹一下我在接觸C++的過程中的態(tài)度和認(rèn)識(shí)轉(zhuǎn)變時(shí),我雖然非常高興的答應(yīng)了,但直到現(xiàn)在3個(gè)月過去了還是顆粒無收。
為什么?因?yàn)槲矣X得真正本質(zhì)的問題沒有被清晰的觸摸到;所以直到現(xiàn)在我都沒有動(dòng)筆,免得廢話說了一大堆,除了能被當(dāng)成小說讀讀之外,對(duì)真正考慮是否要學(xué)習(xí)乃至使用C++開發(fā)環(huán)境的人未必有什么實(shí)際用處。
然而,這么個(gè)念頭一直都放在潛意識(shí)里面。前一陣子和Bjarne通信,談到了關(guān)于C++復(fù)雜性的一些想法,在郵件里面總結(jié)了一下C++的復(fù)雜性來源,感覺思路清晰了許多。而這篇文章要達(dá)到的目的,正是傳達(dá)對(duì)C++的復(fù)雜性的一個(gè)具體而明確的認(rèn)識(shí),有了這個(gè)認(rèn)識(shí)作為支持,我們便可以推導(dǎo)出學(xué)習(xí)C++的***(實(shí)踐者)的方法。
【編輯推薦】