One of the languages I’ve wanted to learn for a while is Python. There’s a lot of interesting buzz about it, from Dr Chuck and the google app engine launch, and after skimming a book it looked quite cool. Going back a bit, Miro at Fermilab wrote their cluster control software in Python, and he and I worked together as his code was a client to my server. I also hacked around a bit in Sage for the ABC project.
However, for me at least, to learn a language I really need a project. Otherwise, as with Ruby, the new knowledge doesn’t get used and never transitions to permanent memory. When the chance came up recently at work to use Python on a NASA project, I was all over it and have been having an obscenely good time so far. It’s fast to learn, easy to code, almost fun to refactor, and has made tricky tasks quite simple. I’m a fan!
Today I found an interesting article in Embedded Systems, about a new platform from Synapse Wireless that uses a Python-based virtual machine for low-power mesh networks, on 8-bit chips. Similar to the Sun ‘Spot’ platform, but Python instead of Java.
Those are some of the hardware for sale, there’s also an eval kit:

At 149 for the eval kit, I’m tempted. I’m a little annoyed that it doesn’t include ADC, though. You have to cough up $380 for their ‘network eval kit‘ or $145 for the ‘end device‘ to get that. Which is annoying; the entire idea of a sensor network is to have, y’know, sensors.
Anyway.
Unlike the MSP430 ZigBee boards I’ve messed with, this one has some real advantages:
- Coded in Python! VM only takes 40KB of memory, which is impressive for an 8-bit platform.
- Write and deploy code interactively from the desktop via wireless – sorta like Spot but easier to use.
- Nice terminal strips for connecting your own hardware.
I’m quite tempted, as I’ve a project in mind that would benefit from the wireless aspect. I really like the idea of Python as portable code for mesh networks; the complexity of coding these things is greatly reduced that way. Brilliant.