在为OLPC项目开发软件时,我有哪些选择?通过查看各种站点和维基,我可以坦率地说,我仍然完全迷惑。它是糖,c++,smalltalk还是python?帮助!
谢谢,
发布于 2009-10-18 15:16:13
首先,简短的回答是:您希望使用Python,并且希望使您的python程序“糖化”。
Sugar不是一种编程语言或开发工具包。它是一个GUI环境和“活动”框架。孩子们在OLPC笔记本电脑上使用的应用程序被称为“活动”,Sugar为他们提供了一系列工具供他们使用,以便他们可以将信息存储在版本化对象数据库中(从用户的角度来看,是“日志”),可以显示在可用活动列表中,等等。
要制作糖化的应用程序,您可以用python编写它们,使用pygtk和/或pygames进行图形化工作,使用Sugar API进行其他Sugar服务(如存储、访问相机、麦克风、非常酷的网络等)。您还可以使用Sugar API将该程序作为Sugar activity使用。
您可以为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
编辑:另一个有用的入门资源是:
http://wiki.sugarlabs.org/go/Development_Team/Quickstart
发布于 2009-12-21 14:47:57
Faisal Anwar和JediErik开发了优秀的Sugar Almanac,它涵盖了为Sugar开发所需了解的许多内容。它提供了库描述和主题示例代码,例如
使用日志和其他糖特定的系统范围features.
发布于 2009-12-15 06:09:35
Swillden的帖子非常棒。我只想补充几点:
人们已经成功地创建了糖化的Squeak活动(参见several games from Potsdam University以及OLE Nepal的工作)。奥莱尼泊尔归功于Squeak环境的快速原型方面,他们有能力快速创建满足尼泊尔教师愿望的课程。不过,我认为这些活动需要更长的加载时间;正如Swillden所指出的,它们缺乏Python的“主域”优势。
我推荐使用Python,除非您对Squeak环境非常熟悉。当我开发Sugar activity (Implode)时,我使用的方法是首先在标准桌面(Windows或Ubuntu)上使用Python/pygtk将activity开发为应用程序,然后将其移植到Sugar。在桌面上,代码/调试周期更快,因为您不必切换到仿真器或在"Log“活动中检查错误消息。如果您正确地设计了代码,您可以将大多数桌面/Sugar差异隔离到几个模块中,这样您就可以在这两个环境中继续开发和测试。我写了一个pygtk活动,但我希望可以用类似的方式创建一个基于pygame的活动。当然,如果您的活动依赖于访问特定于Sugar的功能--如语音合成或网格联网--则此方法可能不起作用。
如果您想用C或C++编写代码,无论是针对性能关键型代码还是遗留代码,我都建议将其编写为从基于Python的活动调用的Python扩展模块。我相信这就是Write活动(包装Abiword)和Browse活动(包装Firefox)的实现方式。如果您在C/C++中有一个现有的X应用程序,那么可以让它在Sugar下运行(请参阅SimCity、Etoys和XaoS活动),但它将缺少其他Sugar活动的外观。
最后,我发现向Sugar活动添加某些特定功能的最简单方法是首先找到一个已经执行此操作的现有活动,然后阅读代码以了解他们是如何做到这一点的。Sugar系统还没有得到很好的记录;在某些情况下,唯一的记录就是代码本身。正如Swillden指出的那样,大多数活动的代码--以及Sugar本身的代码--都可以在SugarLabs git repository中找到。
https://stackoverflow.com/questions/1584982
复制相似问题