OLPC Advocates Python-Based Development
As the OLPC launch approaches, I thought I'd take a look at the development environment. Somewhat to my surprise, the \<a href="http://wiki.laptop.org/go/Getting_started_programming"" target="_blank" rel="noopener noreferrer">OLPC Development Wiki says that:
- Technically any language is usable
- Python is strongly encouraged, to have a single language "under the hood" when the curious child looks inside
- C/C++ should be used where Python performance is unacceptable, but try to keep it to a minimum, preferably as standard well-encapsulated and documented components
- Smalltalk-speaking developers may wish to work within the eToys environment
I like Python fine, but have to say that I think there's a real trade-off with it in terms of the world-changing vision of the OLPC. I don't think that Python is a language that facilitates software engineering and, although it's easier to learn than a C-derived statically-typed language, as a very-first programming language, I think Smalltalk would be superior in every way.
The trade-off, I suppose, is that OLPC developers would have had to learn Smalltalk and a high-performance Smalltalk VM would have had to be implemented (perhaps -- I don't know -- eToys has such a VM). To me it hardly seems like a burden to expect developers to learn and develop in Smalltalk.
I hate to be cynical, but every time I think about the OLPC it's difficult not to wonder how \$200 laptops will possibly stay in the hands of poor children. I definitely "get" that education and technology are crucial to fighting poverty, but I just wonder what percentage of the OLPCs sent to developing nations will end up being stolen and resold. Putting on my cold economic analysis hat, that could be seen as contributing to the society, but benefiting thieves and the able-to-afford-stolen-laptops doesn't seem efficient.
Well, the thief part is inefficient. Contributing a laptop with the understanding that it is 90% likely to be instantly resold is somewhat efficient (albeit not as efficient as sticking \$200 in an envelope and sending it to a random school).
Blech. It's too early in the week to be cynical. Sign me up.