Develop for OLPC

Posted by orospakr, Sat Jan 27 11:49:00 UTC 2007

Recently, I’ve started writing Develop activity, a simple Python IDE for the One Laptop Per Child project.

I’ve been putting particular emphasis on the idea of that development on the Laptop should not be multi-tiered. Students should have the same tools available (as much as technically possible; no C toolchain is available for capacity reasons) as the core developers do.

Right now, the editor component is provided by an embedded instance of gvim, with has some interesting pros and cons. Vim provides a powerful programmer’s editor that can be configured to be modeless (as it will be by default in Develop), but can be reconfigured to expose all of the hacker-friendly features. Many thanks to Ali of Pida, who wrote the vim embedding library.

Develop will also integrate tightly with the mesh networking system and provide a basis for students to be able to modify activities written by others (including the core developers) and collaborate together on writing new ones. As such, I’ve decided to include distributed version control functionality, which permits students to do all of those things, and can scale from tiny projects to large ones. It also fits in nicely with the journal and mesh metaphors described in the HIG.

Discussion about which version control system to use is ongoing, coming down to a deathmatch of sorts between git and bzr, which is documented in greater detail on the wiki page.

Read more about the project at the Develop OLPC wiki page.

Screenshot of Develop running on a real btest1 XO (many thanks to Flipo):

Develop running on a real XO!

Filed Under: olpc | Tags:

Comments

  1. vanjulio 02.15.07 / 12PM
    This is a shortcoming of the OLPC for why it does not capture the true philosophy of the dynabook. The system would be wholly Squeak. Then you would not be thinking at this stage of design for the Develop IDE added like a 5th wheel to the running package of Python. ;) (just kidding) The system itself should be the IDE. I am glad you make no distinction between the tools of developers and students because using such labels is not a progressive viewpoint. Each tool might have learning curves and should have a learning-centered-design, which is the same for a professional developer or a child with interest in programming. Squeak! ;P
  2. Michel Salim 02.15.07 / 14PM
    Any reason why Mercurial is not considered? I've used it and Bzr side-by-side, but not at the scale that will expose inherent speed differences, but am informed that Hg is much faster.
  3. Andrew Clunis 02.15.07 / 16PM
    vanjulio, I don't entirely disagree. But, problem is, Squeak's implementation is really not much more than a toy. Python really isn't too bad, and is production grade. Everyone, myself included, is keeping the Smalltalk/Dynabook philosophy in mind; everything in the system will be quite malleable. The View Source key will bring up Develop on virtually any activity running on the machine (which are all written in Python). Although there is a distinction between "use" and "development", "development" is only a keystroke away. I think this is a fair compromise given the technical restrictions. All of these aspects make OLPC more dynabook-like than any system yet manufactured. It might not be Alan Kay's original vision, but we've shamelessly pillaged the ideas and spirit and come away with something almost as good. ;) As for the Mercurial question, Bazaar seems to have a more active development community. Check out the Develop:http://wiki.laptop.org/go/Develop wiki page to see the breakdown between the respective version control systems.
  4. Andrew Clunis 02.15.07 / 16PM

    Ack, sorry about the formatting. Textile wasn’t switched on.

    Test. This should be a separate paragraph.

Have your say

A name is required. You may use HTML in your comments.