什么才是動(dòng)態(tài)語(yǔ)言呢?,這個(gè)還許多人都不知道的東西,他到底會(huì)有什么樣的變化呢?其實(shí)動(dòng)態(tài)語(yǔ)言可以簡(jiǎn)單的理解為直接被解釋執(zhí)行的語(yǔ)言稱為動(dòng)態(tài)語(yǔ)言。而需要編譯環(huán)境將程序轉(zhuǎn)換為其它的編碼再執(zhí)行的語(yǔ)言稱為靜態(tài)語(yǔ)言。
當(dāng)前靜態(tài)語(yǔ)言有:java、C/C++、C#、DELPHI、VB等。
動(dòng)態(tài)語(yǔ)言有:asp、php、cgi、lisp、Perl、python,Smalltalk、Ruby等。
對(duì)于動(dòng)態(tài)語(yǔ)言,每個(gè)人心中都有自己的排序,各自喜好不同。但是對(duì)于動(dòng)態(tài)語(yǔ)言越來(lái)越受重視是很多人的共識(shí)。眾多的動(dòng)態(tài)語(yǔ)言當(dāng)中,誰(shuí)將成為主流語(yǔ)言,眾說(shuō)紛蕓,各持已見(jiàn)。而我最看好的動(dòng)態(tài)語(yǔ)言將從下面三種語(yǔ)言中產(chǎn)生。為什么我會(huì)鎖定在三種語(yǔ)言上呢?除了語(yǔ)言自身的優(yōu)勢(shì)外,另外一點(diǎn)最主要的原因就是其被后的力量。任何一種產(chǎn)品想成為主流都離不開(kāi)強(qiáng)大的財(cái)團(tuán)支持,開(kāi)發(fā)語(yǔ)言也不例外。
1、在java的基礎(chǔ)上產(chǎn)生新的語(yǔ)言
java語(yǔ)言的發(fā)展是有目共睹的,早已成為時(shí)下最為主流的開(kāi)發(fā)語(yǔ)言。在java環(huán)境下的應(yīng)用層出不窮,特別是jdk1.5發(fā)布之后,java在性能上的提升已今非惜比。對(duì)于動(dòng)態(tài)語(yǔ)言的支持早就在日程當(dāng)中。
在Lang.NET 2006 會(huì)議上, Sun公司宣布將積極參與讓JVM支持動(dòng)態(tài)語(yǔ)言的開(kāi)發(fā)項(xiàng)目.將會(huì)增加一個(gè)新的JVM 指令——invokedynamic,用來(lái)設(shè)計(jì)對(duì)動(dòng)態(tài)語(yǔ)言對(duì)象的支持。然而主僅僅是一個(gè)開(kāi)始。我想java平臺(tái)將會(huì)全面支持動(dòng)態(tài)語(yǔ)言,俱備運(yùn)行時(shí)更改類結(jié)構(gòu)或相關(guān)配置。另外很類技術(shù)人員都知道Sun已經(jīng)整體收購(gòu)了JRuby項(xiàng)目,sun公司對(duì)于動(dòng)態(tài)語(yǔ)言的發(fā)展是有備而戰(zhàn)的。目前java平臺(tái)下的動(dòng)態(tài)語(yǔ)言有 Groovy、nice、BeanShell、Jython、JRuby、Rhino(Javascript)、Jacl(TCL)、Bistro (SmallTalk)、Kawa(Lisp/Schema),真是越來(lái)越多了。java下這么多的動(dòng)態(tài)語(yǔ)言建議選擇Groovy,感覺(jué)血統(tǒng)較為正宗,兼容Java的語(yǔ)法,java程序員學(xué)習(xí)起來(lái)較為容易,上手較快。
由于2EE太過(guò)于復(fù)雜,面對(duì)當(dāng)前的行業(yè)需要,必將會(huì)在java語(yǔ)言的基礎(chǔ)上發(fā)展出一種新的基于java的動(dòng)態(tài)語(yǔ)言,使WEB開(kāi)發(fā)過(guò)程變得更快,更簡(jiǎn)潔,但又不失java自身的特點(diǎn)。使Java在WEB開(kāi)發(fā)能力上達(dá)到前所未有的提升。由于sun及IBM公司的推動(dòng),反微軟企業(yè)的支持,還有企業(yè)的認(rèn)可,基于java語(yǔ)言所產(chǎn)生的動(dòng)態(tài)語(yǔ)言也必將會(huì)成為動(dòng)態(tài)語(yǔ)言家族中有力的競(jìng)爭(zhēng)對(duì)手。
2、php 動(dòng)態(tài)語(yǔ)言之精典
對(duì)于php語(yǔ)言,筆者的個(gè)人感情較濃,從第一次接觸它就被其簡(jiǎn)單、靈活、功能之強(qiáng)大所征服。更快的處理效率,迅速的部署及PHP的跨平臺(tái)的特性讓其應(yīng)用更為廣泛,相信俱有跨平臺(tái)特性的動(dòng)態(tài)語(yǔ)言中沒(méi)有任何一個(gè)語(yǔ)言能及php語(yǔ)言的普及率高。很多大的網(wǎng)站使用著PHP,歷史證明,它是一個(gè)經(jīng)得起考驗(yàn)的動(dòng)態(tài)語(yǔ)言。另外,php的開(kāi)源環(huán)境也相當(dāng)出色。世界各地?cái)?shù)以萬(wàn)計(jì)的程序員,采用PHP編寫程序。你可以從PHP相關(guān)的網(wǎng)站、社區(qū)等找到各類優(yōu)秀的開(kāi)源程序代碼。
最近IBM、Oracle 正嘗試把PHP 應(yīng)用到SOA 之中,再一次證明了PHP的優(yōu)秀。雖然PHP存在著維護(hù)困難,復(fù)用性低等問(wèn)題,但這些并不能影響其最終成為主流的動(dòng)態(tài)語(yǔ)言。不久前IBM還基于 Apache Geronimo項(xiàng)目推出了為it WebSphere Application Server Community Edition開(kāi)發(fā)的PHP集成工具集。該工具集能讓開(kāi)發(fā)人員在SOA中開(kāi)發(fā)服務(wù)時(shí)使用PHP和Java。zend也推出了php的開(kāi)發(fā)框架,這些技術(shù)將幫助軟件公司創(chuàng)建企業(yè)級(jí)PHP應(yīng)用。 PHP會(huì)變得更加廣泛,從當(dāng)前網(wǎng)站技術(shù)上的勝行,到企業(yè)級(jí)WEB應(yīng)用,php必將成為最有競(jìng)爭(zhēng)力的動(dòng)態(tài)語(yǔ)言。
3、.net的動(dòng)態(tài)語(yǔ)言
微軟的動(dòng)態(tài)語(yǔ)言用的人最多的應(yīng)該是asp,現(xiàn)在發(fā)展到asp.net。看微軟在開(kāi)發(fā)語(yǔ)言方面的發(fā)展,他們一定不會(huì)放棄這塊肥肉,并會(huì)加大投入力度,與其它的動(dòng)態(tài)語(yǔ)言提供商火拼到底。只要是有利可圖的地方,沒(méi)有微軟不想伸腳的,更何況這是一塊大肥肉呢。
前不久微軟CLR開(kāi)發(fā)組的負(fù)責(zé)人Jim Hugunin表示,微軟將加強(qiáng)對(duì)CLR中的動(dòng)態(tài)語(yǔ)言的支持。并將會(huì)發(fā)布成熟的軟件模式,細(xì)化到代碼中,放在庫(kù)中供開(kāi)發(fā)者調(diào)用,以幫助他們通過(guò).Net Framework上的動(dòng)態(tài)語(yǔ)言開(kāi)發(fā)自己的應(yīng)用程序。種種跡像表明微軟在動(dòng)態(tài)語(yǔ)言方面沒(méi)閑著,正緊鑼密鼓實(shí)施著一系例動(dòng)作。
我把微軟的動(dòng)態(tài)語(yǔ)言列為最可能成為主流動(dòng)態(tài)語(yǔ)言的原因是因?yàn)槠鋡indows的平臺(tái)無(wú)所不在。這是無(wú)法否認(rèn)的。微軟勢(shì)比處投入重手,增強(qiáng)競(jìng)爭(zhēng)能力。以微軟的人力、財(cái)力,想不分給微軟一塊蛋糕是不可能的。有錢就是好,投入大筆的資金,什么都可以做。
有人一定會(huì)反問(wèn)我,為什么把其它的動(dòng)態(tài)語(yǔ)言拋開(kāi)不談。Perl語(yǔ)言過(guò)時(shí)了,雖然還有一些公司在使用,但早已不是主流。python、Ruby最近幾年開(kāi)始火起來(lái)的動(dòng)態(tài)語(yǔ)言,我并不看好它們,雖然它們是很優(yōu)秀的語(yǔ)言,但是優(yōu)秀并不帶表會(huì)成為主流。正如操作系統(tǒng)一樣,大家都有個(gè)共識(shí)就是,unix、 linux很優(yōu)秀,但是并不是主流系統(tǒng)。當(dāng)然會(huì)有人反駁說(shuō)應(yīng)用場(chǎng)景不同,不能一概而論。那么開(kāi)發(fā)語(yǔ)言也一樣,我說(shuō)的是大眾主流,大眾主流就是指最廣泛的被采用。
有人說(shuō),未來(lái)動(dòng)態(tài)語(yǔ)言會(huì)取代靜態(tài)語(yǔ)言,將一統(tǒng)天下,我并不這樣認(rèn)為,相信應(yīng)該是動(dòng)態(tài)語(yǔ)言與靜態(tài)語(yǔ)言互相輔助,各在其擅長(zhǎng)的方面發(fā)揮作用。比如多線程,目前的動(dòng)態(tài)語(yǔ)言支持都不如靜態(tài)語(yǔ)言的好,很多還不支持。
對(duì)于語(yǔ)言的選擇,一般性的應(yīng)用,完全可以采用動(dòng)態(tài)語(yǔ)言完成,也可以采用靜態(tài)語(yǔ)言,這要看撐握語(yǔ)言的人或是需求而決定。更為靈活,更容易擴(kuò)展及復(fù)用的方式是采用動(dòng)態(tài)語(yǔ)言+靜態(tài)語(yǔ)言的方式。前臺(tái)功能采用動(dòng)態(tài)語(yǔ)言實(shí)現(xiàn),后臺(tái)服務(wù)采用靜態(tài)語(yǔ)言實(shí)現(xiàn),充分利用各自的優(yōu)勢(shì)。當(dāng)前在java的WEB應(yīng)用開(kāi)發(fā)過(guò)程中,采用模板技術(shù)就是這類應(yīng)用模式的一個(gè)雛型。java的模板技術(shù)很多都支持簡(jiǎn)單的編程,如邏輯控制等。當(dāng)然現(xiàn)在還不能稱其為一種語(yǔ)言,但是相信,這一切隨著動(dòng)態(tài)語(yǔ)言的發(fā)展并將成為一種新的語(yǔ)言。
動(dòng)態(tài)語(yǔ)言必將大行其道,但是不是獨(dú)行,而將與靜態(tài)語(yǔ)言相輔相成。
【 微信掃一掃 】