Canonical has launched a new project called Quickly that aims to simplify the process of developing and deploying Linux applications. It provides a command-line framework for generating code projects, storing changes in version control, building packages, and releasing finished software.

Quickly uses a template system that allows specialized behaviors to be defined for different kinds of software projects. The default template, which is called ubuntu-project, will help users build applications with Python and Glade. It defines several high-level command operations, including edit, save, dialog, glade, and package. These operations, which are invoked with the Quickly command line tool, will use other software and command line tools to help the user complete the relevant tasks. It serves as a simple command abstraction layer that insulates the user from having to learn and understand the underlying components.

To create a new project, the user has to run the quickly command and specify the desired base template and what they want to call their project:

$ quickly new ubuntu-project myprogram

This will automatically generate a directory called myprogram that contains a basic PyGTK+ application, including boilerplate Python code, sample Glade user interface layouts, and a distutils setup script. It will also automatically initialize a local version control repository using Bazaar and commit the contents of the project. Quickly will then launch the stubbed out application so that the user can see that it was created correctly.

After the project is created, the user is free to build their program by modifying the generated code and user interface layouts. They can do this however they want, but the ubuntu-project template provides a few Quickly commands that will make it easier. The quickly edit command will launch the GEdit text editor and load in all of the Python scripts that are part of the project. The quickly glade command will open all of the user interface layouts in GNOME's Glade user interface editing tool. The quickly dialog command can be used to generate a new dialog to the add to the application. It will produce both the necessary Glade layout and the sample code.

To save the latest changes in the Bazaar repository, the user simply runs quickly save , which will automatically commit the code. A commit message can optionally be supplied as an additional parameter. There is a quickly release command that can be used to push a release into Launchpad and a quickly package command that will build a Debian package.

The commands provided by the ubuntu-project template make it easy for developers to get a PyGTK+ project up and running without having to manually set up the basic structure of the code or manage every aspect of the build process. This is highly advantageous because it lowers the barriers to entry and allows programmers to focus on programming rather than tooling.

The ideas behind Quickly make it seem a lot like the popular Ruby on Rails Web application framework. It leverages automation and static code generation to accelerate development and eliminate a lot of the tedious steps that would otherwise have to be undertaken manually. It does this with simple command line tools rather than a complex IDE so that the developer will not be locked into a single toolset or have to contend with the overhead of a heavy environment. The downside is that the entire experience is less seamless than, for example, what you get with Qt Creator or MonoDevelop, which more tightly integrate code editing and visual user interface design tools.

The use of Python in the default template is advantageous because it is more conducive to rapid development and also eliminates the need to expose users to the nightmarish abyss of Autotools. The ubuntu-project template's Integration with Launchpad and Bazaar is also very nifty because it allows users to leverage Canonical's powerful collaborative development infrastructure.

Although that default template is obviously tailored to the Ubuntu ecosystem, the Quickly framework is flexible enough to accommodate a wide range of tools and development technologies. Alternate templates could be made for different kinds of programming toolkits or to facilitate integration with different version control systems and project hosting providers. For example, it will be possible for users to make a template with custom scripts that use Git and GitHub instead of Bazaar and Launchpad.

Quickly is still at an early stage of development and is still limited in its capabilities, but the underlying vision is very compelling. It has the potential to radically simplify the development process and provide new programmers with a more friendly introduction to creating Linux applications. You can get started with Quickly by installing it from a PPA on Ubuntu 9.10. Additional details are available from the project's page at Launchpad.