四川大學(xué) 韓震博
計算機軟件開發(fā)語言的研究與探討
四川大學(xué) 韓震博
隨著現(xiàn)代軟件開發(fā)的需求多種多樣,計算機軟件開發(fā)語言也得到快速的發(fā)展,并且更加多樣化。常見的計算機軟件開發(fā)語言分為面向過程的開發(fā)語言、面向?qū)ο蟮拈_發(fā)語言和腳本開發(fā)語言。面向過程的開發(fā)語言的代表是C語言和Basic語言,面向?qū)ο蟮拈_發(fā)語言的代表是C#和JAVA,腳本開發(fā)語言的代表是PHP、JavaScript和Python等。軟件開發(fā)根據(jù)需求和效率的要求,逐漸從單一的開發(fā)語言到多種開發(fā)語言相結(jié)合。軟件開發(fā)語言的發(fā)展使開發(fā)能力得到提升,使開發(fā)效率也得到提高。
計算機軟件;軟件開發(fā)語言;JAVA;C#
全球社會經(jīng)濟和科學(xué)水平的發(fā)展和進(jìn)步,計算機技術(shù)已經(jīng)進(jìn)入到各行各業(yè),并且在社會生活中起著最重要的地位。計算機應(yīng)用領(lǐng)域的擴展、需求的多樣化促進(jìn)了計算機軟件開發(fā)語言的變革和發(fā)展??v觀歷史,計算機開發(fā)語言起初為低級的穿孔打卡,發(fā)展到面向過程的高級開發(fā)語言,隨后發(fā)展到面向?qū)ο蟮拈_發(fā)語言,現(xiàn)如今發(fā)展到多種開發(fā)語言并存的局面。多種開發(fā)語言并存的現(xiàn)狀能夠滿足多樣化和豐富化的開發(fā)需求。
2.1高級開發(fā)語言
C語言是目前使用最廣泛的開發(fā)語言之一,主要是為了簡化編程、提供硬件使用率和處理速度為目的設(shè)計的。C語言的特點是簡潔靈活、運算符和數(shù)據(jù)類型完善、允許操作計算機的物理地址和可移植性好?,F(xiàn)如今主要利用C語言開發(fā)操作計算機硬件的相關(guān)程序和底層應(yīng)用開發(fā),因此C語言仍然是使用率名列前茅的開發(fā)語言。
Pascal語言是1967年有Niklaus Wirth開發(fā)的,并與1971年完成的開發(fā)語言。Pascal語言的主要特點是具有嚴(yán)格的結(jié)構(gòu)化形式、完善的數(shù)據(jù)類型、高效的運行效率以及很強的查錯能力。因此Pascal語言應(yīng)用于各種算法的設(shè)計、DOS環(huán)境的開發(fā)與數(shù)據(jù)結(jié)構(gòu)的開發(fā)。Pascal仍然被一部分開發(fā)者所使用。
2.2面向?qū)ο蟮拈_發(fā)語言
Java語言是一種面向?qū)ο箝_發(fā)語言,最主要的三大特征是封裝、繼承和多態(tài)。Java對類進(jìn)行了屬性和方法的封裝,從而實現(xiàn)對屬性和方法的隱藏,提高程序的安全性。Java的繼承實現(xiàn)了子類與父類的繼承關(guān)系,從而豐富了對象的關(guān)系,以實現(xiàn)現(xiàn)實世界的對象關(guān)系。Java的多態(tài)性是從時間角度對軟件開發(fā)進(jìn)行的研究,主要包括設(shè)計時多態(tài)和運行時多態(tài),設(shè)計時多態(tài)主要表現(xiàn)在方法的重載。Java本身具有虛擬機,在運行Java程序時啟動Java的虛擬機,然后再虛擬機上實現(xiàn)Java程序的運行,這種無平臺無關(guān)的方式使Java具有較高的可移植性。Java語言還主要應(yīng)用于web網(wǎng)站開發(fā),由于Java具有安全性高、可移植性強和編程便捷等特點,因此大部分web網(wǎng)站開發(fā)采用Java開發(fā)語言。Java的缺點是圖形接口和客戶端仍然不完善,因此Java在客戶端的開發(fā)中仍然很少。
C#語言是一種面向?qū)ο箝_發(fā)的代表,C#以Microsoft .NET平臺為基礎(chǔ),是程序員能夠快速的編寫和操作Windows組件,以實現(xiàn)軟件的開發(fā)。C#主要應(yīng)用于客戶端程序的開發(fā),與Windows系統(tǒng)的界面樣式一致,解決了Java圖像化接口的問題,因此C#占領(lǐng)了大部分客戶端開發(fā)市場。ASP.NET以C#為基礎(chǔ)的開發(fā),由于采用.NET平臺進(jìn)行網(wǎng)站開發(fā),因此ASP.NET開發(fā)簡單和高效,所以ASP.NET的網(wǎng)站開發(fā)在web開發(fā)中也占領(lǐng)了一席之地。ASP.NET的網(wǎng)站主要依賴于IIS發(fā)布,因此ASP.NET跨平臺性不佳。綜上所述,C#是一種高效的開發(fā)語言,并且依托于Windows系統(tǒng)組件,能夠快速開發(fā)出適應(yīng)Windows系統(tǒng)的軟件,也能夠快速完成ASP.NET網(wǎng)站的建設(shè),但是由于ISS發(fā)布平臺的限制,因此C#更傾向于客戶端軟件開發(fā)。
2.3腳本語言
PHP語言是一種用于與瀏覽器進(jìn)行交互的腳本語言,也是現(xiàn)今網(wǎng)站開發(fā)主要選用的語言之一。Python語言是腳本語言,其設(shè)計思想結(jié)合了面向?qū)ο箝_發(fā)思想和面向模塊開發(fā)的思想,程序開發(fā)簡潔。Python還為程序員提供了大量的基礎(chǔ)代碼庫,包括網(wǎng)絡(luò)操作、文件處理、GUI圖像處理、數(shù)據(jù)庫操作和文本操作等代碼庫,避免了基礎(chǔ)功能的開發(fā)工作。此外第三方還提供了大量的代碼庫,這些代碼庫能夠?qū)崿F(xiàn)科學(xué)計算、圖像算法、爬蟲技術(shù)和深度學(xué)習(xí)等技術(shù),為程序員的軟件開發(fā)提供便利,自己的代碼也可以 進(jìn)行封裝,其他開發(fā)人員只需要調(diào)用自己的庫既能實現(xiàn)自己代碼功能,適合團隊項目的開發(fā)。因此Python也是現(xiàn)如今主要開發(fā)語言之一,包括Google和YouTube都大量采用Python進(jìn)行項目研發(fā)。
R語言是一種數(shù)據(jù)統(tǒng)計和分析的開發(fā)語言,其本身具有強大的數(shù)據(jù)統(tǒng)計、數(shù)據(jù)分析和人工智能等分析能力。R語言為了實現(xiàn)數(shù)據(jù)的統(tǒng)計與分析,提供了矩陣的概念,數(shù)學(xué)方法中很多利用到矩陣的知識,因此R語言的數(shù)據(jù)分析能力遠(yuǎn)遠(yuǎn)高于其他開發(fā)語言。為了處理大量的數(shù)據(jù)分析,R語言實現(xiàn)了與Hadoop互聯(lián)的功能,能夠直接讀取Hadoop文件系統(tǒng)的問題。因此R語言在數(shù)據(jù)統(tǒng)計和分析領(lǐng)域得到了極大地發(fā)展,并逐漸趕超應(yīng)用MATLAB。
JavaScript是一種為瀏覽器顯示和與后臺程序相交互的腳本語言,JavaScript能夠?qū)崿F(xiàn)前臺的特效展示,也能實現(xiàn)后臺數(shù)據(jù)的展示。JavaScript也提供了一些技術(shù),以此實現(xiàn)前臺頁面與后臺程序的交互,例如ajax技術(shù)和json技術(shù)。Ajax能夠?qū)⑶芭_操作返回到Java等程序進(jìn)行操作處理,也能將Java等程序操作返回到前臺進(jìn)行展示。
我們主要從軟件開發(fā)語言的發(fā)展和分類對軟件開發(fā)語言進(jìn)行了探討,軟件開發(fā)語言經(jīng)歷了低級語言和高級語言,軟件開發(fā)語言的分類包括高級開發(fā)語言、面向?qū)ο箝_發(fā)語言和腳本語言。通過對軟件開發(fā)語言市場的描述,軟件開發(fā)已經(jīng)從單一化語言發(fā)展到多元化共用。一個項目的研發(fā)需要結(jié)合多種語言,以此實現(xiàn)軟件的高效率和多樣化功能。例如開發(fā)一個web網(wǎng)站,后臺語言可以選擇C#、Java、PHP或者Python,前臺都需要HTML和JavaScript語言。開發(fā)一個項目也可能后臺語言選擇多種,例如Python進(jìn)行科學(xué)計算和統(tǒng)計將處理的結(jié)果存儲到數(shù)據(jù)庫,然后利用Java或者PHP等實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的后期操作和展示等。因此最后得出軟件開發(fā)語言的發(fā)展將以多元化的角度進(jìn)行發(fā)展,Java和C#等繼續(xù)完善,提高軟件性能,PHP等提供網(wǎng)站的便利開發(fā),Python和R語言等提供科學(xué)計算和數(shù)據(jù)統(tǒng)計等。各有其發(fā)展的方向,軟件的開發(fā)也將繼承所有開發(fā)語言的優(yōu)點,以此提高軟件開發(fā)的效率和軟件的質(zhì)量。
[1]Torgo L,李洪成,陳道輪等.數(shù)據(jù)挖掘與R語言[J].計算機教育,2013,9:027.
[2]趙宣容.計算機軟件開發(fā)語言分析[J].信息通信,2015(7):142-143.
韓震博(1997—),男,山東青島人,研究方向:計算機科學(xué)與技術(shù)。