Thanks to KDE France, I have the chance to conduct a phone interview with Trolltech CEO Eirik Eng. If you have questions on Qt and Trolltech, now is the time to ask! I will harvest questions from LinuxFr, KDE France and of course here. A possible set of topics includes: the future of Qt, Trolltech's status as a company, Qt's market penetration internationally, competition with Red Hat and GTK+, Qt on MacOS X (ed: recent OSNews article). If you have any other ideas, please be quick to voice them as the interview time is imminent.

Comments

There are, however, many features that I would like to have and that are not possible in C++, especially those that are made possible by the VM (reflection, garbage collection, method attributes, secure code execution etc). Right now a number of problems with Java and C# keep me from using them for non-custom software - the VMs still feel immature and I also miss features like templates. But in a few years this may be different...

moc extends c++ to give you reflection for QObject (that's why it's better than template based signal/slot solutions), there are third party libs that give garbage collection (great circle), not sure what you mean by method attributes maybe similar to Qt properties? secure code I have no answer for.

Moc is a step in the right direction, but AFAIK there is no public API for invoking slots and you can not call constructors.

Attributes in C# are user-defined markers/tags for classes, methods, member fields etc. They do not generate any code, but are part of the classes meta information. This allows you, for example, to mark fields as persistent/transient for persistence frameworks, specify whether methods are transactional in application servers, mark methods as async/one-way for RPC and so on.

BTW, I don't think that a standard library should offer e.g. a GUI library, because the requirements are just too different. For example, Qt is a very good lib for an modest to bigger size application. At work I created an application that just transfers data from A to B and Qt would be way too heavy for this. So I used Fltk.

Also if the standard lib of Java is so great (Swing) why is everybody so interested in SWT?

Certainly all these features have problems. But each JavaSDK comes with a huge selection of well-integrated and systematically-documented libraries for almost everything that I can imagine. DotNet is similar. For me, as an application developer, the reason why something is not implemented is not important. I just see that for Java the functionality is readily available, and for C++ it is not.
Qt+KDE are the only solution that make the situation somewhat bearable for me, and other problems with Java/C# (performance, bad integration with the system, installation hell, bad toolkits, lack of templates etc) are what keep me using C++. I just don't know for how long.

People use SWT because
a) they think Swing is too complicated or they are not willing to learn a powerful toolkit
b) they think that you get worthwhile optimisation from linking into the native peers with native methods.

Swing is great. A 2GHz super scalar pipline machine avereages 1 instruction per clock. Thats 2billion instructions per sec. Why would you care if there is a interpreted layer. So, in short, because they are confused.

Stdlib+Boost is pretty pathetic compared to the breadth that the standard libraries of Java and DotNet offer.
>>>>>>>>>>
That's because Java and .NET are platforms, not languages. There are lots of libraries for doing the things you mention available for C++. In most cases, these libraries are superior to the ones included in the Java or .NET platforms, since the developers can usually just concentrate on one project, while the Java and .NET guys have to implement a huge range of libraries. In most cases, the time required to find a good library (hint: Google is your friend) is much less than the time it takes to read all the documentation and learn how to properly use it. You still have to do the latter, so eliminating the former isn't really a big savings.

I have strong concerns that microsoft will ever use C# or the .net itself for it's apps, as they sure dislike the nice decompile feature of the dotnet environment. they will provide it for their nice advertising of "we support all platform, we are cross platform, cool, better than sun's java" but won't kill C/C++ as it's the only way to hide their internals from public (which has been ever the main goal). (yes, there are obfascicators, but that only makes it harder, not that hard as to try to "decompile" other code

I think it's also a simple matter of noone rewriting something as large as Microsoft's
product set in a totally different programming language. People just don't do that.
For a good example of how reusing old code is important, take for example the Motif
integration support in Qt -- it's there exactly because people want to reuse old code,
and even when changing it, because they want to migrate gradually.

