Programming a computer is actually quite an intellectually stimulating way to spend time, you also usually end up with something to show for your labour. Getting into programming now though can be very confusing, there are so many computer languages out there, where would you start? An additional problem is that this is not the 1980s anymore, printing out “Hello World” ad infinitum is not going to impress anyone. This is where “Quickly" comes in, a new template based programming system making its first appearance in Ubuntu 9.10. It is designed to be easy and fun and is there to help you from getting an initial program together right through to distributing it.
Quickly is designed to solve the problem of creating a desktop application for Ubuntu and distributing it in a personal package archive on Launchpad (a personal software repository). It is not designed for writing web applications, although it may be possible in future that additional templates will be added for other programming tasks. There are lots of excellent choices of programming languages you could use for this task, each with their own strengths and weaknesses, but selecting the right one can be tricky unless you are experienced in this type of programming. Quickly aims to make this all a bit simpler by selecting technologies for you, generating skeleton programs, setting up source code control, integrating with a user interface designer (program, not consultant!) and finally making it easy to package and publish your new application. All of this is achieved though a set of commands entered on the terminal, for example entering “quickly create ubuntu-project helloworld” will create a project called “helloworld” according to the “ubuntu-project” template, which means you get a skeleton desktop application (shown right), you can then start modifying it. The rationale behind Quickly is explained a bit more at: https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/Quickly.
I'm more of a web programmer than a desktop programmer so I thought I would try Quickly out and see what it is like. The information on the main Quickly page is quite bare bones but is enough to get you started. It shows you how to install a package that contains a full tutorial on how to build a simple application that you can use to make notes, it is not quite Tomboy, but a well thought out example that avoided being too long, whilst also giving you an idea of what you can do, not to mention provoking curious minds to find out more. As part of the tutorial you take the skeleton code and extend it by changing the controls in the application and learning how to handle events like a note being “saved”. Editing code is just done in a text editor, but designing the user interface is done in Glade, an editor that lets you drag and drop elements around rather than having to write lots of code manually to create and place the controls.
One thing that is maybe a bit odd about the way Quickly works is that the text editor and user interface designer are entirely separate programs. Some programmers might be used to a Integrated Development Environment (IDE) where all of these tasks would occur within the same program. IDEs have a lot of benefits, but using one can be a learning curve in itself, maybe this is why Quickly was not designed around an IDE. Thanks maybe in part to Quickly's use of the very versatile Python programming language, creating the application felt quite straightforward. If you make changes to your program that mess it up, you can reverse the changes thanks to the source code control provided by Quickly's integration with Bazaar.
One feature of Quickly that I was particularly interested in was the promise of easy packaging. Creating packages for Ubuntu (and Debian) is a bit of an art. The Debian packaging system used is very powerful and this means there is a bit of a learning curve involved in being able package programs to use it. Quickly aims to make this easier by automating the packaging process for the project types it supports, and tries to work out what dependencies are required by looking at the Python libraries used in your script and finding the packages that provide them. It will also optionally publish the package for you once built. I tried this out, unfortunately on this release there is a bug (#464137) that means this will not work unless you install the devscripts package. This also meant that Postfix, a mail transfer agent gets installed too as it is a dependency of devscrips, which is a bit of a shame as this leads to some complex looking configuration options, which don't fit the overall aim of Quickly to be a simplified user experience. However, I was impressed to see a package created when I tried, and it was pretty easy which is a major win.
Quickly does seem to make things a bit easier if you want to get into desktop Ubuntu programming. It might suit those with a bit of programming experience already looking for a streamlined way to create desktop applications. When it has established itself a bit and there is a bigger community around it new programmers might find it really useful too. It comes at an interesting time though when more and more applications are moving on line and are made available through a web browser. Before writing any application on the desktop I would recommend that development teams should put serious thought into whether they should provide their application through the web. It is much easier to provide cross platform support that way and also to provide updates, a point emphasised by the fact that Quickly only supports Ubuntu at the moment (although many of the underlying technologies are cross platform).
If want to create a desktop application, either because you need to or you just fancy the challenge, and you haven't got a favourite set of development tools already, Quickly is something you should definitely check out. It looks very promising and already provides many features even though it is only on its first release, already it represents a major leap forward in simplifying desktop application development for Ubuntu. It is also a really good technology for rapid application development (an area I think is sadly often dogged by strange theories) and developing specialised tools. I am looking forward to using it more in the future. If you try it out, you might also like these additional tutorials, a search application presented by Rick Spencer at the Ubuntu Open Week: https://wiki.ubuntu.com/MeetingLogs/openweekKarmic/ScratchItch and an in depth tutorial from one of the Quickly developers, Didier Roche at: http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-with-Quickly%3A-part1.
Re: Yes we can... Quickly?
The Didier Roche tutorials @ http://blog.didrocks.fr/index.php/post/Build-your-application-quickly-w… have been removed. Anyone know else they may be?
Re: Yes we can... Quickly?
http://blog.didrocks.fr/post/Build-your-application-quickly-with-Quickl…
-sergej