OLPC开发选择

时间:2009-10-18 14:07:21

标签: olpc

我为OLPC项目开发一个软件有哪些选择。通过查看各种网站和维基,我可以诚实地说,我仍然完全困惑。它是糖,c ++,smalltalk还是python?帮助!

谢谢,

3 个答案:

答案 0 :(得分:5)

首先,简短的回答:你想使用Python,并且你想让你的python程序“糖化”。

Sugar不是编程语言或开发工具包。这是一个GUI环境和“活动”框架。孩子们在OLPC笔记本电脑上使用的应用程序称为“活动”,Sugar提供了一系列工具供他们使用,以便他们可以将信息存储在版本化对象数据库中(从用户角度看“日志”),可以显示在可用活动列表中等等。

要制作糖化应用程序,可以在python中编写它们,使用pygtk和/或pygames API进行图形化工作,使用Sugar API进行其他Sugar服务(如存储,访问摄像头,麦克风,非常酷的网络资源,等等。)。您还可以使用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

编辑:入门的另一个有用资源是:

http://wiki.sugarlabs.org/go/Development_Team/Quickstart

答案 1 :(得分:5)

Faisal Anwar和JediErik开发了优秀的Sugar Almanac,其中包含了许多为Sugar开发所需要知道的内容。它有图书馆描述和主题的示例代码,如

  • 创建有效的Sugar活动包
  • 处理存在,线程化和国际化
  • 与Journal和其他Sugar特定系统范围的功能接口。
  • 处理鼠标,视频和其他输入

答案 2 :(得分:1)

Swillden的帖子很棒。我还要补充几点:

人们已经成功创建了Sugarized Squeak活动(参见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下运行它(参见SimCityEtoysXaoS活动),但它将缺少其他Sugar活动的外观和感觉。

最后,我发现向Sugar活动添加一些特定功能的最简单方法是首先找到已经执行过的现有活动,然后阅读代码以了解他们是如何做到的。 Sugar系统尚未特别详细记录;在某些情况下,唯一的文档是代码本身。正如Swillden指出的那样,大多数活动的代码 - 以及Sugar本身 - 都可以在SugarLabs git repository中找到。