Dynamic Languages: Not Just For Scripting Any More

21.01.2009

We rewrote SftpDrive [their windows product] from top to bottom in Python, with a GUI in Objective-C. It's called ExpanDrive, and it took one third the time that SftpDrive took to develop. We greatly leverage Python and and many open source projects-just like a web developer. To minimize conflicts and to have the necessary control over the runtime environment, our build process extracts only the necessary bits from the full Python distribution and packages it into the .app. ... We're pushing out weekly updates which include more than just bug fixes. ExpanDrive has been a breeze to maintain and extend and the core remains perfectly cross platform.

With this as inspiration, I tried the same thing myself. By preference, , and conveniently ZFS for Mac is a reasonably stable product. , from some folks at , is easily available, and there exists a to FUSE. It took about a day's effort to get them all installed and working together.

It then took only about another eight hours to have a full new file system, built on top of FUSE and ZFS, working on my desktop. Two days later, I was demoing the system for and vice presidents.

This wasn't a finished product; in fact, I'm still and exploring the possibilities. This is made tremendously much easier because the important code is in Python: I edit the source, save the Python file, restart, and it's running. No compile, no complicated build; as with writing a normal script, it's nearly instant gratification.

What's best is that the result is perfectly usable. It's not a " " in any limiting sense; it has all the functions I build and appears to the rest of the system as a normal component.