自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Vala,Java的遠親還是近鄰

原創(chuàng)
開發(fā) 后端
Java的地位在動搖,Scala、Vala和Go言語都有可能成為編程語言里的新明星,尤其是Vala語言:基于C的對象語言,但又被賦予了C++的強大和Java的成功……

【51CTO經典譯文】大衛(wèi)·梅吉森(Dave Megginson)***寫了一篇文章:Java已死。(許多使用Java的XML程序員應該很熟悉,他推動了SAX API的開發(fā))。

作為一種編程語言(而不是平臺),Java與眾不同,這應歸因于Sun公司拒絕通過聲譽良好的獨立標準組織將其標準化(雖然做了很多努力,一次試圖讓Java通過ECMA,一次是ISO,但Sun公司都最終退出,并推出讓人非常不滿的JCP體系,既Java Community Process)。Sun缺少對Java作出巨大改動的能力和意愿(某些方式與其意愿不符),Java不得不面對兩個主要的對手(微軟的J++以及后來的C#,還有IBM的SWT),這兩個對于主要的組件(圖形庫)提出了異議。Java成于中間件,但卻失敗于未能利用桌面瀏覽器的崛起之勢:他們的HTML解析器在上世紀九十年代非常出色,但被有意地忽視,而至于無用之地。對此,很難不將其視為Sun公司有意為之:將瀏覽器市場留給它的對手和合作者。我的確曾非常喜歡Java,在某種意義上,甚至拿我的公司作為賭注壓在Java上:今天我絕不會再這樣做。

51CTO推薦專題:走向混合編程時代

對于桌面領域(我明白所有人都知道,在萬維網時代和即將來臨的iPad+Android時代,這一領域已是萬劫不復地死去),同類語言有什么替代者?我把時間花在什么樣的XML處理方式上?我一直留意較多的是Scala:它集成到JVM中,具有類似的基于C語言的語法,并且能夠將類Java程序升級為擁有更多函數(shù)的DSL程序。然而,我還有三點疑慮。***,存在很多種函數(shù)式編程,它們使用了XSLT,對于XML處理,XSLT比Scala具有更好的優(yōu)化性。第二,使用JVM讓Scala處于不利地位,可能引起Oracle的訴訟(或許這種情況只是杞人憂天?)。第三,許多Scala的資料都寫得比較學術化,或者是由偏門語言的擁護者編寫。(不管是誰,在討論某項技術的優(yōu)勢時,如果使用了monad這種專業(yè)術語,自我看來,其流行程度就會直線跳水。)

51CTO推薦專題:Scala編程語言

另一個競爭者是Vala,不過沒有上述三種問題。某種程度上,這是一種真正的回歸,回到上世紀八十年代:基于C的對象語言,但又被賦予了C++的強大和Java的成功。下面是Vala網站上的宣傳介紹:

Vala是一種新的編程語言,其目標是為GNOME開發(fā)者提供現(xiàn)代化的編程語言功能,同時沒有額外的運行時要求,并且相對于C語言編寫的應用程序和庫,無需使用不同的ABI。

Vala是基于GNOME的GObject系統(tǒng),提供了那種你期望的類功能。與Scala一樣,在語言級別上,它具有與Java Beans的get*()和set*()等同的屬性,但是,對于屬性更改通知和監(jiān)聽器(listener),它也能夠提供了語言級別上的支持。它不具備很強的XML處理能力,只是一個迷你型的解析器,不過看起來它的確具有很好的Unicode功能(字符串為UTF-8,string.getch()可返回16位的unichar字符。)在功能級別上,Vala與Java***的不同之處應該是對象回收(de-allocation)的引用計數(shù)系統(tǒng)(reference-counting),相對于Java的GC,這一系統(tǒng)能夠提供更多確定的實時行為,不過也為某些編程錯誤打開了一扇窗戶。在這個時代,Vala的另一個古怪之處在于,對于陣列訪問不進行邊界檢查,所以它比Java對規(guī)則的要求更為嚴格(不過可以推測,比C語言要寬松很多)。

我很期待有人對Vala產生興趣,比如有人在考慮編寫新的C或C++應用程序,或者使用C、C++、C#或者不斷抱怨不滿的Java程序員,想要拜托大企業(yè)的控制,同時在其背后有一個經過證實的(保持操作系統(tǒng)中立?)強大平臺,這樣的人能夠去使用Vala。我想,與Scala一樣,在大型項目上使用之前,你當然想要檢查一下是否具有適當?shù)腎DE支持。

在服務器端,Google公司推出的Go編程語言是很有前途的:它更少面向對象,但同時具有C語言領域內的效率。他們的宣傳介紹如下:

快速……并行……安全……有趣……開源

Go語言為功能強大的gorountines提供另一個關鍵字go,可封裝各種fibre/線程/進程/多核類型的并行計算。

我很想看到Go和Vala聯(lián)姻生子,帶來一種更可愛的語言。我認為Vala和Scala還沒有很好地發(fā)揮多核CPU的優(yōu)勢。

原文名稱:Vale Java? Scala Vala palava and Go too

原文地址:http://broadcast.oreilly.com/2010/08/vale-java-scala-vala-palava.html

[[14971]]

原文作者:Rick Jelliffe

【51CTO譯稿,非經授權謝絕轉載,合作媒體轉載請注明原文出處、作者及51CTO譯稿和譯者!】

【編輯推薦】

  1. “Scala” 一個有趣的語言
  2. 編程思想碰撞 Scala不是改良的Java
  3. 1月編程榜發(fā)布:Google Go意外奪得年度編程語言
  4. Google Go語言的快樂編程因素  
  5. 再論Java已死 基于JVM的語言已成Java***威脅
責任編輯:佚名 來源: 51CTO獨家譯稿
相關推薦

2009-01-11 09:25:00

局域網網上鄰居訪問效率

2023-11-30 09:55:27

鴻蒙鄰分類器

2024-09-27 08:27:24

JavaAOT技術

2013-01-15 10:50:42

2009-06-30 15:22:00

Java還是.NET

2022-11-22 08:00:00

開源工具數(shù)據(jù)集

2021-06-09 16:00:05

近鄰算法數(shù)據(jù)

2020-06-30 07:00:00

推薦算法推薦系統(tǒng)

2011-08-12 09:35:27

Java 7

2020-07-16 08:05:15

JavaGo

2024-06-18 08:16:49

2022-07-29 08:05:31

Java值傳遞

2016-12-20 15:35:52

Java堆本地內存

2024-10-05 00:00:15

ArrayList性能Java

2012-02-03 14:39:12

Java

2012-12-07 09:41:39

2024-11-25 15:46:01

2024-04-25 11:51:23

點云開源工具

2018-09-26 14:17:00

編程語言JavaPython

2009-05-27 13:25:56

erpIT服務
點贊
收藏

51CTO技術棧公眾號