OLPC開發選項
回答
首先,簡單的答案:你想使用Python,和你想使你的Python程序「sugarized」。
糖不是一種編程語言或開發工具包。這是一個GUI環境和「活動」框架。孩子們在OLPC筆記本電腦上使用的應用程序稱爲「活動」,Sugar爲他們提供了一系列工具供他們使用,以便他們可以將信息存儲在版本化的對象數據庫(從用戶角度來看「日記」),可以顯示在可用的活動列表等
爲了製作糖化應用程序,你可以用python編寫它們,使用pygtk和/或pygames API進行圖形化工作,並使用其他Sugar服務的Sugar API(如存儲,訪問相機,麥克風,網絡非常酷的東西等)。您還可以使用Sugar API將該程序作爲Sugar活動提供。
您可以爲OLPC編寫C++代碼,但Python是首選語言。
對於Smalltalk,OLPC項目確實提供了一個Squeak環境,但主要是爲了孩子們使用Smalltalk編程,而不是作爲一個工具來構建旨在分發用於OLPC的活動。不是說你不能這樣使用它(我認爲Smalltalk應用程序的糖化是可能的 - 不確定),但它會成爲一個記憶豬。 Smalltalk本質上並不比Python更渴望內存,但OLPC開發者已經做了一些聰明的事情來優化Python內存的使用。基本上,Python解釋器所消耗的幾乎所有內存都是在所有基於Python的活動中共享的。將Smalltalk活動添加到混音中將意味着運行另一個解釋器。
你可以在http://activities.sugarlabs.org找到很多活動來看(源代碼)。如果您爲OLPC開發任何產品,強烈建議您獲得一個Sugarlabs帳戶並使用其git基礎架構(http://git.sugarlabs.org)。
我還強烈建議你加入Sugar開發郵件列表。它主要用於討論Sugar平臺的開發,但是那裏有非常有幫助和非常有知識的人員,他們可以回答問題並向您指出正確的資源。 http://lists.sugarlabs.org/listinfo/sugar-devel
編輯:入門另一個有用的資源是:
Swillden的帖子非常出色。我會再添加幾點:
人們已經成功創建了糖化吱吱聲活動(請參閱several games from Potsdam University以及OLE Nepal的工作)。 OLE尼泊爾認爲Squeak環境的快速原型設計能夠快速創建滿足尼泊爾教師需求的課程。不過,我相信這些活動需要更長時間才能完成。 Swillden指出,他們缺乏Python的「主場」優勢。
我推薦使用Python,除非你是明顯更適合Squeak環境。我開發Sugar活動(Implode)時使用的方法是首先在標準桌面(Windows或Ubuntu)上使用Python/pygtk作爲應用程序開發活動,然後將其移植到Sugar。代碼/調試周期在桌面上更快,因爲您不必切換到模擬器或在「日誌」活動中檢查錯誤消息。如果您正確地構建代碼,您可以將大部分桌面/ Sugar差異隔離到幾個模塊,以便您可以繼續在兩種環境中進行開發和測試。我寫了一個pygtk活動,但我希望可以用類似的方式創建一個基於pygame的活動。當然,如果您的活動依賴於訪問某些特定於Sugar的功能(如語音合成或網狀網絡),則此方法可能無法正常工作。
如果您希望以C或C++編寫代碼,無論是對於性能關鍵還是遺留代碼,我都建議將它編寫爲基於Python的活動調用的Python擴展模塊。我相信這是如何實現Write活動(包裝Abiword)和Browse活動(包裝Firefox)。如果您在C/C++中有現有的X應用程序,可以使其在Sugar下運行(請參閱SimCity,Etoys和XaoS活動),但它缺少其他Sugar活動的外觀。
最後,我發現向Sugar活動添加一些特定功能的最簡單方法是首先找到一個已經存在的活動,然後閱讀代碼以瞭解他們是如何做到的。 Sugar系統還沒有特別詳細記錄;在某些情況下,唯一的文檔就是代碼本身。正如Swillden所指出的,大多數活動的代碼以及糖本身的代碼可在SugarLabs git repository中找到。
Faisal Anwar和JediErik開發出優秀的Sugar Almanac,涵蓋了許多您需要知道的爲糖開發的知識。它有庫描述和主題,如
- 創建有效Sugar活動束
- 處理存在,線程和國際
- 與雜誌和其他糖特有的系統範圍內的功能的接口的示例代碼。
- 處理鼠標,視頻和其他輸入
- 1. ipod nano開發的選項?
- 2. 多平臺開發選項
- 3. 爲可選項移動開發
- 4. 開發人員的postgresql選項 - wal_debug
- 5. Android開發共享首選項
- 6. 選項菜單上的Android開發
- 7. 選擇模板來開發iPhone項目
- 8. Kindle Fire HD開發者選項
- 9. 開發3D Web App的選項
- 10. 選擇一個軟件開發項目
- 11. Android - Programmaticaly檢查開發人員選項?
- 12. android 4.1.1開發人員選項消失
- 13. iOS開發數據庫選項
- 14. 有限的Android開發人員選項
- 15. 本機開發選項卡不顯示
- 16. Apple/iPhone開發IDE首選項?
- 17. 開發C++禁用新類選項
- 18. IO:iOS應用開發選項變灰
- 19. SQL開發人員選項卡問題
- 20. 開發項目
- 21. 打開Galaxy S4上的開發人員選項
- 22. 發佈選項
- 23. 打開選項卡
- 24. jQuery選項卡:打開新選項卡時發佈先前選定的選項卡
- 25. iPhone 5連接到Mac,開發菜單選項說「用於開發」的設備
- 26. 如何打開新選項卡時打開新選項卡
- 27. Android中的開發人員選項中的音頻來源選項M
- 28. Firefox擴展開發:將選項卡添加到首選項窗格?
- 29. 發現:scala.concurrent.Future [選項[INT]]需要:[?]選項
- 30. 當選項選項發生變化時獲取選項的選項