日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
略談Jython語言:什么是Jython?

Jython語言結合了Python的靈活高效與Java的強大。Jython是兩種廣泛流行語言Java和Python的組合。Java已被廣泛地接受,這可從很多公司都已配置了基于Java的應用得以見證。

創(chuàng)新互聯(lián)建站一直在為企業(yè)提供服務,多年的磨煉,使我們在創(chuàng)意設計,成都全網(wǎng)營銷到技術研發(fā)擁有了開發(fā)經(jīng)驗。我們擅長傾聽企業(yè)需求,挖掘用戶對產(chǎn)品需求服務價值,為企業(yè)制作有用的創(chuàng)意設計體驗。核心團隊擁有超過10多年以上行業(yè)經(jīng)驗,涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領域,公司涉及領域有基礎互聯(lián)網(wǎng)服務四川電信機房托管、手機APP定制開發(fā)、手機移動建站、網(wǎng)頁設計、網(wǎng)絡整合營銷。

另外Java有龐大的可利用的類庫,并有很詳盡的文檔。Python則具有很好的靈活性,開發(fā)快速,容易使用。在兩種語言之間做出選擇是很難的事,但有了Jython,就不再需要做這種選擇了。Jython能夠?qū)崿F(xiàn)在Java或Python中實現(xiàn)的任何類、算法和模式而不需考慮其他語言,它能在這兩種語言之間保持幾乎無縫的操作。

擴展其他語言像Perl或Python,需要專用的API或繁冗的封裝器。如果不加改造,任何C代碼都不可能在Perl或Python中使用,而任何的Java代碼卻能在Jython中運行。由于與Java的無縫集成,你可以在Jython中引入、使用任何Java類并創(chuàng)建派生類。不僅包括那些為某個特定API而寫的類或與某個特定工具打包的類,而且包括任何Java類。另外你還能將Jython編譯成Java的字節(jié)代碼使其在Java的框架內(nèi)運行。你甚至可以在Java中引入、使用任何Python類并創(chuàng)建派生類。

在Jython和Java中也有一些小的差別,正確理解這些差別對理解Jython是很有幫助的。Java是一種類型豐富的語言,而Jython則使用動態(tài)類型而沒有明顯的類型定義。Java有一些包含類的包,而Jython有包、模塊、類和函數(shù)。Java必須編譯,而Jython能交互式地運行,解釋一個非編譯的腳本或編譯成字節(jié)碼。Java類有像private和Protected的存取符,而Jython僅有最小的存取限制而沒有明顯的像Private的修飾符。

最有趣的事情是Jython和Java的差別并不構成很大的麻煩,相反卻能互補。Jython的交互模式提供了一個測試和研究Java類的快速方法,而Java的接口和抽象類給Jython派生類提供了一個指定協(xié)議的很好的方法。Jython的動態(tài)類型對快速原型和靈活性有很大的幫助,而Java的靜態(tài)類型也增加了運行時的效率和類型的安全性。這些互補由于其無縫性而顯得很好。增加程序的花費來平衡這些特性將對程序的功能有副作用。幸運的是Jython使它們簡單、易于理解,并且不需要額外的花費。

什么是Jython?

要了解Jython,首先要了解Python。Python是用C編寫的高級的、面向?qū)ο蟮摹㈤_放源代碼的編程語言。Cuido vanRossum是Python的原創(chuàng)者,繼而在Python的快速發(fā)展中產(chǎn)生了一大群高水平的設計者和程序員。使用Python的開發(fā)人員增長迅速,并一直在持續(xù)增長。然而Sun的Java編程語言也是深人人心的。隨著用Java實現(xiàn)的項目的數(shù)量接近了用C/C++實現(xiàn)的項目,Python的Java實現(xiàn)也變得很有必要。Jython,最初叫做JPython,就是:Python語言的Java實現(xiàn)。為避免混淆,

