自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

探秘開源C++程序庫

開發(fā) 后端
如果我們對于開發(fā)界的進(jìn)行研究,我們就會發(fā)現(xiàn)C++程序庫絕非有什么天命,只不過是在C庫的基礎(chǔ)上延伸而已。

用C++程序進(jìn)行編寫應(yīng)用程序時所需要的思想方法和技術(shù)風(fēng)格之間存在相當(dāng)大的差異和差距,在進(jìn)行C++的編制過程中,可以隨隨便便的自定義自己的編程,但是C++程序庫對于開發(fā)者來說具有很重要的意義。

如果IBM不是在1970年代極端保守地把一種叫做PL/X的語言牢牢地限定在自己的研究所里,也許整個程序員社群的圖騰就不是貝爾試驗(yàn)室的那兩個大胡子,而是小沃森實(shí)驗(yàn)室里的IBM某院士。

事實(shí)上,C語言的成功,更須拜開放軟件運(yùn)動之時勢所賜,或者更確切地說,C與開放軟件是一對共生體,它們相互扶持,相互成就,共同成長興旺,共同創(chuàng)造歷史。 根深自然葉茂。

今天C語言體系內(nèi)所擁有的開放資源,無論是數(shù)量和質(zhì)量,還是豐富性、多樣性、創(chuàng)新性、可靠性、重要性,都是其它任何開發(fā)技術(shù)體系所無法望其項(xiàng)背的。豐富對于開發(fā)者是好事,但對于寫資源介紹性文章的作者來說,則是絕對的壞事。

想要對C語言體系中的開放資源做一個介紹,哪怕只是一次白描,也決不是一個人、一本書所能容納的,更遠(yuǎn)遠(yuǎn)不是雜志中的一篇文章所能及的。因此在本文中,對于C語言開放資源的介紹是以一種蜻蜓點(diǎn)水的姿態(tài)進(jìn)行的。

相比之下,C++語言在開源世界中的分量,與C語言相比就相去甚遠(yuǎn)了。作為對照,C++語言在工業(yè)界的實(shí)際地位,如果不是比C更重要的話,至少也是與C在同一個層次上??紤]到這一點(diǎn),在開源領(lǐng)域中兩兄弟的這種差距就令人感到非常震驚。

如果說在2000年以前,由于C++在工業(yè)界的統(tǒng)治地位,這種差距對C++的影響還不大的話,今天,C++在開源領(lǐng)域里薄弱的基礎(chǔ)就非常要命了。現(xiàn)在在開發(fā)者社群中,“C語言萬壽無疆,C++無壽無疆”的說法得到不少人的支持,其根本原因之一就在于C++在開源運(yùn)動中的地位遠(yuǎn)遜于C。究其原因,歸根到底是因?yàn)榫帉懜哔|(zhì)量、可復(fù)用而又拳拳服膺的C++程序庫實(shí)在是一件太困難的事情。

一方面,大量的C++開源項(xiàng)目質(zhì)量不佳,而且經(jīng)常以一種粗暴的方式要求使用者改變自己程序的風(fēng)格,另一方面,一旦有人完成了一個可用的C++項(xiàng)目或者程序庫。

他必須具有極其彪悍的意志才能夠咬著牙把這樣的項(xiàng)目奉獻(xiàn)給開源社群——不僅因?yàn)槭チ丝赡艿慕疱X上的回報(bào),更因?yàn)榭赡芤鎸χ╋L(fēng)雨般的批評和鄙視。總之,諸多的原因使得開源文化未能在C++中深深扎根。#t#

然而,畢竟C++是一種稱霸一時的語言,C++社群的規(guī)模、強(qiáng)悍和創(chuàng)造力,仍然是很多其它新興語言社群難以相比的。特別是在標(biāo)準(zhǔn)C++制定之后,C++編程風(fēng)格有了明確的指導(dǎo)思路,開源項(xiàng)目也就大大繁榮起來。雖然時間還不長,但是已經(jīng)有一些令人欣慰的成果。這些成果也就構(gòu)成了寫作本文的基本動機(jī)和素材。

