Dynamic languages on embedded devices
A little while ago I was discussing with some friends why dynamic languages (I mean those that allow for rapid prototyping, such as Python) are not used more often on embedded devices. And one argument was that those languages need dynamic memory management, which sounds reasonable. So it would take quite something to run Python on some embedded device and build all the necessary memory management etc. around it. But hardware is getting cheaper and even faster, Flash RAM could replace a hard disk and you could be up an running in a low budget area. Just throw Damn Small Linux on it and that’s it.
Ok, there are some embedded devices that are just too small or have too time critical applications where you can’t do that. But DSL just refreshes this question in my head, since I am currently working with embedded devices again. I think the good old C will stick around, of course, but dynamic languages will more and more spread where C is still used. The prices just have to drop and the devices just need to get smaller. Or not?
Just imagine which impact that would have on the development cycles, the stability and testability of this kind of software. When you are programming you actually don’t want to manage the memory, you want to solve a problem. And this fact needs to be more focused on when programming. And languages like C just don’t allow that.
There is hope …
Update:
Bertrand just commented about Nokia putting Python on their Series 60.
Bertrand Mansion said,
November 23, 2005 at 9:51 pm
Hi Wolfram,
I guess you missed that :
http://www.forum.nokia.com/main/0,,034-821,00.html
This is one reason why I am currently teaching myself Python. The other reason is PyObjc as I know Objective-C already. Now I am waiting for Nokia to launch the E70 to start to experiment
Jesper Holmqvist said,
November 24, 2005 at 12:52 pm
The Newton Messagepad used a dynamic, prototype based language called NewtonScript [1]. The original Messagepad used 128kB for the entire system, which was actually one of the reasons the used NewtonScript (to save space).
[1] http://en.wikipedia.org/wiki/NewtonScript
Hoang Do said,
May 7, 2006 at 5:30 pm
why dynamic languages won’t appear on embedded devices… (at least for a while)? The single most important aspect for those devices is predictability. Static languages provide for that…. ergo C, pascal, assembly, and to some extent C++ with memory allocation ripped out.