新聞中心
在軟件這個(gè)行業(yè)里,怕是沒有任何一個(gè)其話題域像開發(fā)語言這樣引起爭議了。對開發(fā)語言是非的爭論,不單曠日持久,且深度亦是與時(shí)俱進(jìn)。

在梅里斯等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需定制,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站制作,梅里斯網(wǎng)站建設(shè)費(fèi)用合理。
實(shí)現(xiàn)要強(qiáng)調(diào)下的是,在這里我們要專注的是開發(fā)語言的選擇而非開發(fā)語言的優(yōu)劣。
從不同的視角對開發(fā)語言進(jìn)行選擇,其結(jié)論可能大相徑庭。
從項(xiàng)目的角度看,語言自身特性的多少,強(qiáng)弱往往并不成為一個(gè)關(guān)鍵選擇因素。好比說某語言支持多重繼承,而某語言不支持多重繼承,但對大多項(xiàng)目而言多重繼承這一語言特性并不成為選擇的決定性因素。從項(xiàng)目角度看,某些通常被考慮(或不得不考慮)的因素有:
歷史的原因。維護(hù)升級類項(xiàng)目這類沒有選擇的選擇自不必提,這里說的歷史的原因是指這樣一類情形:完成某個(gè)項(xiàng)目需要某一圖形算法庫,而公司中只有這類庫的C++靜態(tài)庫。這個(gè)時(shí)候也許可以再做一層封裝,但從省力的角度看,很多人可能更愿意選C++。
現(xiàn)實(shí)的具體的原因,也就是說非這種語言不可的情形。做C51程序的話,恐怕大多數(shù)人都會(huì)直接想到用C。或者面對需要指針直接對內(nèi)存進(jìn)行操作的情形,很多人也自然的會(huì)想到C/C++。
既有類庫(組件等)的豐富程度。比如Windows下,.net中提供的類庫要比非管態(tài)的C++中多很多。同等情形下,很多人出于生產(chǎn)率的考慮,恐怕會(huì)選C#,而不是非管態(tài)的C++。
配套工具。IDE的豐富程度,單元測試工具,靜態(tài)測試工具等等。
其他還有現(xiàn)有人員的技能,目標(biāo)性能等因素。極端情形下,團(tuán)隊(duì)成員水平較差,那同等條件下就要避免復(fù)雜的語言。
總而言之,在做項(xiàng)目的時(shí)候,開發(fā)語言的選擇往往并不是由語言自身特性的多寡而確定的。通常也并不需要做語言特性的完整比較,而后再做選擇。
其中一個(gè)根本原因在于:就通用編程語言而言,大多的最常用的語言特性是即被這種語言支持,也被那種語言支持的,否則的話這種語言也就不能成為一種通用編程語言。
如果單純從學(xué)習(xí)的角度看,那需要考慮的因素與上述不同。
在學(xué)習(xí)階段,當(dāng)我們編制某個(gè)程序的時(shí)候,與程序結(jié)果相比,更應(yīng)該關(guān)注的是過程,也就是究竟學(xué)到的是什么。
就編程而言,不論編制任何程序,在學(xué)習(xí)的階段,其根本目的更應(yīng)該是加深我們對編程所面臨的本質(zhì)問題的體會(huì)。這也就可以推導(dǎo)出學(xué)習(xí)階段編程語言選擇的一些基本約束:
遠(yuǎn)離RAD。在這里RAD包括,但不限于可視化編程,應(yīng)用框架等等。RAD相關(guān)聯(lián)的東西可以幫助我們快速達(dá)到結(jié)果,但會(huì)減少我們對程序本質(zhì)進(jìn)行思索的機(jī)會(huì)。因此和RAD關(guān)聯(lián)過于緊密的語言,不適合作為學(xué)習(xí)的語言
選一種支持多范式的,支持大多現(xiàn)代語言特征的編程語言。強(qiáng)調(diào)多范式的一個(gè)根本原因是很多時(shí)候我們要知道我們究竟有多少選擇。就一般論而言,偏于一極通常是不對的,所以強(qiáng)調(diào)一切皆是對象的語言必然因此導(dǎo)入其他限制。至少我們應(yīng)該知道世上還有結(jié)構(gòu)化分析和設(shè)計(jì)方法。強(qiáng)調(diào)現(xiàn)代語言特征是因?yàn)?,我們很難在不支持類的語言中學(xué)習(xí)面向?qū)ο?,在不支持模板的語言中學(xué)習(xí)泛型
選一門可以貫通軟硬件的語言。在今時(shí)今日開發(fā)網(wǎng)頁的時(shí)候可能完全不需要對計(jì)算機(jī)體系結(jié)構(gòu),對操作系統(tǒng)有所了解。但從發(fā)展的角度看,一旦我們需要對某些較大規(guī)模的產(chǎn)品整體負(fù)責(zé)的時(shí)候(比如:系統(tǒng)集成等等)了解這些基礎(chǔ)知識(shí)的必要性就會(huì)凸顯出來。從結(jié)局來看,肯定不可能每個(gè)士兵都成為元帥,但在起點(diǎn)上就決定了一個(gè)人必須一直當(dāng)士兵的安排,多少是有點(diǎn)不恰當(dāng)?shù)摹?/p>
讀完上面的原則,很多人會(huì)發(fā)現(xiàn),最終可能還是C++這類非管態(tài)的語言更適合于打基礎(chǔ)。
這確實(shí)是我的觀點(diǎn)。從學(xué)習(xí)的角度看,***語言應(yīng)該是C++。在很多場合C++自身的寬泛性和復(fù)雜性會(huì)成為其自身的弱點(diǎn),但從學(xué)習(xí)的角度看,這卻成為它的強(qiáng)項(xiàng)。C++的C語言子集可以幫我讀懂類似《深入理解計(jì)算機(jī)系統(tǒng)》這樣的書,C++的抽象數(shù)據(jù)類型,面向?qū)ο筇卣骱头盒吞卣骺梢宰屛覀儗Τ绦虻谋举|(zhì)問題有多個(gè)視角的考察。甚至這門語言也可以幫助我們認(rèn)識(shí)面向?qū)ο筮@樣一種方法的缺陷。
原文鏈接:http://www.cnblogs.com/daoshi/archive/2012/06/11/2544473.html
標(biāo)題名稱:漫談開發(fā)語言的選擇
分享網(wǎng)址:http://www.dlmjj.cn/article/dphjeph.html


咨詢
建站咨詢
