JUL
2
2003

Your Chance to Ask Trolltech

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

Not all of them, but many. That's why I like Qt.

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...


By Tim Jansen at Wed, 2003/07/02 - 5:00am

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.


By Don Sanders at Thu, 2003/07/03 - 5:00am

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.


By Tim Jansen at Thu, 2003/07/03 - 5:00am

Okay, as I said, the next version of the C++ standard library will probably offer most things on your list (see http://www.linuxworld.com/linuxworld/lw-2001-02/lw-02-stroustrup.html).

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?

Christian


By cloose at Wed, 2003/07/02 - 5:00am

?
According to the article the next version will not have single item of my list. Have I missed something?

A GUI lib is controversial indeed, but both Java and C#/DotNet have one. And Qt is pretty cross-platform as well, so it can't be impossible (even if the integration of the GUI may be not perfect).

Swing is annoying, indeed, but I said >=5 years. Whatever problems Swing has, I am confident that there will be a much better solution for Java GUIs in 5 years.


By Tim Jansen at Wed, 2003/07/02 - 5:00am

Hi Tim, :-)

Okay, *most on your list* was probably an exaggeration, but some points are there:

* database --> persistence
* GUI
* basic network support --> platform-independent system facilities

Some of the other points are problematic:

* GUI - would have to support small to very large apps.
* IPC/RPC - standards come and go.
(small list: XMLRPC/SOAP/CORBA/DDE/DCE/RMI/DCOP :-) )
* 3D rendering - Direct3D or OpenGL ??

About Swing...even if there will be a much better solution in 5 years, Java would still have to support Swing for compatibility reasons (like AWT now). This way Java will become pretty heavy.

Christian


By cloose at Wed, 2003/07/02 - 5:00am

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.

BTW DotNet has an interesting feature for transport-independent RPC (called Remoting).


By Tim Jansen at Wed, 2003/07/02 - 5:00am

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.


By Ed at Tue, 2006/11/14 - 6:00am

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.


By Rayiner Hashem at Wed, 2003/07/02 - 5:00am

C++ allows platform independent programming as well. Actually, it allows BETTER platform independent programming than C#.


By David Johnson at Wed, 2003/07/02 - 5:00am

Currently maybe, but if Microsoft will really abandon backward compatibility for Win32 in Longhorn and make .Net the primary development platform, it could become hard to write anything in C++ at all.


By AC at Wed, 2003/07/02 - 5:00am

Writing C++ in a .NET centric world won't be any harder than writing UNIX code in a Win32 centric world.


By David Johnson at Thu, 2003/07/03 - 5:00am

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


By Christoph Cullmann at Thu, 2003/07/03 - 5:00am

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.


By SadEagle at Thu, 2003/07/03 - 5:00am

Take a look at Visual Studio.Net,
You can use several languages out-of-the-box, among which C++.

If you want to use C++ for .Net applications, there are a few limits,
e.g. you have to abstain from using multiple inheritance...

But M$ does support C++ for .Net.


By Klaas van Gend at Thu, 2003/07/03 - 5:00am

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


By Rischwa at Thu, 2003/07/03 - 5:00am

In the Qtopia feature list I spotted SOAP among the future features. Will there be SOAP support in the regular Qt as well?


By ano at Wed, 2003/07/02 - 5:00am

What is Trolltech's position on OPIE, the open-source fork of Qt/Embedded. OPIE is one of three GUI alternatives (as opposed to GPE, the GTK-based GUI, and "bare" X) for the Familiar handheld Linux distribution (http://opie.handhelds.org/ and http://familiar.handhelds.org/).

Is OPIE considered a welcome effort to accelerate the use of Qt on handhelds, or a rogue knock-off? Is the Qt/Embedded license compatible with the Familiar distribution (ie., supported under GPL)?


By PDA wanna-be at Wed, 2003/07/02 - 5:00am

1. Are there any plans to introduce a component model? In the past such a project was canceled.

2. You should split your library in several parts, like gui, network ...


By Peter at Wed, 2003/07/02 - 5:00am

2. Ever heard of qt plugins? It's already like this.

Qt shouldn't ever be split more than this however; for most companies, a complete solution is needed.


By lit at Thu, 2003/07/03 - 5:00am

I have been enjoying the use of the QT Desktop for linux and syncronizing my Zaurus for some time. When will the QT Desktop be released for Mac OS X? I really would love to sync my Zaurus with OS X!!

Thanks,


By chris at Wed, 2003/07/02 - 5:00am


By Michael Dean at Wed, 2003/07/02 - 5:00am

Dear Eirik Eng,

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 ...).

Marc


By Marc at Wed, 2003/07/02 - 5:00am

Qt, is really a good idea, but i have this suggestions:

1.is extremely important that qt humanize the forms, because you in microsoft windows, and mac os X you can make translucent forms and forms with any shape form(like skins)

2.Qt forms must accept transparent background, in the widgets such textlabels or buttons,because if you use a custom background your application widgets look very ugly

3.the SQL module really need to be simplified and integrated into qtlibs, because as plugin is a nightmare

4.Qt really need more integration with x, and x extensions

5.Qt and kde, need flexibility on styles and windeco, must be great if you can call from qt or kde a form with another style an windeco

6. qt need rewrite the widgets flags, its a miracle works with that flags

from venezuela
rafael castillo
jrch99@cantv.net
!sorry my english!


By Jose Rafael Castillo at Wed, 2003/07/02 - 5:00am

> 1.is extremely important that qt humanize the forms, because you in microsoft windows, and mac os X you can make translucent forms and forms with any shape form(like skins)

You can with Qt and X11 already.. you can either do this the Qt way (QWidget flags), or the KDE way (setting NET::Override)

> 2.Qt forms must accept transparent background, in the widgets such textlabels or buttons,because if you use a custom background your application widgets look very ugly

Well, this is ofcourse true for any GUI toolkit. Custom backgrounds usually don't work too well with the rest of the desktop :)e

> 4.Qt really need more integration with x, and x extensions

Which X Extentions? It's intregrated with pretty much all, and when new ones are written, Qt usually supports em quick. Take for example randr, xft2/fontconfig recently.

> 5.Qt and kde, need flexibility on styles and windeco, must be great if you can call from qt or kde a form with another style an windeco

You can already with other styles. See qapplication (I think)'s setStyle()..

why would you need multiple window decs?

> 6. qt need rewrite the widgets flags, its a miracle works with that flags

why so?


By anon at Thu, 2003/07/03 - 5:00am

My questions would be "Which part of Qt is the most diffcult to keep portable".

I mean is it more difficult to have crossplatform UI, or is it the IO stuff, or the database parts, or maybe containers because of lousy compilers.

Cheers,
Kevin


By Kevin Krammer at Wed, 2003/07/02 - 5:00am

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?

Secondary question: assuming Qtopia moves to Qt 3.0 some day (or 4.0) will TrollTech attempt to implement a Binary Compatiblity Module so that Qtopia powered handhelds can remain legacy friendly like Palm OS-based handhelds?

Thanks,
Tim


By Timothy R. Butler at Wed, 2003/07/02 - 5:00am

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.


By John at Wed, 2003/07/02 - 5:00am

QT support (i.e. QT designer) as a plug-in for Eclipse?
(The C/C++ version of Eclipse)


By Klaas van Gend at Thu, 2003/07/03 - 5:00am

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.


By fullmetalcoder at Tue, 2006/12/26 - 6:00am

Try also Handcoder's ide for QT (HiQT) that you can find on qt-apps.org


By Mattias at Tue, 2007/08/07 - 5:00am

Hi there, I am the author of the "Handcoder's IDE" that Mattias mentioned. Those who like it, please spread the word... and send me encouragement to keep it going!

< 2 months old - solid foundation would you agree?

JM


By Jeremy Magland at Sat, 2007/08/11 - 5:00am

A new beta version of Monkey Studio is out, you can learn more here : http://www.monkeystudio.org

P@sNox,


By PasNox at Fri, 2007/12/28 - 6:00am

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.


By Steve Nakhla at Wed, 2003/07/02 - 5:00am

I'm working on a project called 'Qt Crypto Architecture' (or QCA), basically a simple wrapper library for crypto stuff. My initial goal is to support SHA1, MD5, AES, 3DES, SSL/TLS (and X509), and SASL. The functionality will be provided via plugins.

I'm not sure yet how I want to rig this, but I'm thinking of binding very close to Qt, maybe by storing the plugins in the Qt plugin path (under "security").

If you would like more information, send me an email (justin-qt@NOSPAM.affinix.com).


By Justin at Fri, 2003/07/04 - 5:00am

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?


By Steve Nakhla at Wed, 2003/07/02 - 5:00am

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!


By Steve Nakhla at Wed, 2003/07/02 - 5:00am

Would you employ Bjarne Stroustrup?


By Marc at Wed, 2003/07/02 - 5:00am

It's really a great idea.
And Qt will become the new standard lib for C++ ^^
I have a dream...


By joris at Wed, 2003/07/02 - 5:00am

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.


By Marc at Wed, 2003/07/02 - 5:00am

Yes, and we are all with you. Come on Trolls, you are big guys now ;-)


By joris at Wed, 2003/07/02 - 5:00am

Hrmmm.. let's look at the facts..

Borland invented Delphi.
Sun invented Java
Microsoft invited C#

TrollTech invents C++?? :)


By loft at Wed, 2003/07/02 - 5:00am

TrollTech invented Qt!

I have no clue of c++ but can code in Qt just fine :-)


By John at Thu, 2003/07/03 - 5:00am

No but if they employ him they can say: Someone in our Company invented C++ ;)


By Marc at Thu, 2003/07/03 - 5:00am

Heyyy Philippe, have you really ask all the good questions to Eirik Eng by phone ?
Aï aï la facture de téléphone (phone cost) ;-))


By joris at Wed, 2003/07/02 - 5:00am

Would you see a significant chance to get QT on this Systems ?
Have you already heard about theses OSs ?
Do you see a chance for QT in forseeable time ?
krgds,
Frank


By Frank at Wed, 2003/07/02 - 5:00am

As you might know, QTable is horrible broken. Is there any chance to get bugfixes for GPL users?


By Martin at Thu, 2003/07/03 - 5:00am

Hi Eirik Eng,

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.

stephane


By stephane PETITHOMME at Thu, 2003/07/03 - 5:00am

Have you had, or are you having any plans for implementing support for your signal/slot syntax directly in gcc and thus avoid the moc? Would be neat...


By Johan Thelin at Thu, 2003/07/03 - 5:00am

I think this once was an April's fools day joke by Bjarne Stroustroup...


By Klaas van Gend at Thu, 2003/07/03 - 5:00am

Pages