以文本方式查看主題 - 曙海教育集團(tuán)論壇 (http://www.xinguifushi.cn/bbs/index.asp) -- JAVA語言開發(fā) (http://www.xinguifushi.cn/bbs/list.asp?boardid=64) ---- 討論有可能挑戰(zhàn)Java開發(fā)優(yōu)勢的四種技術(shù) (http://www.xinguifushi.cn/bbs/dispbbs.asp?boardid=64&id=2457) |
-- 作者:wangxinxin -- 發(fā)布時間:2010-12-11 9:33:09 -- 討論有可能挑戰(zhàn)Java開發(fā)優(yōu)勢的四種技術(shù) Java是一種杰出的產(chǎn)業(yè)開發(fā)語言,這是因為它帶來了偉大的統(tǒng)一和對事實上以前并不存在的重要標(biāo)準(zhǔn)的關(guān)注。但是和所有語言一樣,Java將來也會褪色。依據(jù)我做的超越Java的研究,一個重復(fù)出現(xiàn)的主題是有越來越多的人相信Java已不再足夠的有效率。以下一組技術(shù)可以使你更有效率。他們不是對所有的工程都適合,但當(dāng)被應(yīng)用于適合的工程時,他們是優(yōu)秀的工具。 1.動態(tài)語言 動態(tài)語言可以比像C++或Java這樣的靜態(tài)語言更加有效率。他們可以讓你用更少的語言表達(dá)更多的意思。這里,我會關(guān)注現(xiàn)在新出現(xiàn)最流行的動態(tài)語言Ruby。用Ruby的"Hello, World"和Java的作一個比較: puts "Hello, world." 這顯然既簡單又明了。你不需要寫一些其他的代碼去做這件事。下面是用Java語言的描述: class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!") }} 在Java中,類型是靜態(tài)的。這就代表了編譯器要檢查所有的類型;你必須建立和編譯一個完整的程序。在Ruby中,類型是動態(tài)的,所以你不需要去聲明他們,你可以馬上編寫和運行他們。下面是用兩種語言描述的Fibonacci 序列: First, Ruby:x1, x2 = 0, 1 //110.times do puts x2 x1, x2 = x2, x1+x2 //4end 注意到在第一、四行同時聲明兩個變量,讓你可以簡潔地表達(dá)兩種不同的聲明形式。 另外,注意到10是一個對象,它支持方法,如:times。再另外,在do和end之間是一個代碼塊。 Ruby代碼塊可以讓你把代碼塊傳入方法。。這種技術(shù)導(dǎo)致了難以置信的效率和簡潔的代碼。 接下來,看一看用Java實現(xiàn)的代碼: class Fib { public static void main (String args[]) { int x1 = 0; int x2 = 1; int total = 1; for (int i=0; i<10; i++) { System.out.println(total); total = x1+x2; x1 = x2; x2 = total; } }} 你需要去聲明所有的變量,以及詳細(xì)地寫出來你用for循環(huán)實現(xiàn)的迭代。每個變量都是獨立的,所以你必須有一個臨時變量用于存放total。 相比,動態(tài)語言更為簡潔。按照一個普通的規(guī)則,如果你可以寫更少的代碼而不犧牲可讀性,這些代碼將導(dǎo)致更高的效率。 (但是你不可以犧牲可讀性來達(dá)到這一步,我們可以以Perl舉例作為結(jié)尾。) 更為重要的是,動態(tài)語言在Java開發(fā)者想要去解決的重要問題上表現(xiàn)得更好,如: 元編程。 Hibernate 使用元編程技術(shù)使對象持久化。 Spring使用元編程來為Java對象增加服務(wù),而免除你為他們構(gòu)建額外支持的煩惱。在Rails框架上,當(dāng)紅的Ruby利用了自己能力來構(gòu)建某種已存的 最有效率的應(yīng)用開發(fā)框架。 令人驚訝的是,許多Java開發(fā)者采用了Ruby。Ant和Tomcat的發(fā)明者James Duncan Davidson正在Rails上使用Ruby,以及Java的暢銷書作者之一,JSP專家組的 成員David Geary正在寫一本關(guān)于Rails上的Rub的書y。許多在Java社區(qū)里有著聰明思想的人都轉(zhuǎn)向使用像Ruby一樣的動態(tài)語言。這是因為這種新出現(xiàn)的語言能更好的解決最有興趣的問題。動態(tài)語言將不會完全取代Java,但是他們會適合于解決小的,輕量級的問題。 |