Working Quickly

Sometimes, writing software can be a pain. It's unfortunate, but true. Sometimes there's a need to be filled, an itch to be scratched; and though it might be quite simple in concept, it's often hard to translate that idea to code. Luckily, the team at Ubuntu has a tool for that: Quickly.

Quickly isn't a new tool, but it is a useful one. The idea is to provide a shell command which will help take some of the obstacle out of programming for Ubuntu by automatically generating a PyGTK project's boilerplate code for you. Just entering quickly create ubuntu-application foo creates a directory foo and adds the basic code needed for a simple GTK+ application. It even initializes a bzr repository for you and commits a first revision.

The tool aims to make some "opinionated decisions" about what is a good way to start. I think that's a good way to go; it certainly makes getting started easier. Although the choices aren't necessarily the best in my personal opinion (as you probably guessed, I prefer git), they are reasonable defaults and it's even possible to change them using Quickly templates, which can be created by the user to match their favorites.


The main downside, however, is the lack of documentation. There is a team working on writing some on Launchpad, but so far it's rather sparse. Even knowing how to hook up the GUI to your custom code can require a fair amount of research, and it takes a little of the ease out of using the framework. That said, once you've familiarized yourself with the workflow and the structure of the generated code, it's not too hard to ramp into productivity. I've even been using it to work on the robot arm's control software.

Personally, I think it's a great idea. It would be nice to have a GUI for it (I reflexively close terminals when I'm done with a few commands, and getting back to the right directory is a pain), but that could easily be written using Quickly itself! While it's not a new language or even a new toolkit, it is a convenient synthesis of extant tools that have the capacity for powerful projects and are easy to use.

If you like what I write, you can subscribe to my mailing list to get new posts in your inbox: