ARTICLE

Ubuntu and QML

by | Sun 4 Dec 2011

Last week I delivered a keynote at the [Qt Developer Days 2011](https://qt.nokia.com/qtdevdays2011/) event in San Francisco. I have not seen a video of the keynote online yet, but I am assured it should be online soon. Rick Spencer gave a keynote at the Munich event shortly before UDS in October.

Over the last year or so the relationship between Ubuntu and Qt has growing closer. As many of you will recall, we announced that for Ubuntu 11.10 we were [going to make Qt a first-class citizen in Ubuntu](https://arstechnica.com/open-source/news/2011/01/inclusion-of-qt-in-ubuntu-1110-is-a-win-for-developers.ars). This would mean that you could install Qt applications on a standard Ubuntu system, and those applications would integrate neatly into Ubuntu. There was also a goal to ensure the Qt development tools (e.g. [Qt Creator](https://qt.nokia.com/products/developer-tools/)) are fully supported and ready to to roll in Ubuntu 11.10. Those goals were successfully accomplished.



Qt Creator is an IDE for building Qt and QML apps.

My presentation last week summarized the progress being made in Ubuntu make it a strong platform for app developers (e.g. refinements to the Ubuntu Software Center, [developer.ubuntu.com](https://developer.ubuntu.com), the MyApps process etc), and summarizing much of the work to integrate Qt neatly into the platform. The presentation seemed to be well received with a lot of excitement about Ubuntu afterwards.

Aside from delivering the keynote, I was also interested in using the event to learn more about Qt and specifically QML. We are in a really interesting position with Ubuntu in that we want to deliver a strong application development platform, and a platform driven by choice, but also a platform that allows both professional and hobbyist developers to deliver their apps.

If you want to deliver native apps in Ubuntu today, most people will either write their apps using GTK or Qt. For GTK, those apps can be written in C, Python, C# and various other languages. For Qt you can write apps in either C++ or Python (although the complete Python bindings are not 100% free). These two options provide a good set of development options for our developers.

In terms of facilities I think it is fair to say that Qt provides a more comprehensive solution. GTK, while popular (I myself, horrendous programmer that I am, have written some GTK apps in Python), brings together the core pieces you need for an app, but lacks some of the more advanced functionality that is in Qt. The traditional challenge with Qt though was that you needed to know C++ to use it, and even though Qt provides many convenience classes, C++ can be a bit much for amateur and hobbyist programmers. I think it is important that we provide a great solution for both professional and hobbyist programmers, and everyone in-between.

What has been exciting to me however is [QML](https://doc.qt.nokia.com/4.7-snapshot/qdeclarativeintroduction.html); a new technology that is part of Qt that provides a higher-level means of producing user interfaces. QML was not new to many Ubuntu people; Ryan Paul did an excellent presentation a year ago at UDS in Orlando, we had a great presentation on QML at UDS in Budapest, and Qt Creator and it’s QML and it’s QML designer have been available in Ubuntu for quite some time.



The integrated designer in Qt Creator.

What I was unclear on, and it seems I was not alone, is where the lines between QML and traditional Qt start and end. I knew that the philosophy in the Qt project is that you would write *big and serious apps* in Qt and *smaller and more casual apps* in QML. While these lines seemed fairly blurry, what blurred it more was that there is a strong focus on making QML more and more flexible for the up-coming Qt 5 (expected in 2012).

I went to the Qt Developer Days conference with a simple question: could someone write *Angry Birds* in QML. In other words, can you write a fun, vibrant, visually attractive game in the high-level, managed environment that is QML. If so, this could dramatically lower the bar for developers to write fun and interesting apps and deliver them not just on Ubuntu, but on other platforms too.

I am still very much learning about what QML can and can’t do, but from what I saw at the event and some recent research online, QML very much does provide a great solution for writing attractive, capable interfaces, games, and other applications. As an example, I was chatting to Lars Knoll, Qt Chief Architect, and he showed me an example of a game written entirely in QML, *Incredible Circus*, and running on his Nokia N9 phone:

The Incredible Circus (Wide) from The incredible Circus on Vimeo.

He also pointed out many of the other applications on the N9 that are written entirely in QML. It turns out there there are [many](https://www.youtube.com/watch?v=D3INBtEwPTA), [many](www.youtube.com/watch?v=MNQHjBIqWDE), [many](https://www.youtube.com/watch?v=6ZnPbBBkG7A), [many](https://www.youtube.com/watch?v=UOoHJFNzomo), [many](https://www.youtube.com/watch?v=8Bvm4E819UY), [many](https://www.youtube.com/watch?v=0cfzkKtnzfg) games on YouTube, even a [Angry Birds clone](https://www.youtube.com/watch?v=R00JxX6ZRNw), all written in QML.

Ryan Paul also wrote an Ars RSS reader in QML:

*Can’t see the video? Watch it [here](https://www.youtube.com/watch?v=U7IgwNrcln8).*

…and I event found Flickr Browser written in pure QML.

*Can’t see the video? Watch it [here](https://www.youtube.com/watch?v=xoo_Ows1ExU).*

My previous assumption about QML was that it was only really useful for creating UIs; it seems that it is also flexible for much of the logic you would need in games and other applications too.

While I have not played with QML all that much, I am excited by it’s potential, and the roadmap outlined by Lars at the Qt Dev Days offers a bright future. This is not only a bright future for Qt, but also a bright future for developers who want to deliver apps on Ubuntu thanks to the integration work done in 11.10.

**[Install Qt Creator in Ubuntu](apt:qtcreator)** and get started.

An invitation-only accelerator that develops industry-leading community engagement and growth via personalized training, coaching, and accountability...all tailored to your company's needs.

Want to read some more?

Happy Holidays

Happy Holidays

Just a quick note to wish all of you a happy, restful, and peaceful holidays, however and whoever you spend it with. Take care, folks, and I look forward to seeing you in 2015!

The Impact of One Person

The Impact of One Person

I am 35 years old and *people* never cease to surprise me. My trip home from Los Angeles today was a good example of this. It was a tortuous affair that should have been a quick hop from LA to Oakland, popping on BArt, and then getting home for a cup of tea and an...

Feedback Requested: Great Examples of Community

Feedback Requested: Great Examples of Community

Folks, I need to ask for some help. Like many, I have some go-to examples of great communities. This includes Wikipedia, OpenStreetmap, Ubuntu, Debian, Linux, and others. Many of these are software related, many of them are Open Source. I would like to ask your...

Ubuntu Governance Reboot: Five Proposals

Ubuntu Governance Reboot: Five Proposals

Sorry, this is *long*, but hang in there. A little while back I wrote [a blog post](https://archivedblog.jonobacon.com/2014/11/14/ubuntu-governance-reboot/) that seemed to inspire some people and ruffle the feathers of some others. It was designed as a...

Ubuntu Governance: Reboot?

Ubuntu Governance: Reboot?

For many years Ubuntu has had a comprehensive governance structure. At the top of the tree are the Community Council (community policy) and the Technical Board (technical policy). Below those boards are sub-councils such as the IRC, Forum, and LoCo councils, and...

Dealing With Disrespect: The Video

Dealing With Disrespect: The Video

A while back I wrote and released a free e-book called [Dealing With Disrespect](https://www.dealingwithdisrespect.com/). It is a book that provides a short, simple to read, free guide for handling personalized, mean-spirited, disrespectful, and in some cases,...