



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、向C+初學(xué)者推薦的幾個(gè)開(kāi)源庫(kù)(2。9。14 13:44:35)標(biāo)簽:雜談 HYPERLINK .en/s/blog_532637060100e .en/s/blog_532637060100e tli.html前陣子寫(xiě)了C+的“武”和“功”。談到C+語(yǔ)言知識(shí),屬于“功”,而那些強(qiáng)大的C+庫(kù), 屬于“武”,屬于十八般武藝。這篇文章我首先把白話C+書(shū)中講到C+庫(kù),及相關(guān)工具,簡(jiǎn)單做個(gè)介紹。這些庫(kù)我 是怎么為C+初學(xué)者挑出來(lái)的呢?(一)、它們必須都是開(kāi)源產(chǎn)品,又為什么要是開(kāi)源的呢?1.1、十年前的國(guó)內(nèi)C+學(xué)習(xí)者,可以完全不必理會(huì)開(kāi)源庫(kù),但在幾年,編程界中的人, 如果敢無(wú)視開(kāi)源力量,那真夠火星的。從J
2、ava的各個(gè)流行的庫(kù),到Java語(yǔ)言(實(shí)現(xiàn))自身 也開(kāi)源了,再看那些強(qiáng)大的動(dòng)態(tài)語(yǔ)言:PHP、Python,Ruby,開(kāi)源環(huán)境簡(jiǎn)直就是它們呼吸的 空氣。今天在Linux界吵得沸沸揚(yáng)揚(yáng)的Mono,就是開(kāi)源.Net。C/C+其實(shí)才是開(kāi)源的鼻祖。 十五年前,會(huì)Borland的OWL,是大拿,十年前,會(huì)MS的MFC或Borland的VCL,就可 以風(fēng)光地混飯吃?,F(xiàn)在呢?你還準(zhǔn)備學(xué)哪個(gè)商業(yè)的庫(kù)?1.2、當(dāng)然也不是完全反對(duì)商業(yè)的庫(kù),但商業(yè)上的東西,自然就會(huì)有其廠商為它們大力推 動(dòng)。我們可以不去湊這個(gè)熱鬧。1.3我在書(shū)上數(shù)據(jù)庫(kù)的部分,主要講C+如何使用MySQL,而不是Oracle或SQLServer0 因?yàn)?/p>
3、作為軟件開(kāi)發(fā)者,出于軟件人的利益,我希望正版意識(shí)被人接受(無(wú)論開(kāi)源的或商業(yè)的), 并且我相信正版化是趨勢(shì),所以我不希望我的讀者為了讀我的書(shū),去盜版或花數(shù)萬(wàn)甚至十?dāng)?shù) 萬(wàn)去買(mǎi)數(shù)據(jù)庫(kù)?;蛟S有些商業(yè)軟件提供學(xué)習(xí)版,但功能受限。(二)、它們必須都是成熟的產(chǎn)品。或者背后有類(lèi)似IBM這樣的大公司在支持,比如xerces-c,或者在業(yè)界中許多成功的案 例,像MySQL就是使用量天下第一的數(shù)據(jù)庫(kù)?;蛘咚鼈兂L(zhǎng)的發(fā)展史,已經(jīng)通過(guò)無(wú)數(shù)應(yīng)用 被證明是穩(wěn)定的,比如wxWidgets,在MaximumPC雜志最近評(píng)出的32個(gè)“每臺(tái)新PC中最 重要的應(yīng)用軟件”中,使用wxWidgets構(gòu)建的,就占了 5個(gè)。至于iconv所
4、提供的編碼轉(zhuǎn)換, 那是所有Linux發(fā)行版內(nèi)置的基礎(chǔ)組件。最后一點(diǎn)我想也很重要,所有我在書(shū)講解的C/C+ 庫(kù)及軟件,都在本人最近5年的實(shí)際工作中使用過(guò)(順帶,我嚴(yán)格尊守了相關(guān)的開(kāi)源協(xié)議)。(三)、它們都是跨平臺(tái)的產(chǎn)品。C+在“商業(yè)應(yīng)用”方面,曾經(jīng)是天下第一的開(kāi)發(fā)語(yǔ)言,但這一桂冠已經(jīng)被java搶走多年。 因?yàn)楫?dāng)今商業(yè)應(yīng)用程序類(lèi)型,已經(jīng)從桌面應(yīng)用迅速轉(zhuǎn)移成Web應(yīng)用。當(dāng)Java橫行天下之后, MS又突然發(fā)力,搞出C#語(yǔ)言,有大片的曾經(jīng)的C+程序員,(包括我)以為C+要就此 沉淪,未料,這三年來(lái),C+的生命力突然被嚴(yán)重地增強(qiáng)了。主力原因就是開(kāi)源的軟件、基 礎(chǔ)軟件(比如并發(fā)原生支持,比如Android
5、必定要推出原生的SDK)、各種跨平臺(tái)應(yīng)用(比 如Firefox)的出現(xiàn)。如果我此時(shí)教各位局限于Windows下的C+,我該教什么呢?(四)、它們必須是相對(duì)通用的庫(kù)因?yàn)橐扑]給最終專(zhuān)業(yè)及行業(yè)尚未確定的初學(xué)者,庫(kù)就應(yīng)該是“基礎(chǔ)”型的,比如STL和 boost。通用型的,比如用于解析XML的xerces-c或正則表達(dá)式,屬于工具類(lèi),無(wú)論在做什 么編程,都用得上?;蛘呤菢?lè)趣型的,比如SDL。多說(shuō)無(wú)用,上菜。STL: C+標(biāo)準(zhǔn)模板庫(kù),呵呵,它也是開(kāi)源的嘛。wxWidgets :使用wxWidgets,開(kāi)發(fā)者可以基于同一套代碼,為Win32, Mac OS X, GTK+,X11, Motif, WinC
6、E等平臺(tái)開(kāi)發(fā)應(yīng)用程序wxWidgets 庫(kù)可以被C+, Python, Perl, and C# HYPERLINK .NET /.NET等開(kāi)發(fā)語(yǔ)言使用。跟其它有些同樣支持跨平臺(tái)GUI開(kāi)發(fā)工具不同,基于wxWidgets的應(yīng)用, 擁有真實(shí)本地化的視覺(jué)及使用效果一一因?yàn)?,wxWidgets使用(各)平臺(tái)原生的控件,而不 是簡(jiǎn)單通過(guò)貼圖去模擬。wxWidgets是使用廣泛的,自由的,開(kāi)源的,成熟的。mysql/mysql+:不用介紹吧?,F(xiàn)在Oracle手里,但我很放心。boost: C+準(zhǔn)標(biāo)準(zhǔn)庫(kù),它是強(qiáng)大地,江湖稱(chēng)之“千錘百煉”。iconv /iconvpp : (C形式的編碼轉(zhuǎn)換函數(shù)庫(kù),及本書(shū)作
7、者用C+語(yǔ)言對(duì)iconv的簡(jiǎn)單封 裝)xerces-c :個(gè)人認(rèn)為最完整,最強(qiáng)大的XML解析庫(kù)了,不是僅僅在開(kāi)源庫(kù)里,你盡管把 商業(yè)的算在內(nèi)。當(dāng)然,它的變體,被IBM拿去賣(mài)錢(qián)的那個(gè)版本,多了數(shù)百兆的東東來(lái)支持 各國(guó)編碼轉(zhuǎn)換,是更強(qiáng)大,但我覺(jué)得有小小的,開(kāi)源的iconv在前不就夠了?xsd (XML與C+數(shù)據(jù)結(jié)構(gòu)的綁定工具)。(商業(yè)使用要錢(qián))deelx (輕量級(jí)的正則表達(dá)式解析類(lèi)庫(kù),國(guó)產(chǎn)),boost里有強(qiáng)大的正則表達(dá)式解析庫(kù), 但如果你只想要一個(gè)表達(dá)式解析,不想要拖上龐大的boost庫(kù)時(shí)支持一下國(guó)貨。SDL (Simple DirectMedia Layer/多媒體直接訪問(wèn)層,用于游戲編程)。
8、gSOAPSOAP協(xié)議的C+支持庫(kù)及代碼生成工具??雌饋?lái),這些庫(kù)功能都強(qiáng)大的,又是開(kāi)源的,真是天上掉餡餅了?也不是,代價(jià)就是, 你必須熟悉開(kāi)源C+的規(guī)則,通常它們就是源代碼,你必須自己編譯它們。為此白話C+ 里,專(zhuān)文一章,用來(lái)講解如何編譯、安裝各類(lèi)的庫(kù)及軟件。但對(duì)缺少經(jīng)驗(yàn),奇怪問(wèn)題總是會(huì) 有,很多讀者會(huì)有怨言了。C+好復(fù)雜??!開(kāi)始退縮了,我真的需要學(xué)習(xí)這么庫(kù)嗎?我光學(xué) 習(xí)C+語(yǔ)言不行嗎?坦白地講,光學(xué)習(xí)任何語(yǔ)言都不行。學(xué)一個(gè)java能有什么公司要你? 如果你不會(huì)它的任何框架,一個(gè)Python語(yǔ)言真的那么強(qiáng)大的?如果剝掉它那來(lái)自五湖四海 的眾多庫(kù)。好吧,很多人決定堅(jiān)持下來(lái),但他們問(wèn)我,我的堅(jiān)持有
9、沒(méi)有意義,我即將受的苦,對(duì)我 有沒(méi)有好處?這就是說(shuō),大家會(huì)把這些“庫(kù)”的學(xué)習(xí),不知不覺(jué)地,當(dāng)成了負(fù)擔(dān)!精力上的, 及心理上的負(fù)擔(dān)。所以,接下來(lái),我說(shuō)說(shuō)我的看法:學(xué)習(xí)庫(kù),是有累的地方,但更多的是好 處。任何人學(xué)習(xí)語(yǔ)言的過(guò)程,其實(shí)都不僅僅是“學(xué)”,而應(yīng)該還有一個(gè)“習(xí)”。所謂,“習(xí)”,就是 并不是簡(jiǎn)單的“練習(xí)”,而是“應(yīng)用”。不是嗎?就像學(xué)習(xí)英語(yǔ),如果光抱著書(shū)大啃,只用來(lái)應(yīng) 付考試可能沒(méi)事,但會(huì)學(xué)習(xí)得很苦。如果學(xué)一點(diǎn)就能找老外說(shuō)一點(diǎn),肯定會(huì)很有樂(lè)趣,并且 進(jìn)展神速我說(shuō)這話可不是憑想像!那是完全有根據(jù)了。去年因?yàn)榇髮W(xué)生交換,我手下交 換來(lái)一位德國(guó)漂亮女生,會(huì)說(shuō)英語(yǔ)。我每天帶她去吃午飯,又有動(dòng)力,效果又好啊。:)前面那些庫(kù),有做界面的,有數(shù)據(jù)庫(kù)的,有做游戲的,有XML解析的,有SOAP協(xié)議, 還有一些沒(méi)舉出的,線程,網(wǎng)絡(luò).光學(xué)C+語(yǔ)言本身,沒(méi)有這些,我們的樂(lè)趣從何而來(lái)? 我們的成就感從何而來(lái)?光是那個(gè)黑黑的控制臺(tái)里的字符界面嗎? “Hello world”帶給C+ 初學(xué)者的樂(lè)趣,竊以為能持續(xù)一個(gè)下午,就不錯(cuò)了??赡軐W(xué)編程中的,是有人會(huì)走“苦行僧”路線,那種路線具體效果如何,我不了解,我
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同范本002
- 中標(biāo)人支付合同范本
- 割草合同范例
- 印章保管合同范本律師
- 發(fā)電機(jī)保養(yǎng)合同范本
- 合資做房子合同范例
- 到期不住合同范本
- 醫(yī)院工程材料采購(gòu)合同范本
- 廠房阻力合同范本
- 人贅婿合同范本
- 特殊工種操作人員體檢表
- 常用橋牌詞語(yǔ)(中英文對(duì)照)
- 加盟招商方案PPT模板
- 中石油HSE培訓(xùn)試題集(共33頁(yè))
- 雙碳視角看歐盟綠色新政政策篇
- 備電綜合解決方案服務(wù)合同
- 噴(烤)漆房VOCs治理設(shè)施日常運(yùn)行臺(tái)賬
- 往復(fù)式壓縮機(jī)組單機(jī)試運(yùn)方案
- 區(qū)域環(huán)境概況
- 爆破片面積計(jì)算
- 設(shè)備安裝檢驗(yàn)批表格
評(píng)論
0/150
提交評(píng)論