Jython是一種完整的語言,而不是一個Java翻譯器或僅僅是一個Python編譯器,它是一個Python語言在Java中的完全實現(xiàn)。Jython也有很多從CPython中繼承的模塊庫。最有趣的事情是Jython不像CPython或其他任何高級語言,它提供了對其實現(xiàn)語言的一切存取。所以Jython不僅給你提供了Python的庫,同時也提供了所有的Java類。這使其有一個巨大的資源庫。

Jython和Python強調(diào)了代碼的簡明性、方便性和易讀性。Jython使用縮排來對代碼塊定界以避免使用在Java中的大括號。Jython用新的一行來表示一個新的語句的開始,并有幾個重要的區(qū)別,如允許在每個語句后省略分號。Jython沒有像在Java中的public、private和protected存取符,這樣就給程序員提供了快速開發(fā)所需要的靈活性,并將注意力集中在程序邏輯上。正像前面所提到的,Jython不用明顯的靜態(tài)的類型定義,故程序員不需要從程序邏輯轉(zhuǎn)移到類型定義上來。

Jython的歷史要追溯到JimHugunin,他是Guidovan Rossum在國家研究動力中心(CNRI)的同事。JimHugunin認識到Python編程語言用Java實現(xiàn)的重要性,并實現(xiàn)了最初名為JPython的語言。由于要開發(fā)aspectj(http://aspectj.org/),JimHugunin不能繼續(xù)致力于JPython了。所以當Python的開發(fā)者準備離開CNRI時,由當時也在CNRI的Barry Warsaw繼續(xù)領導開發(fā)。

Python和Jython項目組從CNRI離開后,在Sourceforge上轉(zhuǎn)變?yōu)橐环N更開放的語言模型。在此期間,一個對Jython(JPython)做了主要貢獻的人FinnBock領導了Jython項目小組。正是由于FinnBock所做的杰出貢獻使Jython現(xiàn)在成為一個如此有價值的工具。類似Jython這樣的開放源代碼項目與開發(fā)和維護它們的人一樣杰出,從這個意義上說Jython因為有FinnBack的貢獻和指導而很幸運。另外一個對Jython做了***有價值貢獻的人是SamuelePedroni。Samuele的貢獻主要在Jython的類裝載、導入機制等等。Finn和Samuele目前是Jython的兩個主要開發(fā)者。

為什么需要Jython?

Jython由于繼承了Java和Python二者的特性而顯得很獨特。本節(jié)介紹一下這些特性及其意義。

對Java類的無縫存取

在Java中實現(xiàn)Python可以看到有趣的Java反射API的作用。反射使Jython能無縫地使用任何Java類。Jython從CPython中繼承了很多優(yōu)點,但CPython不像別的專為Python所寫的一樣,在C和Python之間有一些問題限制了C庫函數(shù)的使用。在Jython中真正解決了這個問題,使其編程的效率和生產(chǎn)力得到了很大的提高。

由于與Java的無縫集成,Jython能使任何部署了Java應用和框架的公司受益而不需要額外的工作。接受任何一種部門的編程語言,對任何一個公司而言都是不容易的,需要深思熟慮,因為這牽涉到整體結構、服務器和外圍的工具。Jython作為Java的一個無縫集成的語言,可以在已存在的Java應用上無縫增加而不需要重大抉擇。很多公司都花費了很多資金來建立Java的應用,這使采用CPython、Perl、Ruby、PHP和其他不能透明地集成已有Java實現(xiàn)的高級語言的效益降低,吸引力下降。而Jython有能力對已存在的Java框架進行補充,且二者能無縫地結合。

效率

計算編程語言的效率是一個很廣泛的課題,它要考慮程序員的時間、總體復雜性、代碼的行數(shù)、可用性、可維護性和運行效率。當然很多人不同意賦予這些變量的權重,經(jīng)常是在不同的情況下偏重有所不同。Jython的運行速度是可以與其他高級語言相比的,但速度并不是高級語言的目標和特點。區(qū)別在于當加速一個需要的應用時,將Jython代碼翻譯成Java更有效,這是由于Jython與Java的無縫集成性。另外對所有有效的Jaya類的直接訪問增加了改進已存在的類的可能性。

