The Open Road to Qt Code

Today we start down the ‘open road to Qt code’ - a series of interviews that showcases real Qt users and uncovers their amazing work and ideas.

Our featured guest today  is Frank Karlitschek, a computer science professional from Reutlingen, Germany who now lives in Stuttgart. Frank has worked for over a decade in management roles within a variety of Internet and IT companies and for three years he was technically responsible for one of the biggest eCommerce sites in Europe.

Frank has been a KDE contributor since 2001 and has worked mainly within artistic teams on organizational and promotional projects. In 2001 he developed and founded, which grew quickly to become one of the biggest online communities for Linux. In 2007 he founded the network with its 35 communities and portals for desktop Linux. Today, generates over 90 million page impressions and attracts over 2.5 million unique visitors per month. In 2008 Frank also founded the startup company to work fulltime with online communities. In 2009 Frank was elected to the board of directors of the KDE e.V. where he now holds the position of Vice President.

Key among Frank’s current projects is ‘Social Desktop’, which was formed with the goal of integrating online communities and web 2.0 principles into both desktop and mobile applications. We spoke to him about his work with Qt from his early experiences through to how he is working with the framework today to develop his current solutions.

Aron: How did you first come to find and use Qt and what did (& didn’t) you like about it initially?

Frank: A friend of mine showed me a beta of KDE 1.0 on Linux and I think this was back in 1997 or 1998. I was immediately impressed by its rich and powerful user-interface, which was built on top of Qt and this was unusual for Linux at the time. I also liked the fact that that Qt ran cross-platform on Linux and Windows and that it used a very ‘clean’ object-oriented API. Qt applications are also very fast if you compare them to other cross platform solutions like Java applications. So for me it was immediately clear that Qt had a bright future.

How does Qt integrate and interplay with the technology roadmaps that you work with most closely?

The most important trends in the coming years will almost certainly be cloud and mobile computing – so our files, contacts and all other data will live somewhere in a public or private cloud in the near future. We will be able to access this data from a mobile phone, home desktop, work desktop or netbook via a rich native client that talks with a web-service in the cloud. You can see examples of this on mobile phones like the iPhone already.

So what we need here is a cross platform development framework which runs on desktops and small devices, can access web-services very conveniently and which makes it easy to create rich user-interfaces very fast. Qt is the perfect framework for this kind of application development, especially if you look at the new features such as its use of declarative UI. Personally, I have no doubt that I will be using Qt for all desktop and mobile developments in the future. has such a breadth of different community interests from text editors, admin tools and games right the way through to server software and embedded computing tools. How do you balance such a wide scope of portal content and keep it all relevant?

One of my most important principles I followed from the start is that it is good to a) work on uploaded content and b) proactively communicate with users. But it is even better to build a community-system, which enables the users to work on the content themselves and allow great user-to-user communication. Because of this I am constantly thinking about how to build better tools for every individual to handle all their user-generated content and communication.

We really have great users and developers on and they do a great job of creating and improving all the content. My job now is to develop the right tools for these users and create the right conditions so that the people feel comfortable on and are motivated to develop great applications and other content.

Your experience with open source computing is extremely far reaching, covering more than a decade. In your opinion, what keeps both developers and the users themselves coming back for more?

Development has to be fun. I think the freedom to do whatever you want to do with the code is critical for that. Software development is a very creative process so the most frustrating thing is if you can’t realize your thoughts and bring your crazy new idea to life because you hit a wall. These so-called ‘walls’ could be license restrictions, the inability to use code from other sources, problems associated with learning how a different piece of software works or the inability to understand an API because the documentation is poor and you can’t study the code. Qt is the only framework with such a big feature set and great documentation readily available under the LGPL. This makes working with Qt unique and really fun.

Another important aspect for developers here is that there is a friendly and supportive community around a software product. Qt has the KDE community, which is one of the biggest free software projects. So it is always easy to find somebody who is an expert in the topic you are interested in. The KDE community is very open and has a friendly approach towards new people who want to join the project or need help. Having this kind of ecosystem around Qt is a very valuable thing.

Your work to establish has seen you pay particular attention to the way online communities interact and flourish. What are the key drivers for a successful online community and how do you think these virtual user ecosystems will have a greater impact on the way we all use technology in the future?

People, especially developers, like to work together in groups to exchange ideas, share code or just chat about hobbies or other stuff. The Internet is a great tool in terms of its ability to enable people to work together and communicate and it is also the base technology that enabled the free software movement from its first inception. I also think that classic technologies like email, chat and even simple web pages are only just the beginning. Social networking sites and new ideas like Google Wave will enable users and developers to collaborate and communicate on a much higher-level altogether. I think websites based on tried and tested social networking principals will enable developers to be way more productive in the future compared to today.

Another interesting new trend is real time collaboration on the same document or project. I think that the Social Desktop project, which combines the power of social networking and web 2.0 with rich desktop applications, can improve the productivity for a lot of users and developers. Qt is the perfect technology to implement the Social Desktop’s ideas and concepts on all platforms because it is easy to build rich user interfaces, it is cross platform and it provides powerful tools to access online content.

Your work with also sees you involved with the Open-PC project to develop a powerful, high quality Free Software based PC in an open fashion; tell us about the progress made so far here.

To my mind, the Linux and KDE community are not satisfied with the current Linux-based PCs from OEMs such as ASUS or Dell. Users do not have influence on the hardware or software so they are basically getting a closed product and most of the pre configuration is not very user friendly. A lot of existing Linux PCs also rely on closed source drivers which is not ideal.

The true concept of the Open-PC is that the community builds and designs its own open and Linux-based PC. All the software is available in a public repository and everybody can improve it. We only use hardware which is fully documented and which is fully supported by free device drivers. We will also bundle this with end user support and part of the income goes back to the used inside free software projects like for example KDE. We still aim to ship the first Open-PC soon and I am really looking forward to seeing how this idea evolves over time. I think a crowd sourced and free product will always be better than a product developed secretly inside a closed company. and have both seen over half a decade of sustained growth. During their existence, how have you witnessed the nature or style of user-generated content to have progressed or changed?

In the early days of the web it was difficult to share your content with others. You basically had to be able to code your own homepage to do it. I launched in 2001 and it was immediately very successful because it was very easy to upload and share your work with others. Nowadays a lot of web 2.0 sites allow easy sharing of content, but with this reality we also see that the quality of the user generated content goes down. Because of this we use a sophisticated voting system to enable filtering for higher quality content. Additionally if the score of an upload drops below 20% the content is automatically deleted. By doing this we still allow uploads from everybody without using a non democratic moderation system and still guarantee high quality content.

Now that Qt is being developed under the LGPL, how do you feel the total offering will benefit from enhancements that originate from the community – and how will you yourself promote Qt?

I have the impression that Qt is getting more and more attention from free software at the same time as it is also enjoying greater interest from proprietary software developers. This is especially so right now since Qt has been made available under the LGPL and because of the fact that Qt will be the shipped on millions of Nokia devices in the future. This makes an already really great development platform even more attractive for developers. I am sure a lot of developers and companies will use Qt and even contribute to it in the future. Qt is the only framework I know of under the LGPL that allows contributions from everybody and also offers high quality documentation and support – and I am sure a lot more developers will use Qt in the future because of this.

Blog Topics: