Jython 與 Python.NET

探討「內嵌」以及「腳本化」這兩個主題的技術-版主XO老師(熟悉的目前是 Tcl,討論內容也會環繞在 Tcl 四周,但是本版還是歡迎其他 Scripting 語言以及任何「內嵌」技術的討論。)

版主: b80203, ghost3401, XO, maa

分享到: Facebook

Jython 與 Python.NET

文章XO » 週一 1月 30, 2006 5:51 pm

Python 是用 C 語言建置出來的,有人有時候是這麼稱呼他: CPython.
Python for .NET 是 Python 延伸套件,用來讓 Python 腳本語言有一個 API 可以直接呼叫 .NET runtime, 或是用 .NET 任何語言寫出且編譯出來的 MSIL (MicroSoft Intermediate Language) 碼。反過來要讓.NET其他語言裡去呼叫 Python runtime,在 Python for .NET裡,是不可能的事!

有道是山不轉路轉,想要讓 Python 與 .NET 語言雙向溝通的話,至少還有兩個方案:

Jython -- 原來稱作 JPython (Java Python 的簡稱,相對於 CPython),三音節且挺拗口的,後來改名Jython。他是改用 Java 重新 Implement 出來的 Python,在 Jython 裡,Python 與 .NET 就可以雙向溝通了,Jython 的首頁在這裡:http://www.jython.org/

ActiveState's Python.NET -- 顧名思義他就像 VB.NET, C#.NET, ASP.NET,... 一樣,ActiveState這家公司企圖把 Python 語言實作成可以直接編譯成 MSIL 的一個 .NET 語言Python.NET。(不過這主題從該公司網站討論情形看來,似乎已經沒下文啦!)
最後由 XO 於 週日 2月 05, 2006 9:36 am 編輯,總共編輯了 3 次。
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5388
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:Jython 與 Python.NET

文章XO » 週三 2月 01, 2006 10:34 pm

這個 IronPython (http://www.ironpython.com/) 似乎更厲害!
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5388
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.

Re:Jython 與 Python.NET

文章XO » 週四 2月 02, 2006 2:40 pm

XO 寫:這個 IronPython (http://www.ironpython.com/) 似乎更厲害!


原作者從研究 .NET CLR 過程當中,用 C#, 騎在 .NET CLR Framework 上,製作出這個 IronPython,同時也把 Python 的 Modules 一一變成 .NET 的 Managed code, 所以囉... IronPython 是以 CLR Bytecode 方式去使用原先所有的 Python modules,粉自然地,IronPython 就可以享用所有的 .NET CLR 碼囉!

有一點兒諷刺的是:作者原先是想寫一篇關於 .NET CLR 是如何不適用於動態語言("Why .NET is a terrible platform for dynamic languages"),結果研究了半天,中途變節,喔!不是啦!是後來發現正好相反:"My plans changed when I found the CLR to be an excellent target for the highly dynamic Python language." 這是作者自己說的! 這也大概是後來作者加入微軟的 .NET CLR 小組的原因吧!? 呵呵!

IronPython 的架構是這個樣子的:
圖檔
eXtra Old 的是我「不是酒」哦!
제 이름은 오조휘 입니다

臉書裡依舊是 Extra.Old: http://www.facebook.com/extra.old
頭像
XO
資管系教師
 
文章: 5388
註冊時間: 週二 4月 27, 2004 12:20 pm
來自: CQ Inc.


回到 內嵌與腳本化(Embedding & Scripting)

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客