第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問JPython、JRuby存在的意義是什么?

請問JPython、JRuby存在的意義是什么?

哈士奇WWW 2019-03-14 18:15:50
JPython、JRuby和 python、ruby有很大區(qū)別嗎?JPython、JRuby有什么明顯的有點(diǎn)呢, 實(shí)際項目中會使用JPython、JRuby嗎?望牛人解答
查看完整描述

3 回答

?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗 獲得超4個贊

Ruby也好,Python也罷,都僅僅指的是一種語言。這就好像ISO定義好了C++語言規(guī)范,而大家都可以來實(shí)現(xiàn)這個規(guī)范(Microsoft的VC++, GNU的GCC等)

說回Ruby和Python, 當(dāng)我們一般談?wù)撍麄儌z時,默認(rèn)都指的是其默認(rèn)的實(shí)現(xiàn)(Reference Implementation)。這對于Ruby來講就是MRI Ruby, 而對于Python來說則是CPython,這兩個實(shí)現(xiàn)是這兩種語言被開發(fā)者們所熟知且應(yīng)用廣泛的。

但這并不妨礙其他實(shí)現(xiàn)的存在。這些“其他”實(shí)現(xiàn)的存在一般都是為了補(bǔ)充提供一些默認(rèn)實(shí)現(xiàn)沒有的特性,解決一些特定場景下的需求痛點(diǎn)。 比如pypy是Python另一個比較出名的實(shí)現(xiàn),他能將Python編譯成Native代碼,從而大大提升其性能。

好了,所以題主提到的JRuby和JPython無非就是這兩種語言規(guī)范下的又一種實(shí)現(xiàn)。它們提供了怎樣的特性呢?我認(rèn)為至少有這么兩點(diǎn)

  1. 他們被編譯成Byte code跑在JVM上,借由JVM提供動態(tài)的優(yōu)化和良好的性能保證

  2. 我認(rèn)為是最為有價值的一點(diǎn):加入JVM生態(tài)系統(tǒng)的最大利益便是和其他語言的互交互性(interop),這意味著你能用Ruby, Python調(diào)用Java Scala等語言,等于為這兩門語言打開了巨大的第三方庫資源,甚至為其參與企業(yè)級開發(fā)提供了可能


查看完整回答
反對 回復(fù) 2019-04-17
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗 獲得超3個贊

樓上沒有說到很重要的一點(diǎn) 并發(fā)性能!
Python Ruby的默認(rèn)實(shí)現(xiàn),由于GIL的存在,無法利用現(xiàn)代的多核CPU實(shí)現(xiàn)真正的并發(fā)。
JVM解決了這個問題,于是就有了JRuby,JPython

查看完整回答
反對 回復(fù) 2019-04-17
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗 獲得超11個贊

嚴(yán)格來說, Python 是一個語言標(biāo)準(zhǔn)/規(guī)范,而它對應(yīng)的實(shí)現(xiàn)有 CPython、Jython、IronPython 等等。而通常廣義的 Python 是指 CPython 這個實(shí)現(xiàn)。 參見 Python Implementations。至于為什么要有這么多實(shí)現(xiàn),那只能說不同實(shí)現(xiàn)有各自的優(yōu)缺點(diǎn)吧。就像同一個 C++ 標(biāo)準(zhǔn)有好幾種編譯器實(shí)現(xiàn)一樣,一份代碼拿到不同編譯器下編譯出的結(jié)果會有一定性能差別。

Ruby 不熟,不過 Ruby和 JRuby 應(yīng)該也是類似關(guān)系吧。


查看完整回答
反對 回復(fù) 2019-04-17
  • 3 回答
  • 0 關(guān)注
  • 606 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號