讓我們一起來開發FantasyPython吧

2021-08-22 01:39:38 字數 2392 閱讀 6706

自從我把fantasypython雛形的雛形擺上之後,我一直都在努力學習著多執行緒開發,爭取早日發布fantasypython0.0.1。但是由於自己天資愚鈍,再加上工作比較繁忙,精力有限,研究多日仍然未有進展。sigh,書到用時方恨少啊!看著時間在我的碌碌無為中一天一天過去,我真的很著急,希望能夠找到乙個更好的開發策略,讓fantasypython能夠順利發布並茁壯成長,而不會夭折。因此,我希望在多執行緒

以及ui開發方面有經驗的朋友能夠與我聯絡,共同開發這個產品。目的說完了,接著我把一些具體情況與各位有興趣的朋友分享一下。

1、fantasypython的概述:fantasypython是乙個基於ironpython的ide,使用者可以利用它來進行ironpython的開發以及除錯。ironpython是.net平台下的python實現,是將python作為.net下first class language的實現。對於ironpython更多的介紹,可以參考ironpython的workspace以及本blog中有關ironpython的專題。由於ironpython是開源的,我們可以通過閱讀**了解其實現,降低了開發難度,也讓開發該ide成為可能。同時,我還沒有發現基於ironpython的ide發布,因此,暫且不論開發該產品有多大的意義,但是至少很有挑戰性及趣味性,而且說不准還能做個no.1什麼的。just a joke,it's all for fun;

2、fantasypython的功能:編輯、編譯、執行和除錯這些功能自然是必須的,這是我們需要做到的第一步,其他的功能可以在第一步實現的基礎上進一步完善。同時,fantasypython將會以activestate的activepython為參考進行開發,模仿是我們很重要的一步。功能繼續細化,有以下三個方面:

2.1、interactive mode window:用過python的朋友都會知道interactive mode,但是python的標準實現是基於console的,而activepython則是將interactive mode整合到了ide中,十分方便。而這也正是開發fantasypython的第一步,由於ironpython的設計非常flexiable,實現這一步並不難,我們需要做的是讓某一ui control實現iconsole介面,並將pythonengine的myconsole屬性設為該

ui control即可。但是,在這裡面會涉及到多執行緒開發,只要執行緒同步的問題解決了,這個功能的實現也就不在話下了。雖然成功近在咫尺,我卻無法達成,實在慚愧,懇請多執行緒開發高手拔刀相助了;

2.2、ironpython editor:這個功能說簡單也簡單,說複雜也複雜,全在於是否對user experience有盡善盡美的追求。以下這幾個方面是第一步需要做的:auto indent、key words著色,syntax分析。在這個方面,鷹翔兄已經邁出了第一步,期待鷹翔兄能夠多多指教。具體到實現方面,我們會使用現成而且易於擴充套件的控制項來完成這個editor,可選擇的控制項有鷹翔兄使用的icsharpcode.texteditor以及xiaohui提供的xacc。具體選用哪乙個,煩請有經驗的朋友多提建議,如果用更好的控制項也不妨推薦一下;

2.3、ironpython compiler:這是activepython沒有提供也不可能提供的乙個功能。由於ironpython的特殊性,為python提供了乙個static compile的方式,使用ironpython寫的**都可以compile成可執行檔案,脫離ironpython而存在。在這個功能的實現上,我們可能沒有太多的文章可以做,我們不會自己去實現編譯器,實際上也不可能。我們只是基於ironpython本身的編譯功能提供乙個shell,便於使用者完成編譯工作,在這點上類似sharpdevelop以及eclipse。此外,我們會選擇將nant整合到ide中去,希望能夠增強構建的功能,但這需要花大力氣去研究nant對於ironpython專案的構建是否有幫助;

2.4、ironpython debugger:這是整個ide開發中最困難的一部分了。我們會使用mgdb作為fantasypython的debugger,至於如何去做,就一點想法都沒有了,但是我們可以從這個blog中找到非常充分翔實的參考:mike stall's .net debugging blog ;   

3、fantasypython的合作方式:有興趣的園丁們將組成乙個小團隊,共同開發該產品。核心開發人員將成為該軟體的author,而提供了有價值的資訊的朋友將會成為該軟體的contributor。而我暫時承擔起乙個統籌以及計畫制訂的責任,我非常希望有能力的朋友能夠take responsibility,充當乙個領導者的角色,我真的有點心有餘而力不足了。而我作為fantasypython的發起者,只有兩個個小小的要求:該軟體一直保持open source,但未經我們團隊許可不能用於商業用途;保留fantasypython這個產品名稱;

4、fantasypython的開發計畫:待有一定的人員加入之後,由團隊共同討論制定。在軟體初具雛形之後,將在sourceforge或者其他開源軟體開發**上申請開闢cvs空間,便於協作開發。

好了,暫且說這麼多了,熱切期待各位參與。

抽點時間讓我們一起來學linux系統

抽點時間讓我們一起來學linux系統 相對於windows,linux有太多的優點,一般大家都知道,比如說開源,穩定等,其實最重要的是,當你真正用起來的時候發現,效率非常高,他是程式設計師的福音,linux版本眾多,各有各的優缺點,這正說明了起開放性,各大公司都在不停地更新自己的產品,使linux發...

摩卡,讓我們一起成長

本人加入摩卡倒頗有些緣分 在剛籌畫成立天津研發中心時,就差點成為研發中心的一員,但由於種種原因未能成行 經過一年多的等待,最終還是走進了摩卡,成為一名上海本土員工。時間如梭,加入摩卡轉眼三年了,我能很清楚地感覺到自己的成長與進步,同時也目睹了公司快速健康發展與壯大的過程,能成為摩卡人的一分子感到榮幸...

摩卡,讓我們一起成長

本人加入摩卡倒頗有些緣分 在剛籌畫成立天津研發中心時,就差點成為研發中心的一員,但由於種種原因未能成行 經過一年多的等待,最終還是走進了摩卡,成為一名上海本土員工。時間如梭,加入摩卡轉眼三年了,我能很清楚地感覺到自己的成長與進步,同時也目睹了公司快速健康發展與壯大的過程,能成為摩卡人的一分子感到榮幸...