動態(tài)類型

在Jython中你不必像在Java中那樣聲明類型,因為類型是在運行時決定的。Jython的列表和映射類型是高級的多態(tài)的Java類的實例。多態(tài)意味著對象能對不同的數(shù)據(jù)類型工作。例如Jython的list類型可以是一個數(shù)字的序列、字符串的序列、字符的序列或它們的組合。動態(tài)和多態(tài)性的列是對編程的極大的貢獻,從很多已放棄顯式的靜態(tài)類型定義的高級語言中可看出它減少了代碼的行數(shù),降低了復雜性,提高了程序的效率。

內(nèi)省和動態(tài)執(zhí)行

Jython有一些允許方便的對象內(nèi)省和代碼的動態(tài)執(zhí)行的內(nèi)部函數(shù)。內(nèi)省是發(fā)現(xiàn)一個對象信息的能力,而動態(tài)執(zhí)行是執(zhí)行在運行時產(chǎn)生的代碼的能力。該功能很大程度上減少了代碼的行數(shù)并增加了程序的可靠性,使其更加方便維護。這也能使數(shù)據(jù)和程序結構或邏輯更好的集成而不影響重用性,因為所有的東西都是在運行時決定的。

***類函數(shù)和函數(shù)編程

Jython與Python一樣有***類函數(shù)。***類函數(shù)是指能像變量一樣的可調(diào)用的對象。***類函數(shù)在對事件處理和其他情況下有意義,這導致增加了Java內(nèi)部類的功能。雖然Java的內(nèi)部類與***類函數(shù)類似,但它在方便性與靈活性方面有很大的不足,這是由于Jython中的***類函數(shù)減少了Jython中的語法開銷。

Jython也包括了所有函數(shù)編程所需要的工具。這意味著強制的面向?qū)ο蟮暮瘮?shù)編程在Jython中得到支持。這顯然在教學上很有意義,它使Jython程序員能選擇最適合于特定問題的編程語言而不是由語言強加。函數(shù)化的工具如列表包含、lambda表單、map、filter和reduce也對減少代碼的行數(shù)、降低復雜性和名字重綁定數(shù)(名字重綁定有很大副作用)起到很大的作用。

學習周期短

任何Java程序員在數(shù)日內(nèi)就能熟悉Jython。由于有很多內(nèi)容,關鍵在于細節(jié)的學習,但僅僅用幾天的時間就能擁有Jython的快速開發(fā)功能確實是很有價值的。對于那些從事測試和技術支持的小組通常并沒有很多時間去學習復雜的Java代碼,但通過對Jython的學習能在開銷很少的情況下很快提高公司的技術水平和效率。

寫一次,處處可用

由于Jython是用Java編寫的且由于其可編譯成Java字節(jié)碼,因此Jython也具有Java的“寫一次,處處可用”的特點。Jython能運行在任何可兼容的Java1.1‘或更高的Java虛擬機(JVM)版本的平臺上。另外你可將Jython應用編譯成自足的字節(jié)碼,它能運行在任何兼容的JVM上。在Linux上編譯的應用能運行在有兼容JVM的任何其他平臺上。

Java安全性

Java的安全性是特別的而且越來越重要。從沙箱到信號,Jython有能力使用Java的特別的安全框架。

代碼清晰性

代碼的清晰性是Python***的優(yōu)點,當然也是Jython***的優(yōu)點。不必要的標點和行都避免了。Jython代碼在可讀性和清晰性方面近似于自然語言。這起源于Python對代碼塊和語句的簡單描繪的承諾??s排標記代碼塊,換行符標記新的語句。


本文名稱:略談Jython語言:什么是Jython?
URL地址:http://www.dlmjj.cn/article/cdgsceg.html