cxxJava像Java一樣開發(fā)C++
cxxJava -- 像Java一樣開發(fā)C++
當(dāng)你同時(shí)有過java和c++兩個(gè)語言的開發(fā)經(jīng)歷后,你會(huì)喜歡上java語言開發(fā)效率的高效但又深深的被c++語言運(yùn)行效率的高效所吸引。
java類庫(kù)的豐富性、通用性、易用性、特別是豐富的文檔和搜索引擎上信手拈來的使用示例,使的java開發(fā)變的容易;而c++兼容c語言、支持進(jìn)程、信號(hào)、Unix domain socket等更貼近操作系統(tǒng)的特性卻是java所不具備;
java由于虛擬機(jī)的限制,程序運(yùn)行效率在中大型的的服務(wù)器程序上始終無法跟c、c++等編譯類語言比擬,特別是廣為詬病的gc問題;而c、c++卻是業(yè)界公認(rèn)的運(yùn)行高效的系統(tǒng)開發(fā)語言,但c++語言其缺點(diǎn)同時(shí)也非常明顯:
c++語言過于靈活,掌握門檻高,學(xué)習(xí)曲線陡,真正做到像java一樣高效開發(fā)的程序員少之有少;
c++語言缺乏強(qiáng)大的開發(fā)類庫(kù),stl、boost、poco、qt等等,碎片化嚴(yán)重,而且無論哪一款跟java類庫(kù)相比都是依然相去甚遠(yuǎn),其中std基礎(chǔ)類庫(kù)跟jdk相比更是差了幾條街;
...
那有沒有在c++的基礎(chǔ)上集成java的一些優(yōu)點(diǎn),讓c++開發(fā)的變得更為容易呢?
答案肯定有!這里提供一些實(shí)現(xiàn)思路:
jdk基礎(chǔ)類庫(kù)設(shè)計(jì)了優(yōu)秀的api,編寫了豐富的使用文檔和搜索引擎上信手拈來的使用示例,我們可以直接參考使用,降低學(xué)習(xí)曲線和后期程序維護(hù)門檻;
jdk有強(qiáng)大的且經(jīng)過工業(yè)級(jí)考驗(yàn)的多線程并發(fā)庫(kù),如ConcurrentHashMap等,而c++卻嚴(yán)重缺失一樣強(qiáng)大的類庫(kù),這個(gè)也可以直接參考,多快好省;
java世界有很多優(yōu)秀的開源項(xiàng)目,如netty、mina、log4j、kafka等等等等,在一些云服務(wù)等對(duì)性能有嚴(yán)苛追求的企業(yè)可以直接參考并轉(zhuǎn)譯這些java項(xiàng)目,以最小的研發(fā)成本快速獲取想要的目標(biāo)軟件成果;
另外,c++世界沒有像java一樣好使的ide開發(fā)工具,所以我們可以先快速java原型開發(fā),而后再快速轉(zhuǎn)譯到c++;
為此,筆者針對(duì)上述思路做了一些有益的嘗試,具體詳見cxxJava系列項(xiàng)目。
CxxJDK:類jdk基礎(chǔ)類庫(kù),實(shí)現(xiàn)包括concurrent并發(fā)庫(kù)在內(nèi)的絕大多數(shù)常用類;
CxxLog4j:類log4j日志庫(kù),在log4j原功能基礎(chǔ)上創(chuàng)新實(shí)現(xiàn)不停應(yīng)用動(dòng)態(tài)刷新日志配置文件;
CxxMina:類Mina2.0網(wǎng)絡(luò)庫(kù),測(cè)試結(jié)果顯示比java版QPS高出很多;
從此,基于CxxJDK,廣大java開發(fā)者只要學(xué)習(xí)基礎(chǔ)的c++語言知識(shí)即可輕松進(jìn)行c++應(yīng)用開發(fā),原已掌握c++語言開發(fā)的小伙伴也可以輕松體驗(yàn)到類java api帶來的使用便利,一舉多得,enjoy it!
同時(shí),也歡迎大家加入到cxxjava系列項(xiàng)目的開發(fā)隊(duì)伍中來,謝謝大家!