就重要性而言,開源程序庫和工具集對于C++甚至比對C還要重要得多。因?yàn)閷?shí)踐證明,沒有良好的基礎(chǔ)設(shè)施支持,C++開發(fā)成功的可能性異乎尋常的低。

其根本原因是,用C++寫優(yōu)秀的程序庫非常非常難,而一旦有了這樣的程序庫,在其基礎(chǔ)上寫應(yīng)用程序就相當(dāng)容易了。同時,C++的特點(diǎn)又要求基礎(chǔ)設(shè)施的源代碼必須開放,因此,C++程序庫對于開發(fā)者來說意義非常重大。

我們可以更進(jìn)一步探究開源C++程序庫對于C++開發(fā)的重要意義。用C++編寫可復(fù)用程序庫時所需要的思想方法和技術(shù)風(fēng)格,與用C++編寫應(yīng)用程序時所需要的思想方法和技術(shù)風(fēng)格之間存在相當(dāng)大的差異和差距。前者所需要的高超技術(shù)、豐富經(jīng)驗(yàn)和良好的權(quán)衡能力,是很少有人能具備的。

在所有程序設(shè)計(jì)語言中,你恐怕找不出第二種語言像C++那樣,對于程序庫作者的要求如此之高,以至于遠(yuǎn)遠(yuǎn)超過了一般“熟練”C++開發(fā)者的平均水平。在Lisp中,語言、庫和程序根本就是一回事,每一個程序員寫的代碼都可以看成是語言本身的擴(kuò)充。

在Java、C、Perl、Python、Ruby中,一個優(yōu)秀的應(yīng)用程序開發(fā)者在積累一定經(jīng)驗(yàn)之后,不難寫出高質(zhì)量的可復(fù)用代碼。而在C++中,這種事情是非常罕見的,即使是天資卓越、經(jīng)驗(yàn)豐富的大師級人物,也需要花費(fèi)多年的打磨,歷經(jīng)幾次反復(fù),才能夠最終推出受到一致認(rèn)可的可復(fù)用程序庫。

此道之難,難于上青天,以至于Andrei Alexandrescu感嘆道,十幾歲的少年天才滿目皆是,滿鬢斑白的優(yōu)秀程序庫設(shè)計(jì)者鳳毛麟角。而在另一個地方,一本C++可復(fù)用技術(shù)圖書的作者總結(jié)道,所謂可復(fù)用的C++程序庫,不可能是設(shè)計(jì)出來的,只可能是復(fù)用出來的。

然而,一旦這樣的程序庫構(gòu)造出來并且為人們熟悉,那么就會大大地簡化應(yīng)用程序的開發(fā)。這也就是為什么在2000年后,Bjarne Stroustrup無數(shù)次地呼吁社群專注程序庫的開發(fā)。他很清楚,只有程序庫能夠救C++,只有程序庫能夠發(fā)展C++。

責(zé)任編輯:chenqingxiang 來源: 51CTO.com
相關(guān)推薦

2010-01-14 09:43:26

C++標(biāo)準(zhǔn)程序庫

2010-01-19 09:39:43

C++標(biāo)準(zhǔn)程序庫

2010-01-19 09:39:43

C++標(biāo)準(zhǔn)程序庫

2010-01-19 18:04:02

C++標(biāo)準(zhǔn)程序庫

2010-01-15 14:59:54

C++標(biāo)準(zhǔn)程序庫

2015-04-29 09:58:48

開源C++

2010-02-24 16:11:42

Python程序庫

2013-08-15 13:29:52

Moco程序庫設(shè)計(jì)

2011-11-11 16:02:39

2010-01-28 09:31:57

C++開源程序

2019-09-18 09:05:26

微軟開源Windows

2013-04-22 09:21:43

2010-01-13 18:49:54

C++的復(fù)雜性

2010-01-14 11:07:59

Visual C++

2024-01-23 10:13:57

C++虛函數(shù)

2010-01-12 15:33:26

CC++

2024-04-22 13:22:00

虛函數(shù)象編程C++

2024-01-24 11:44:44

C++智能指針開發(fā)

2024-01-31 23:51:22

C++移動語義代碼

2020-03-31 22:09:01

React應(yīng)用程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號