Qt Academy has now launched! See how we aim to teach the next generation of developers. Get started
最新版Qt 6.3已正式发布。 了解更多。
最新バージョンQt 6.3がご利用いただけます。 詳細はこちら

The Open Road to Qt Code 4 - Kévin Ottens

Kévin Ottens

French software engineer Kévin Ottens is enthusiastically driven by his involvement with KDE. He has based much of his work around involvement with students at Toulouse University where he teaches his classes the fundamentals of KDE development as a pathway towards introducing them to Qt.

Over time, Ottens has been drawn to work closely with the students, as they have been keen to collaborate with a free software project like KDE while working on their university studies. In fact, much of the students’ work has helped contribute towards their own academic goals and brought a great deal to KDE itself and the community’s local user groups.

A true open source evangelist and purist from the heart, Ottens believes in the open contribution model of software development and has in the past commented that he has seen ‘factions’ form, where certain groups of individuals try to write themselves into the history books rather than code for the wider benefit of society. He talks to us now to share his aspirations for KDE, Qt and the road ahead.

When you first got involved with KDE, the Qt toolkit was already in use as part of the project, how have you seen this relationship develop over time?

If you look at it from a purely technical point of view, Qt was the core component that the KDE Platform was based on from the start. So I'd say that in many ways, the relationship hasn’t changed that much. Where it really gets interesting is from the social angle. From the days of Trolltech, Qt engaged in communication with the KDE community; the company sponsored development and ensured the resources were there to meet the community's needs at large.

I think that this benefited Qt and the KDE platforms a lot and it probably helped a symbiotic relationship take shape – and this is one of the main reasons why it still works after so many years.

The release of Qt 4.0 meant that GPL versions of KDE became available for all platforms and not just X11. This in turn meant that KDE software based on Qt could now also be distributed for Windows and Mac OS X.

What opportunities do you think have now opened up for KDE and what are the biggest risks associated with a technology breaking new ground in this way?

This opened great opportunities for growing our user base. In the long run, more users will be able to run KDE's applications without the need to change the OS they're used to. That's a great enabler that in turn will hopefully attract more developers to our community.

Of course it also comes with challenges, as that means we also strive to support more platforms, which means more resources will be consumed to ensure the port meets our usual quality level. In the bigger ‘Free Software’ picture though, it means that some users might have less incentive to move to a fully “libre” OS, but of course it's still good if they use some more free software as an end result.

Tell us about your work with the students at Toulouse over the last three years. How did you monitor your work and how you did you change your goals and areas of focus after each year’s experiences?

Well, to be honest, the first year was kind of an experiment and we didn't really know what to expect, we were really in the unknown. I'm really grateful that the staff of the IUP ISI, mainly through its director Henri Massié, were trusting me and were brave enough to allow me this first experiment. But seeing the outcome of this first year, it was pretty clear to me that some things could be improved and I had to find out what did work and what didn't.

I mainly used three broad questions to guide me:

  1. Did the students practice everything we wanted them to?
  2. Did the community get back a meaningful result?
  3. Did the students perceive this experience as positive or negative?

For this last point, each year now, I have been conducting a survey where students can criticize how the project went. I think this last feedback loop was rather critical as we introduced some pretty big changes in our organization as a result of the student surveys.

How did the Toulouse students cope with learning where they had gone wrong and learn to grow from that experience? In terms of coding objectives and targets, how did they manage to adjust their workflow processes as a result of this?

Really it varies from student to student; some people do accept mistakes easily and learn from them, some don't. It's a pretty natural thing. It think that having them work in teams helped with this aspect though as you have to learn during the project for the benefit of the team this way.

As for adjusting their processes and reassessing objectives, that's the core of their learning experience in the IUP ISI i.e. it’s the area which is focused on project management and in particular agile project management. This way, they regularly have meetings with the university staff (face to face) and with the KDE community (over Internet Relay Chat) to readjust their work.

It's generally a good thing when I see a team needing to shorten its development cycle as this means they're criticizing their work more often - and then improving in a more organic way.