How do you come to your conclusions?
Take a look at:http://www.aboutlegacycoding.com/Articles/V/V50201.asp
There it is said
The Gartner Group reports that: "COBOL is still the most widely used programming language in business with a tremendous impact on the international economy, and on peoples' daily lives as well."
70 percent of the world's business data is processed by COBOL applications.
9 out of 10 ATM transactions are processed using COBOL.
30 billion online COBOL transactions are processed daily.
Current investments in software written in COBOL top $3 trillion.
492 of the Fortune 500 use COBOL including the entire Fortune 100.
Cobol is from the 50s afaik and C isn't much younger and is widely used. Atm C++ offers advantages over JAVA/C# etc. i don't see them disappearing in future.
Greets,
Rischwa

Would it be possible to split the Qt library into smaller modules, like all the non GUI classes in one library, all database classes in one library , all gui classes in one library and so on? I would like to use Qt in a non gui project, and would prefer to link to a smaller library.
Also there could be a more flexible pricing sceme. the non-gui classes could go out for cheap for instance, or even be LGPL since that functionality is available in other libraries for free anyway (std::string, STL ...).

My main question is, why does TrollTech keep Qtopia Desktop under a proprietary license while making the (assumedly) much more valuable Qtopia itself a GPL'ed package? Wouldn't it make sense to make Qtopia Desktop Free Software too so that it could provide Qtopia-powered handhelds (such as the great Sharp Zaurus) better integration with non-Windows desktops?

Does Trolltech have any plans to produce a full-fledged IDE developer platform to compete with Visual C Studio or Borland C++ Builder? On linux KDevelop is close but not quite sufficient for most companies.

As far as I know Trolltech as no real plan and I doubt they will spend much time on this because the open source community has already taken it over. Three usable IDEs are already available, all of them have the basics requested for an IDE but each have taken a different approach :

Monkey Studio : rushes to high version numbers and, most of the time, is the last to offer new features. However it is, until now,the most downloaded.

QDevelop (a.k.a QIde) : rushes to new features, sometimes without expanding those already present, which results in a decent list of features but lot of frustration as soon as you want a more in-depth feature (like include file support in pro files or several project openned at the same time). Besides the class browsing and code completion are very slow.

Edyuk (elderly DevQt) : has the most extanded variety of features and is by far the most flexible through it fully pluginized architecture, its perspective system and its extended edititng framework. It is also the only one to offer Assistant integration, Designer integration and a widget designed for .qrc files editing. It also has debugging and the next version will bring class browsing and code completion. One reproach remains : long time elapses between releases.

Sidenote : I'm the developer of Edyuk so you'd better try them all because I might not be fully objective.

Can we expect to see crypto classes included in Qt any time soon? With so many programs now being developed to interact with web services, etc. things like SSL support are becoming increasingly important. In addition, functions like MD5, SHA1, AES, DES, 3DES, etc. would be very useful in developing more advanced applications.

What steps is Trolltech taking to make Qt relevant for the future? With Microsoft and other companies building in web services support (i.e. SOAP, UDDI, WSDL, etc.) into their development libraries, where is the support for these functions on Linux using a high-quality library? Non-existant. As more and more companies (specifically large, enterprise companies) move to Linux, the need for these features will become even greater. Is Trolltech currently working on things like web service solutions and other emerging technologies so that Qt can become as advanced as the other big names?

Will Trolltech ever release a GPL or non-commercial version of Qt 3.x for Windows? I know that there was a 2.x release some time ago, but nothing for 3.x. There are a lot of people like me who are just hobby developers and would like to develop for Windows. Kudos on releasing one for the Mac!

Stroustrup complains that C++ doesnt have a major supporter like Delphi - Borland, Java - Sun, C# - Microsoft...
C++ is always in the also supported section. Listen, Trolltech! Employ this guy and become THE C++ company.

I am a independant developper, mainly working on database feature (actually creating a database dedicated to C++/Qt -direct support for C++ class, slot/signal within the database object, automatic generation of databse driven application (query/search/result display/editing/creation) from data description,...). Would Trolltech be interested working with external party for better integration.
Typically, I miss some festure in QObject that make the support quite difficult. Best would be to modify the meta model to accomodate my feature.