發(fā)布于:2021-02-14 00:00:12
0
78
0
Oracle的Attila Szegedi一直在忙著籌備他的新項目Dynalink,現(xiàn)在有了0.3版本和一個時髦的新網(wǎng)站。
Oracle的JVM故障診斷專家Attila Szegedi在過去的幾個月里異常忙碌,但仍然抽出時間來推動他的side項目Dynalink。
對于那些不熟悉Apache 2.0許可項目的人來說,Dynalink本質(zhì)上是一個面向JVM語言的動態(tài)鏈接框架,它使得在一個相當(dāng)復(fù)雜的過程中完成所有繁重的工作變得非常容易。通過利用JDK7的invokedynamic的神奇之處,Dynalink提供了一個高級的鏈接元對象協(xié)議庫,允許在JVM上創(chuàng)建的語言可以與pojo和彼此互操作。
因此,當(dāng)您想要將代碼動態(tài)鏈接到其他代碼或編寫運行時,可以將Dynalink添加到操作中,使其具有前瞻性。動態(tài)鏈接可以使用任何Java對象的屬性getter、setter、字段、方法、類的靜態(tài)屬性、字段、方法和構(gòu)造函數(shù)。在我們看來,這是相當(dāng)令人印象深刻的Java互操作性
但這僅僅是一個開始,框架還將接觸到其他JVM語言,并消除了跨語言互操作性所需的噩夢般的障礙。Dynalink聲稱它可以在一個JVM中“將對象從Ruby傳遞到Python,從JavaScript傳遞到Java,然后再傳遞回來”,而開發(fā)人員只需付出最小的努力。天上掉餡餅?但這個項目卻不是這樣。
隨著Szegedi跳槽到甲骨文,有些人認為這個項目不會很快有任何進展,但我們很高興看到這與事實相去甚遠。Szegedi說,他被引入Oracle是“為了讓Java平臺成為一個受歡迎的非Java語言環(huán)境”,這是一個非常鼓舞人心的消息。
更值得報道的是Dynalink被引入到Oracle項目中,并且目前仍然是Apache 2.0許可下的開源庫。
從去年7月的版本開始,Dynalink現(xiàn)在已經(jīng)是一個成熟的項目,包括一個時髦的新登錄頁面和一些新特性。這包括用于創(chuàng)建實例的“dyn:new”操作,以及添加一個新的調(diào)用站點類ChainedCallSit,該類記住已經(jīng)鏈接的方法,并在構(gòu)建鏈時應(yīng)用它們。
調(diào)用站點描述符是Dynalink的核心,更多的信息可以在令人印象深刻的用戶指南中找到。要了解更多內(nèi)容,請查看0.3中的新內(nèi)容。
Szegedi說,在過去的一年里,Dynalink的理念并沒有發(fā)生太大的變化,但是很高興看到這個項目繼續(xù)取得巨大的進步,特別是滲透到Oracle的開發(fā)環(huán)境中。Szegedi在去年的JVM語言峰會上做的一個Dynalink視頻演示很值得一看,如果你想進一步了解這個庫的話。我們認為Dynalink是爆炸性的-現(xiàn)在就使用它!