In the presentations you have made to support your work you have described the limitations of your model and discussed how to scale it.

Given the fact that Qt 4.6 is a broader product than ever before, how has this helped you think about a wider scale implementation of the work you have done – and does this mean that you will naturally be able to reach a greater number of devices in the real world?

Well, my line of thinking was slightly different when I was talking about scaling. For me, the pressure point boils down to: “How do we manage to have more of these projects in more universities without cloning me?” I'd like such university projects to be part of a more systematic “outreach program” within the KDE community but unfortunately we aren’t quite there yet, although I'm aware of some similar small scale efforts conducted in several places like India and Brazil.

As for Qt 4.6 and reaching more devices, well it already started as last year we brought our first demo to the N810, which we were kindly allowed to use by Nokia. The results weren't that amazing yet though and I think that was due to some lack of maturity in the platform (it was Qt 4.5 and Maemo4 at the time).

But I'm definitely envisioning another try next year maybe on the N900 if we get some support from Nokia again. In general, this is a very good thing as it provides more diversity to the kind of projects we can propose to the students.

The enhancements and augmentations found in Qt 4.6 center around interoperability, robustness and performance. In what way do these attributes factor into your own plans and hopes for KDE and the user experience?

All three kinds of enhancements are critical for a community like KDE. This means that the software we produce can run better on a wider range of devices and with less user defects experienced.

In turn, we'll be able to leverage this to provide a richer user experience and port it on new devices. That's a very good timing for us as we're seeing more and more efforts emerging to target embedded devices, which raises a few interesting usability questions.

What has been your greatest contribution to KDE to date and what areas of the project do you think could most benefit from increased focus and publicity to improve them?

Wow, that’s probably the most difficult question for me as I never consider what I do as “great”. I'm more of the type that says, “I get done what needs to get done”.

Even though I've made quite a few technical contributions along the years, I would say that my greatest contribution is not technical.

I think it is the spreading of the KDE vibe toward students, training them and putting them in touch with the community. It has allowed some of them to discover ‘Free Software’ and some of them to even get jobs. If there's one thing I'm proud of, it's that fact that I’ve helped to provide students with all those opportunities - and as a bonus I learnt quite a lot of things myself in the process.

As for the area that would benefit most from an increased focus, there is a general effort aimed at making the KDE Platform suitable for devices that are more constrained in resources. It's something we started recently with the KDE/Maemo effort I'm part of, but we're not completely there yet.

You have said before that you think KDE's killer app has always been the Konqueror web browser. As Dolphin has now replaced Konqueror, do you still enjoy the same style of adaptability and power from a file management perspective? Also at what touch-points do Qt and Dolphin connect and how and why do they work well together?

Yes I do enjoy the same style of adaptability, mainly because of the great tradition of reusability in KDE. Dolphin reuses quite a few of the konqueror components, so they're sharing quite a lot of de facto standard features. Not all though, as some of them are Dolphin-specific due to its usability and because it implements a specific shell around the components it uses, while Konqueror is generic.

As a young software engineer and programming enthusiast, now that you are working and carving out your own career path will you still devote time to working on improvements to both KDE and Qt?

Definitely! If only because my career path involves KDE and Qt anyway thanks to my position at KDAB. Of course, I still want to devote some of my spare time to the community. I have to admit that 2009 has been rather slow for me but that's mainly because of radical changes in my personal life, which limited my spare time.

Looking back at what you have achieved with your student coders and on your own so far, you have embraced the opportunity to learn new technologies in very ‘applied’ real-world environments. Holding a doctor's degree yourself, do you think that this is the only way to learn effectively these days?

Of course not, if I thought it was the case I would probably not hold a doctorate degree! Like a lot of things in life it's really about finding the right balance. You need to know enough theory to innovate in the real world, but only by applying theory onto reality.

You also need to understand the theory well enough to do the necessary modifications to pass the “reality check”. And of course you need to confront theory with the real world in order to refine it, otherwise it is a dead body. It's really a two-way street in my opinion and it sums up how we have built knowledge for centuries!

Blog Topics: