■余明陽 査志勇 詹 偉 梁航函
(國網(wǎng)湖北省電力有限公司信息通信公司)
計(jì)算機(jī)應(yīng)用程序與人們的生活息息相關(guān),而應(yīng)用程序的需要通過編程語言來實(shí)現(xiàn)。編程語言的復(fù)雜程度是相當(dāng)大的,它關(guān)系到應(yīng)用程序的開發(fā)難度,也影響著應(yīng)用程序往后的維護(hù)升級難度。而且,編程語言的種類也發(fā)展得越來越多樣化,每一種編程語言都有著其獨(dú)特的性質(zhì)和作用,所以,在軟件開發(fā)時(shí),選擇一種更加合適的編程語言是極其重要的。以下是有關(guān)部分主流編程語言的分析。
與當(dāng)代其他較為普遍的編程語言相比,C語言的歷史可以說是非常之久了。但是許多與C語言處于同一開發(fā)時(shí)間段的語言,卻不能得以發(fā)展至今,可以說C語言在長久以來的發(fā)展中一直都能夠跟隨時(shí)代的步伐,體現(xiàn)了它較強(qiáng)的普適性。因此,相關(guān)開發(fā)人員在進(jìn)行應(yīng)用軟件開發(fā)時(shí)是可以考慮使用C語言來進(jìn)行編程的。由于C語言應(yīng)用功能強(qiáng)大、局限性小以及具有較強(qiáng)通用性的特性,許多種類的型機(jī)一般都配備有C語言的編譯器。而且根據(jù)C語言的特點(diǎn),計(jì)算機(jī)軟件的開發(fā)人員也可以在了解C語言的基礎(chǔ)上進(jìn)而更加方便地學(xué)習(xí)其他編程語言,甚至可以增進(jìn)編程人員對于計(jì)算機(jī)運(yùn)作原理的認(rèn)識。如果計(jì)算機(jī)的編程開發(fā)人員對C語言的掌握不夠,可以說其所編寫的程序內(nèi)容是空洞的,沒有靈魂的,運(yùn)行效率也會(huì)大打折扣。C語言的應(yīng)用場景十分廣闊,在各種各樣的領(lǐng)域都有其應(yīng)用意義所在,其中控制單片機(jī)的控制原理就是依據(jù)C語言的原理得到的。
C++編程語言誕生于19世紀(jì)的貝爾實(shí)驗(yàn)室,開發(fā)這個(gè)語言的初衷是想要盡可能減少程序變量造成的不利影響和提升程序的穩(wěn)定程度。雖然它是在C語言的基礎(chǔ)上擴(kuò)展而來的,涵蓋了許多C語言的性質(zhì)和優(yōu)點(diǎn)比如移植性強(qiáng)、適用性廣,但是其最大的不同之處在于C++語言的核心是面向?qū)ο蟮木幊趟枷?。此外,C++語言的特點(diǎn)還有封裝、繼承和多態(tài)等,其中多繼承機(jī)制可以更加清晰地展現(xiàn)計(jì)算機(jī)應(yīng)用程序的運(yùn)行特性。這些特性使得C++語言更加適用于建模,在程序設(shè)計(jì)上更加方便,可以滿足當(dāng)代許多規(guī)模較為龐大的項(xiàng)目程序的實(shí)現(xiàn)要求。
Java語言的特點(diǎn)有簡單性、健壯性、可移植性、安全性等,是一門完全面向?qū)ο蟮恼Z言。在簡單性方面,Java與C++有著一定的相似程度,然而Java語言能夠避免一些C++語言的程序錯(cuò)誤現(xiàn)象,這也是由于它的健壯性,消除了某些編程錯(cuò)誤,以至于用Java來寫可靠性強(qiáng)的軟件就十分適用。Java要求顯式的方法聲明,不支持C風(fēng)格的隱式聲明,不支持指針等這些嚴(yán)格的要求,保證了程序在編譯時(shí)可以及時(shí)找到調(diào)用錯(cuò)誤,提高了程序的可靠性。在安全性上,Java語言可以很大程度上阻止手動(dòng)釋放軟件內(nèi)存,防止他人的技術(shù)破壞,提升了程序運(yùn)行的安全程度。
C#語言是.net的一種代表性語言,具有安全、精確、簡單和面向?qū)ο蟮奶攸c(diǎn)。在其完全面向?qū)ο蟮奶攸c(diǎn)基礎(chǔ)上,它對于分布式有著較為強(qiáng)大的支持,換句話說,就是這門語言的處理過程是分布在服務(wù)器和客戶機(jī)之上的,C#的研發(fā)過程可以說就是為了更高效地解決分布式問題。而且,在健壯性方面,C#語言的水平也不會(huì)在Java語言之下,因?yàn)樗褂玫耐瑯邮亲詣?dòng)管理內(nèi)存機(jī)制。此外,C#還具備一定的靈活性,比如通常情況下,C#規(guī)定不能使用指針,但在特殊情況下,使用該語言的開發(fā)人員也可以將指針打開。而在安全性上,.net平臺(tái)給予了這門語言足夠的安全性??梢浦残浴⒔忉屝?、多線程、組件模式等也是該語言的顯著特點(diǎn),可以說C#的流行緊跟著Java的潮流,不過在微軟系統(tǒng)的支持下,C#在Windows平臺(tái)上的優(yōu)勢相較于Java來說更為突出。在應(yīng)用領(lǐng)域方面,它主要適用于web應(yīng)用的開發(fā),此外,C#在編譯器的開發(fā)、硬件驅(qū)動(dòng)底層嵌入式系統(tǒng)等方面也有較好的表現(xiàn)。
Visual Basic語言的來源為basic編程語言,其在控件使用、界面設(shè)計(jì)、文字及文件處理、圖形處理、多媒體應(yīng)用等方面有著較為廣泛的應(yīng)用,此外,它還被常常用于操作系統(tǒng)和數(shù)據(jù)庫等方面。
除了以上幾種主流的編程語言,當(dāng)代較為流行的編程語言當(dāng)中還有Python、Ruby、JavaScript、MATLAB等。當(dāng)然,根據(jù)所要編寫的應(yīng)用軟件特點(diǎn)合理考慮使用這些語言也不失為一種選擇。
大多數(shù)情況下,開發(fā)人員在進(jìn)行計(jì)算機(jī)應(yīng)用軟件的編程開發(fā)時(shí),是一個(gè)應(yīng)用軟件只使用一種編程語言,然而有時(shí)候根據(jù)程序在不同的結(jié)構(gòu)、功能區(qū)域以及編譯方式的不同,就可能會(huì)采用同時(shí)選擇多種編程語言的方式。因此,在選擇編程語言時(shí),盡量要根據(jù)不同的功能選擇更加適應(yīng)該功能實(shí)現(xiàn)的語言。此外,雖然在初期開發(fā)階段,一個(gè)應(yīng)用程序使用了一門當(dāng)時(shí)最為合適的語言,但是可能也存在往后會(huì)更換一種編程語言的情況,這受到一門語言的更新?lián)Q代的時(shí)效性的限制,倘若一段時(shí)間后最初使用的編程語言不能滿足該應(yīng)用軟件今后的發(fā)展,則會(huì)選擇另一種更為合適的語言來繼續(xù)開發(fā)。因此,編程語言在應(yīng)用軟件上的使用,在不同的功能區(qū)域,不同的發(fā)展時(shí)期,需要根據(jù)實(shí)際情況來考慮。
根據(jù)程序項(xiàng)目選擇最合適的語言固然重要,然而對于商用項(xiàng)目或者其他在時(shí)間效率方面有比較大限制的項(xiàng)目來說,使用開發(fā)人員最為熟悉的語言一般才是首要的選擇,這會(huì)節(jié)省項(xiàng)目整體的開發(fā)時(shí)間和成本,避免期間需要花費(fèi)精力學(xué)習(xí)另一門不熟悉的語言再來進(jìn)行軟件開發(fā),以至于在編寫程序時(shí)可能出現(xiàn)許多的未知錯(cuò)誤或者走彎路。
一些原始的視頻整理、圖像渲染、統(tǒng)計(jì)分析功能在計(jì)算機(jī)應(yīng)用軟件的開發(fā)中有著不可忽略的作用,而且不斷地使用這些功能會(huì)直接影響到計(jì)算機(jī)的芯片效率,所以在編程時(shí)需要根據(jù)各個(gè)模塊的應(yīng)用特點(diǎn)看是否需要選擇一種靜態(tài)型的語言,及簡單性比較高的語言,而在這方面Java語言就特別的合適。
有的程序在編寫開發(fā)的過程中可能需要不斷地進(jìn)行修改和重建,往復(fù)地調(diào)整程序內(nèi)容,因此開發(fā)人員可能就需要在五花八門的編程語言之中,選擇一門具備快速還原功能的編程語言。而此時(shí)動(dòng)態(tài)型編程語言就可以被采納使用,這是因?yàn)閯?dòng)態(tài)型語言可以使用多種不同的類庫,提升語言在更多應(yīng)用方面的適用性。此外,動(dòng)態(tài)型語言較為突出的特點(diǎn)是其數(shù)據(jù)類檢查階段一般是處于應(yīng)用的運(yùn)行狀態(tài),并非是在編譯時(shí)就進(jìn)行檢查。因此,結(jié)合所編寫程序需要修改的頻率是否較高來選擇一門合適的編程語言,可以節(jié)省大量時(shí)間。
總的來說,計(jì)算機(jī)應(yīng)用軟件的編寫開發(fā)過程十分的繁復(fù),而在此之前選擇一門適合編寫以及能夠適應(yīng)該軟件長遠(yuǎn)發(fā)展的編程語言是十分重要的。因此,相關(guān)開發(fā)人員應(yīng)當(dāng)對各種類型的編程語言都有一定的了解,以便在軟件開發(fā)過程中,基于對軟件結(jié)構(gòu)、語言開銷、修改頻率是否高等因素,結(jié)合實(shí)踐,選擇一門更為適用的語言。