亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C++的救贖 C++開源程序庫評話

2019-11-17 05:19:29
字體:
來源:轉載
供稿:網友
C語言天生就與開放結緣。C最初是作為UNIX的系統編程語言而流行起來的,而UNIX可以被認為是第一個產生重大影響的“開源”軟件。隨著UNIX的流行,C語言逐漸被人們熟悉和喜愛。很快的,在各個平臺上C語言都成為了流行的甚至是統治性的程序設計語言。大約到1980年代中期,C已經成為人類歷史上第一種工業級程序設計世界語。很多人都知道,正是C這樣一種世界語的出現,才使開源運動的出現和最初發展成為可能,從這個意義上講,說C語言是開源運動之母并不十分過分。但人們不太能夠熟悉到的是,事實上C語言統治地位的獲得,卻也是早期開放軟件運動的直接結果。多數人在回顧這段歷史的時候,經常會感染中國文人的不嚴厲的浪漫主義史觀,喜歡把C語言的成功歸結為漢高祖斬白蛇般的天賦神格,描述為遙想公瑾當年,談笑間檣櫓灰飛煙滅的輕飄飄。然而假如我們對歷史作一些細致的調查,我們會發現C語言絕非有什么天命,而只不過是幸運地扒上了早期開放運動的快車而已。在C語言“小人乍富”的那幾年,也還有其它不少程序設計語言具有高性能、可移植、系統開發能力強的特點,決不是只有C骨骼特異,貌若天仙。假如Pascal也能借助一個像UNIX那樣的開放的幽靈在歐美大學校園里徘徊,那么我們今天很可能要把begin和end直接映射到鍵盤上。假如IBM不是在1970年代極端保守地把一種叫做PL/X的語言牢牢地限定在自己的研究所里,也許整個程序員社群的圖騰就不是貝爾試驗室的那兩個大胡子,而是小沃森實驗室里的IBM某院士。事實上,C語言的成功,更須拜開放軟件運動之時勢所賜,或者更確切地說,C與開放軟件是一對共生體,它們相互扶持,相互成就,共同成長興旺,共同創造歷史。 根深自然葉茂。今天C語言體系內所擁有的開放資源,無論是數量和質量,還是豐富性、多樣性、創新性、可靠性、重要性,都是其它任何開發技術體系所無法望其項背的。豐富對于開發者是好事,但對于寫資源介紹性文章的作者來說,則是絕對的壞事。想要對C語言體系中的開放資源做一個介紹,哪怕只是一次白描,也決不是一個人、一本書所能容納的,更遠遠不是雜志中的一篇文章所能及的。因此在本文中,對于C語言開放資源的介紹是以一種蜻蜓點水的姿態進行的。相比之下,C++語言在開源世界中的分量,與C語言相比就相去甚遠了。作為對照,C++語言在工業界的實際地位,假如不是比C更重要的話,至少也是與C在同一個層次上??紤]到這一點,在開源領域中兩兄弟的這種差距就令人感到非常震動。假如說在2000年以前,由于C++在工業界的統治地位,這種差距對C++的影響還不大的話,今天,C++在開源領域里薄弱的基礎就非常要命了?,F在在開發者社群中,“C語言萬壽無疆,C++無壽無疆”的說法得到不少人的支持,其根本原因之一就在于C++在開源運動中的地位遠遜于C。究其原因,歸根到底是因為編寫高質量、可復用而又拳拳服膺的C++程序庫實在是一件太困難的事情。一方面,大量的C++開源項目質量不佳,而且經常以一種粗暴的方式要求使用者改變自己程序的風格,另一方面,一旦有人完成了一個可用的C++項目或者程序庫,他必須具有極其彪悍的意志才能夠咬著牙把這樣的項目奉獻給開源社群——不僅因為失去了可能的金錢上的回報,更因為可能要面對著暴風雨般的批評和鄙視。總之,諸多的原因使得開源文化未能在C++中深深扎根。然而,究竟C++是一種稱霸一時的語言,C++社群的規模、強悍和創造力,仍然是很多其它新興語言社群難以相比的。非凡是在標準C++制定之后,C++編程風格有了明確的指導思路,開源項目也就大大繁榮起來。雖然時間還不長,但是已經有一些令人欣慰的成果。這些成果也就構成了寫作本文的基本動機和素材。就重要性而言,開源程序庫和工具集對于C++甚至比對C還要重要得多。因為實踐證實,沒有良好的基礎設施支持,C++開發成功的可能性異乎平常的低。其根本原因是,用C++寫優秀的程序庫非常非常難,而一旦有了這樣的程序庫,在其基礎上寫應用程序就相當輕易了。同時,C++的特點又要求基礎設施的源代碼必須開放,因此,C++程序庫對于開發者來說意義非常重大。我們可以更進一步探究開源C++程序庫對于C++開發的重要意義。用C++編寫可復用程序庫時所需要的思想方法和技術風格,與用C++編寫應用程序時所需要的思想方法和技術風格之間存在相當大的差異和差距。前者所需要的高超技術、豐富經驗和良好的權衡能力,是很少有人能具備的。在所有程序設計語言中,你恐怕找不出第二種語言像C++那樣,對于程序庫作者的要求如此之高,以至于遠遠超過了一般“熟練”C++開發者的平均水平。在Lisp中,語言、庫和程序根本就是一回事,每一個程序員寫的代碼都可以看成是語言本身的擴充。在java、C、Perl、Python、Ruby中,一個優秀的應用程序開發者在積累一定經驗之后,不難寫出高質量的可復用代碼。而在C++中,這種事情是非常罕見的,即使是天資卓越、經驗豐富的大師級人物,也需要花費多年的打磨,歷經幾次反復,才能夠最終推出受到一致認可的可復用程序庫。此道之難,難于上青天,以至于Andrei Alexandrescu感嘆道,十幾歲的少年天才滿目皆是,滿鬢斑白的優秀程序庫設計者鳳毛麟角。而在另一個地方,一本C++可復用技術圖書的作者總結道,所謂可復用的C++程序庫,不可能是設計出來的,只可能是復用出來的。然而,一旦這樣的程序庫構造出來并且為人們熟悉,那么就會大大地簡化應用程序的開發。這也就是為什么在2000年后,Bjarne Stroustrup無數次地呼吁社群專注程序庫的開發。他很清楚,只有程序庫能夠救C++,只有程序庫能夠發展C++。
現在我們知道,用來寫C++程序庫所需要的技術,與用來寫C++應用程序所需要的技術存在很大的差別。這已經比較糟糕了。更糟糕的是,一般的C++開發者根本分不清這中間的差別,他們在開發中往往既不是一個稱職的程序庫開發者,也不是一個單純的應用開發者。他們一邊想著完成手頭的工作,一邊琢磨如何能夠寫出高質量的基礎庫和框架,為萬世開太平。假如說C語言是一把輕快的小匕首,遇誰都是進身猛刺,血濺一尺,那么這種C++的使用方式無異于左手打鐵鑄兵,右手揮劍刺秦,這種精神分裂的狀態直接將很多項目變成了既超期超支又質量低劣的垃圾。熟悉到這樣的事實之后,C++程序員應當以更理性的態度來看待自己的工作。大部分情況下,你所需要做的是尋找一些可以互相合作的、穩定可靠的開源程序庫,然后在其基礎之上,面向目標,使用盡可能簡單的技術,專心專意地進行應用開發,把那些復雜精妙的語言技巧和“可復用”之類的想法扔到Java國去。唯其如此,你才可能更高效地開發出好的應用軟件,而且會逐漸積累和重構出真正可復用的軟件。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
伊人久久大香线蕉av一区二区| 欧美日韩国产综合视频在线观看中文| 日韩av网址在线| 97**国产露脸精品国产| 亚洲精品少妇网址| 欧美限制级电影在线观看| 一道本无吗dⅴd在线播放一区| www.99久久热国产日韩欧美.com| 日韩电视剧在线观看免费网站| 久久久久久久久久久91| 亚洲国产精品一区二区三区| 日韩视频中文字幕| 精品国产一区二区三区四区在线观看| 最好看的2019年中文视频| 国产精品高潮呻吟久久av无限| 91亚洲一区精品| 久久综合免费视频影院| 欧美成人免费大片| 亚洲国产精久久久久久久| 日韩av中文字幕在线免费观看| 日韩免费在线免费观看| 久久久久久久久久久成人| 国产亚洲精品久久久| 久久久免费精品视频| 久久免费视频在线| 亚洲国产精久久久久久| 亚洲精品欧美一区二区三区| 91在线视频免费| 欧美性精品220| 青青久久av北条麻妃海外网| 欧美黑人xxxⅹ高潮交| 狠狠躁18三区二区一区| 久久久久国色av免费观看性色| 国产美女精品视频免费观看| 色哟哟网站入口亚洲精品| 国产女同一区二区| 色妞色视频一区二区三区四区| 国产成人精品免费久久久久| 国产精品中文在线| 大荫蒂欧美视频另类xxxx| 高清视频欧美一级| 欧美成人精品在线观看| 国产精品久久久久久av福利软件| 欧美日韩国产综合视频在线观看中文| 日韩女在线观看| 国产日本欧美一区二区三区在线| 日韩国产在线看| 久久成人精品一区二区三区| 成人福利视频在线观看| 久久久久99精品久久久久| 91精品中文在线| 爱福利视频一区| 日本一区二区在线播放| 一区二区福利视频| 日韩电影中文 亚洲精品乱码| 中文字幕亚洲色图| 91精品国产高清久久久久久久久| 91久久在线视频| 色综合视频网站| 欧美亚洲成人精品| 成人激情视频在线观看| 国产亚洲精品91在线| 欧美成人精品激情在线观看| 亚洲欧美日韩精品久久亚洲区| 欧美俄罗斯性视频| 91精品国产九九九久久久亚洲| 久色乳综合思思在线视频| 91av福利视频| 久久在线免费视频| 日韩精品有码在线观看| 欧美刺激性大交免费视频| 国产精品视频久久久久| 国产精品一区二区三区成人| 中文字幕欧美日韩va免费视频| 欧美日韩国产一区二区| 亚洲福利影片在线| 欧美激情免费视频| 日韩欧美国产中文字幕| 国产成人精品日本亚洲专区61| 国产精品香蕉在线观看| 日韩欧美国产高清91| 亚洲色图在线观看| 亚洲精品色婷婷福利天堂| 欧美在线日韩在线| 浅井舞香一区二区| 高清欧美性猛交xxxx| 97超碰蝌蚪网人人做人人爽| 午夜剧场成人观在线视频免费观看| 91久久久国产精品| 26uuu另类亚洲欧美日本一| 国产精品稀缺呦系列在线| 久久网福利资源网站| 日韩在线视频一区| 国产精品久久久久久久久久久新郎| 欧美国产日韩一区二区在线观看| 欧美日韩高清在线观看| 欧美在线视频一二三| 久热在线中文字幕色999舞| 日韩电影免费观看在线观看| 亚洲自拍小视频免费观看| 中文字幕精品国产| 国产日韩在线看| 国产综合福利在线| 国产精品啪视频| 亚洲视频在线观看| 亚洲国产一区二区三区在线观看| 国产丝袜一区二区三区免费视频| 中文国产亚洲喷潮| 久久久久久国产精品美女| 亚洲xxxx在线| 国产福利精品视频| 亚洲国产黄色片| 久久精品91久久香蕉加勒比| 亚洲一区二区在线播放| 日韩欧美国产高清91| 亚洲在线视频观看| 久久天天躁狠狠躁夜夜av| 亚洲午夜女主播在线直播| 国产精品久久久久久久久久尿| 亚洲视频在线视频| 亚洲精品按摩视频| 日韩精品在线观看网站| 亚洲乱码国产乱码精品精| 色偷偷噜噜噜亚洲男人| 亚洲人在线视频| 亚洲韩国日本中文字幕| 欧美一级高清免费播放| 日韩精品免费综合视频在线播放| 日韩大片免费观看视频播放| 亚洲天堂网站在线观看视频| 国产精品三级网站| 国产精品自产拍在线观看中文| 亚洲激情视频在线播放| 狠狠躁18三区二区一区| 久久精品国产亚洲精品| 97超级碰碰碰久久久| 欧美日本在线视频中文字字幕| 啪一啪鲁一鲁2019在线视频| 欧美色欧美亚洲高清在线视频| 亚洲第一天堂无码专区| 麻豆精品精华液| 精品av在线播放| 国产精品第一页在线| 美日韩丰满少妇在线观看| 国产精品av电影| 欧美视频裸体精品| 91麻豆国产语对白在线观看| 亚洲色图日韩av| 一本大道久久加勒比香蕉| 国产视频精品自拍| 欧美成人黑人xx视频免费观看| 久久全球大尺度高清视频| 中文字幕在线观看亚洲| 91高清视频免费| 久久久久久久久网站| 亚洲日韩中文字幕| 日本中文字幕不卡免费| 亚洲第五色综合网| 91免费人成网站在线观看18| 国产精选久久久久久| 92版电视剧仙鹤神针在线观看| 亚洲片国产一区一级在线观看| 亚洲人成77777在线观看网| 亚洲一区二区三区乱码aⅴ|