摘 要:隨著信息化時代的到來,計(jì)算機(jī)已經(jīng)成為人們正常生活中不可或缺的一部分,同時這也帶動了軟件開發(fā)行業(yè)的興起。而隨著使用者對軟件的智能化人性化的要求越來越高,擁有高級計(jì)算機(jī)軟件開發(fā)技術(shù)的專業(yè)人員必將成為各大公司爭搶的對象。目前常見的軟件開發(fā)語言主要有:Java、.Net、C/C++/C++、JSP、ASP、PHP等等多種語言。其中PHP、Java和C++已經(jīng)成為了程序員必須具備的技能,這三種語言都在Web開發(fā)領(lǐng)域占有一席之地。PHP是Web的腳本語言;Java功能強(qiáng)大,適合企業(yè)級編程語言;C++融合了幾種語言的優(yōu)點(diǎn)。本文就針對這三種軟件開發(fā)語言進(jìn)行研究,比較相互之間孰優(yōu)孰劣。
關(guān)鍵詞:計(jì)算機(jī)軟件;開發(fā)語言;研究
中圖分類號:TP311.52
除非軟件開發(fā)領(lǐng)域發(fā)生巨大的變革,不然程序員至少需要知道三大開發(fā)系統(tǒng)中Java,C++,PHP的一種。而且僅僅了解核心語言是不夠的,因?yàn)楝F(xiàn)在的項(xiàng)目擁有越來越多的不同功能,這也迫使程序員對相關(guān)的框架和庫了解得更深。
1 Java
Java是所有編程語言中運(yùn)用最為廣泛的,也是所有程序員最早接觸的編程語言。學(xué)好Java不光只是學(xué)會一種編程語言而已,而是要學(xué)會如何把Managed OO發(fā)揮到極致。沒有深入研究過J2EE(包括最富爭議的EJB)、.NET Framework、Design Patterns、Executable UML/MDA的程序員,其實(shí)也很難理解Java。相較于其他兩種編程語言,Java具有以下優(yōu)勢:
1.1 迄今為止,Java是大量實(shí)際得到應(yīng)用的語言中,可讀性最強(qiáng),最利于閱讀和理解,語法最嚴(yán)謹(jǐn)和規(guī)范的語言之一,在這一點(diǎn)上,只有已經(jīng)基本退出歷史舞臺的pascal可與之相提并論。而pascal并不是面對對象的,基于這一點(diǎn),產(chǎn)生了很多其獨(dú)特的優(yōu)勢,例如:
(1)Java是目前最佳的算法及數(shù)據(jù)結(jié)構(gòu)教學(xué)語言。
(2)Java是傳統(tǒng)的軟件開發(fā)過程(生命周期管理)的最佳實(shí)踐語言,即在傳統(tǒng)的“需求-設(shè)計(jì)-代碼-測試”這樣的一個過程中,Java是能夠最大程度貫徹和實(shí)踐軟件工程學(xué)的理論的。從建模設(shè)計(jì)工具直接生成代碼,沒有比Java更出色的了,只有Java能夠在執(zhí)行和操作層面,將“設(shè)計(jì)-代碼”這個過程如此出色的無縫集成起來。
(3)Java的白盒測試方面的表現(xiàn)非常出色和易行。
(4)Java在代碼評審,缺陷管理,開發(fā)規(guī)范約束,大團(tuán)隊(duì)的協(xié)同開發(fā)方面,有著無可爭辯的突出優(yōu)勢。
1.2 Java有著目前為止,最豐富,最強(qiáng)大的IDE開發(fā)環(huán)境,這是歷史原因形成的,包括商業(yè)因素在內(nèi)。
1.3 Java有著現(xiàn)有所有語言中,擁有最長的產(chǎn)品線,適用性是最廣的語言之一。從前端的App應(yīng)用,到嵌入式,到Web,到服務(wù)器應(yīng)用。
1.4 Java擁有所有語言中最豐富的類庫和代碼資源。
1.5 至今為止,在被廣泛應(yīng)用的編程語言中,Java依然是開發(fā)效率最高的語言。
同時,Java語言被人詬病的原因也很多:如語法繁瑣、開發(fā)效率低、體系繁雜而笨重;吸收其他編程范型的速度非常緩慢,用Java做函數(shù)式編程好像用Static頭文件模仿Private一樣笨拙;其他現(xiàn)代性語言的崛起;當(dāng)初的跨平臺愿景實(shí)現(xiàn)得很不好。
2 C++
C++幾乎無所不能,但是難掌握,更不要說精通了,C++理論上是可以做任何開發(fā)的,只要有合適的硬件驅(qū)動和API,特點(diǎn)是效率高,基本上是編譯語言里面效率最高的。
C++的優(yōu)勢就在于其他語言都難兼顧抽象與性能,惟有C++兩者兼得;并且支持各種編程范式包羅萬象,語法上又渾然天成,幾無生硬造作之感;世界上那么多工程都用C++來做,所以其可用資源多;對于每一個突出的特性,基本上做到了不用就不造成性能負(fù)擔(dān)強(qiáng)大在應(yīng)付不同類型軟件的需求;適用性廣,編譯器和基礎(chǔ)設(shè)施、庫比較完善,可以較好的兼容遺留代碼,語言本身可以支持各種風(fēng)格;另外C++還擁有標(biāo)準(zhǔn)委員會,會對C++語言進(jìn)行維護(hù)升級。在圖形圖像、3D、網(wǎng)絡(luò)通信、安全、服務(wù)端處理等領(lǐng)域,C++相比其他編程語言都具有明顯優(yōu)勢。
C++常被拿來跟Java放在一起比較,因?yàn)檫@兩個語言是最流行的兩個面向?qū)ο蟮恼Z言。Java設(shè)計(jì)的目標(biāo)之一,就是有一套和C++相近的語法特點(diǎn),并且Java對C++做了許多的改進(jìn)。而事實(shí)上,這兩種編程語言各有優(yōu)缺點(diǎn),并不能相互替代,只是在什么項(xiàng)目上什么比較合適,如果是需要安全性系統(tǒng)穩(wěn)定的話肯定是Java,如果是追求速度,一般的安全性和穩(wěn)定性沒有那么高的要求話就是C++。一般的大型數(shù)據(jù)機(jī)器是能接受慢的,但是不能接受系統(tǒng)不穩(wěn)定,且C++容易崩潰死機(jī),這是很多大型機(jī)器所不能容許的。隨著硬件的發(fā)展,Java的運(yùn)行速度也不是那么慢,Java的慢只是理論上的慢,沒有C++那么靈活。Java和C++在實(shí)際應(yīng)用中要注意合適的選擇最重要,并不能誰優(yōu)于誰誰代替誰。而C++最大的問題是它只能在windows平臺運(yùn)行,這既是優(yōu)點(diǎn),也是局限。
3 PHP
PHP具有簡單、易上手,學(xué)習(xí)成本低,語法簡單,部署便捷等特點(diǎn),又有許多很好的開源程序。而且用PHP的人多,很多問題在網(wǎng)上都可以找到很好的解決方案。同時,PHP內(nèi)置了許多函數(shù),別的語言還要找類庫或函數(shù),PHP很簡單,操作文件等僅需一句代碼,其他語言要寫許多。PHP主要用來開發(fā)Web服務(wù)器端用于生成網(wǎng)頁的程序。
PHP與Java的區(qū)別主要有以下幾點(diǎn):
(1)Java是半編譯語言,PHP是腳本語言。
(2)Java使用封裝繼承,最小的單位是類,PHP作為腳本,最小單位就是語句,用兩者輸出hello world就知道了,所以Java語法比較嚴(yán)格,而PHP很靈活。
(3)Java是自動內(nèi)存分配回收,PHP是一次創(chuàng)建一次銷毀,相同點(diǎn):兩者都不用考慮內(nèi)存泄漏問題;不同點(diǎn):Java可以常駐內(nèi)存,多線程;PHP無法常駐內(nèi)存,也沒有線程的概念。
(4)Java分三個方向:J2ME,嵌入式設(shè)備,安卓就是目前最大的J2ME平臺,不過其使用的不是JVM,而是谷歌自己開發(fā)的虛擬機(jī);J2SE,桌面編程,基本沒落,需要JVM支持;J2EE,Web方向的編程,近些年大規(guī)模的衰減;PHP通俗來說就是為Web而生的語言,出了Web什么都做不了,這既是它的缺點(diǎn),也是它的優(yōu)點(diǎn),語法簡潔靈活,和Java冗長的語法正好形成對比。
(5)Java是一門已經(jīng)很成熟的語言,這主要是因?yàn)镴ava語言的進(jìn)化樹太全,使得其沒有發(fā)展的空間,其語言的進(jìn)一步提升可能性不大;而PHP是在Web繁榮之后興起的語言,所以語言成熟度上沒有Java高,直到2006年推出的PHP5.0才略微完善了面向?qū)ο蟮臋C(jī)制。
4 結(jié)束語
從對這三種最常用計(jì)算機(jī)軟件開發(fā)語言的相互比較可以看出,任何語言都或多或少,被人抱怨語法繁瑣、開發(fā)效率低、體系繁雜而笨重,但是總有一個生命力最強(qiáng)的存在。每個語言都有自己所適應(yīng)的一個領(lǐng)域,這不一定是由語言的特性,而是由使用這個語言的人群更喜歡干的事情所決定。在日常學(xué)習(xí)練習(xí)中要多做項(xiàng)目,多寫代碼,只有在項(xiàng)目開發(fā)當(dāng)中遇到問題再去透徹的學(xué)習(xí)才能提升,沒有目標(biāo)的學(xué)習(xí)只會浪費(fèi)時間和透支精力,熟能生巧,代碼寫的多了,技術(shù)自然也就提升了。
參考文獻(xiàn):
[1]邵斌,周陽.計(jì)算機(jī)軟件開發(fā)語言的研究探討[J].信息通信,2013(03).
[2]盛振宇.試論計(jì)算機(jī)軟件開發(fā)語言問題研究[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013(20).
[3]李健周.關(guān)于計(jì)算機(jī)軟件開發(fā)的Java編程語言研究[J].信息通信,2013(10).
作者單位:哈爾濱廣廈學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,哈爾濱 150025