News emerged recently that Qt Software (formerly Trolltech) were working on their first IDE
for Qt, code named Project Greenhouse. Today saw the release of the
first technical preview under the name Qt Creator. The initial
release is binary only, and under the terms of the Qt preview license,
but the final release will be released with source code under a GPL
compatible license. The initial release is available for Linux, Mac OS
X and MS Windows. Read on for a users review.

The Greenhouse project began as a research project within Trolltech.
We are told that the design is entirely plugin based, suggesting that
ultimately we will have the ability to add support for new languages,
debuggers etc. The documentation suggests a plugin for the CMake build
system used by KDE is in the works. At the moment things are a little
too bare for the benefits of this approach to be readily apparent, but
it is a sensible approach to take when developing an IDE.

Unusually for the dot, I have decided to look at the Windows install of
Qt Creator. The reason I have chosen to do this is that I have tried to
get applications working with the open source Qt version for Windows
before with little success, it has always been more trouble than I have
time for. Hopefully the combined Qt+IDE+Mingw package will make this
a pretty painless experience, which will bode well for future work on
KDE on the windows platform.

The initial download for Windows is pretty huge, over 200MB, however
since this includes the compiler and run time environment as well as
Qt and the IDE itself that is something I can live with. The installer
is a standard windows-style setup.exe and is pretty much idiot proof
(if rather slow).

The inital screen you see when running the IDE is very bare in
comparison to other IDEs - a basic page with a button to get to the
getting started guide. There is a sidebar on the left with some pretty
self-explanatory buttons and a menu bar but unusually there is no
toolbar at all, let alone the common sight of an overwhelming
collections of icons.

The getting started guide itself is pretty weak right now, and is
definitely alpha quality. The switch from a very clean initial view
to the fairly ropey tutorial with a massive index of the entire Qt
documentation on the left is jarring. Rather than cheating by reading
the docs, let's just dive right in and write something, how hard can
it be?

I will begin with the obvious - create a new project. We have a number
of choices of project type, but let's go with a GUI application. I
note here that the dialog starts as an OK/Cancel style dialog then
seems to change to a wizard, this could do with some work. I will call
the project DotDemo. I have chosen to include the Webkit module as well
as the basic Qt modules, as these will be required for what I want
this project to do. The final screen of the wizard is for project
management, but is totally disabled and the file names are off the
edge of the dialog - fair enough, this is alpha code.

Now we have got a basic project, let's see if the IDE provided shell will
build on its own. Clicking the big 'Build&Run' button on the left
brings up the build settings rather than actually building or
running, I discovered that you need to use the 'Play' arrow button
there instead. The result is a small progress bar in the sidebar
saying building. The resulting app is pretty unimpressive, but the
generated code has built and run successfully - a good start.

Double clicking the mainwindow.ui file in the file view brings up the
familiar sight of Designer embedded in the IDE. Since my usual demo
is a browser, I have dragged a QWebView into the view and added a
layout. This works as expected, and a click of the 'Play' button later
I have a working minimal browser application. Not bad since I haven't
written any C++ yet!

At the moment, Qt Creator seems to have quite a few rough edges in the
UI department and more missing features than I can count, but this is
looking like it is something worth watching. This is the first time
I have got the open source version of Qt on Windows to do anything
useful despite having previously got working code from Visual C++,
and having lots of experience developing with Qt on Linux. Qt Creator
certainly looks like it could lower the bar for Qt development on
Windows, and if the CMake suppport mentioned in the documentation is
added then this could be a useful tool for KDE developers.

Comments

"Too bad Qt Software didn't decide to push KDevelop instead of reinventing the wheel. Now we have two "beta" IDEs instead of one "finished" powerful one :-("

Yeah, competition sucks. Instead of me going to the grocery store and having a choice of so many ketchups, it would be nice if everyone just worked together and contributed to a "super" ketchup.
Look, I know collaboration has its value as well, and I'm not saying your point is completely without merit, but I'm not going to complain when another person contributes their own version of a product, especially if it is an established, reputable software company. I've used KDevelop for a while, but now I'm using Qt Creator all the time. Does that mean the latter is inherently better than the former? No, but I think the fact that myself and others use it means it has some value to some people.

Unfortunately, the most important questions haven't been answered in their FAQ:

- Is Qt Creator a replacement for KDevelop? Why didn't you rather improve KDevPlatform in order to reach your objectives for Qt Creator?

- Will Qt Creator be managed as a true open source project inviting contributions and code exchange with external developers, or will it stay under the tight grip of Qt Software employees?

Yeah, the interface seems to be reasonably slick. But the duplication of effort and NIH-ilisms that are happening on the Qt side these days are worrying. They seem to come up with replacements for widely used KDE software all of the time recently, instead of joining those communities and bending the software to their needs.

Really, if we've already got a code-highlighting text editor part, a powerful language framework, a base platform for creating custom IDE user interfaces, and whatnot, why do they need to whip up all of this by themselves? Just so that it's Qt-only and not depending on KDE (which is just as cross-platform as Qt itself is)?

I mean, c'mon Qt people, this isn't a library that needs to be dual-licensed. There's no reason to make a Nokia-only IDE when we could be working together on a single lightweight Qt/C++/cross-platform solution with a shared code base. Guess I just don't get it.

What I want to say is not that I worry about KDevelop losing mindshare to other IDEs (if those are indeed working better, power to them). I just don't like the current trend that more and more of our software stack moves from community governance to a single controlling entity, replacing existing openly-developed components with a closed in-house development (even if the sources are published as Free Software afterwards).

For Qt as a library, that model makes a lot of sense and works very well in most cases. For applications further up in the stack, it unnecessarily prevents cooperation between similar projects where they could share libraries or even merge altogether. I hope the Qt Software department pays attention to governance issues and keeps an eye on integration with existing software rather than creating new base technology for the fun of it.

Qt Software looks into ways how to further open up the develop process to external contributors where it makes sense. I too would like to see this for Qt Creator. There's more room on the in-side, too, we do have open positions on all engineering sites. Want to hack upstream on Qt? Don't whine, come and join us.

However, there's no black and white. What you call "openly-developed components" very often means "governed by unwritten rules", or "not governed at all". In some cases when people say this it simply means "governed by me". This happens e.g. when a few KHTML hackers argue for basing the entire KDE web experience on their work instead of the work of the greater webkit community.

All successful open source projects are governed by strong maintainers with a clear vision, group or individuals. You can't just go ahead and submit stuff upstream. Projects where you can do that are in a state of bit rot, or feature rot, or both.

About KDevelop: we are the biggest commercial supporter of KDevelop, and we have core KDevelop contributors on our team. There's was room for two editors before, there will be room for two IDEs. Seriously, I do believe we will see code sharing on the refactoring/c++-engine side.

"Seriously, I do believe we will see code sharing on the refactoring/c++-engine side."

This is good to hear as this is all I pretty much require out of an IDE. Otherwise I'm happy to use Kate. Not knocking the integrated debugging, designer, qmake/cmake manager I'm just not interested in them. I'm happy to open up new applications and I seriously doubt that a cmake manager will ever be as easy as editing CMakeLists.txt (at least for someone who already knows cmake OK, like me), let alone be complete.

The fact that Java editors like Eclipse have absolutely awesome parsers is actually my favorite "feature" of Java. Would be great if the C++ parsers and refactorers approached that level of completeness. Its the main reason I look forward to KDevelop 4, since I understand they've done a lot of work with theirs.

"About KDevelop: we are the biggest commercial supporter of KDevelop, and we have core KDevelop contributors on our team."

You don't have active KDevelop contributors in your rows. This isn't a problem to me at all, but it is a fact.

"There was room for two editors before, there will be room for two IDEs. Seriously, I do believe we will see code sharing on the refactoring/c++-engine side."
First useful refactoring will land in KDevelop4 very soon, and the only way to share code would be making Qt Creator a KDevPlatform based application.. which unfortunately is not going to happen(Else Qt Creator would not exist in the first place). This is a lot of very complex work, and I would _love_ to see code-sharing here.

The more complicated part is not the parser itself, but what you do with the data after the parser processed it. In KDevelop we put it into a language-independent structure called DUChain, which is a part of KDevPlatform. You cannot share code that works on that structure with code that works on another structure, because there just isn't anything to share in that case.

Honestly, neither KDevelop nor Qt creator cannot copete with the last Eclipse CDT 5 release. Eclipse+CDT might not have been the best choice in the past, but now with version 5.0 it beats every other Open Source IDE I know in terms of C++ support. Trolltech should invest resources into Eclipse integration of Qt, joining their community reusing all the great infrastructure already existing instead of reinventing the wheel another time.

...Troll, yes, and a lame one. Why should I care that much which language the IDE I use is written in? I care about productivity. With Java 1.6, Java apps are reasonably fast. The memory footprint might not be optimal, but honestly, just buy another GB of RAM, it's dead-cheap these days. Using another editor or IDE just because it saves you some bucks for hardware is stupid, at least when you make your money in software development. The hardware upgrade pays itself in few days or even hours.

There is this thing called "marginal utility". The effective price of Eclipse is higher because it uses Java which has a higher footprint. For most people in Eclipse's target group, that doesn't make a difference. But it does exist and will cause some people _at_the_margin_ to look for alternatives.

Even with the extreme ease of opening up a case, risking a static mishap, and installing new RAM, there is still a cost to the user. Even if you came over and did it for him, there is still a cost to the user. Not a cost to use, but a cost to him. If his total cost reaches a certain threshold, then he will look for alternatives.

I'm just wondring aloud: where is the source code? :)
First, I prefer to install binaries from Debian/Ubuntu repositories *or* build the binaries myself (not only me and not only Debian/Ubuntu, that's a common practice)
Second, most of us are thinking of Trolltech as on 'open source company' as soon as Qt is open.

I hope that the Trolls just forgot to copypaste the link to svn/tgz on the website.

From the first paragraph of the article:
"The initial release is binary only, and under the terms of the Qt preview license, but the final release will be released with source code under a GPL compatible license."

I've just tried it a bit now and it I already like it! I have not done any Qt/kde development since 2.x and it didn't take long for me to do a little test app thanks to the intellisense. I'm mostly using Visual Studio nowadays together with vim for repetitive tasks.

In my slot I wrote "ui.m_lst." and it auto corrected it to "ui.m_lst->". Sweet!

There are lots of stuff that needs to be done in order to make it more usable but I do believe you are on the right track!

While writing Qt4 based software at work on an XP I used MS VC 6.0. Adequate but buggy at times. I had tried Eclipse but it never worked well for me as a Qt4 dev tool. KDevelop was, for me, even less useful than Eclipse.

On Linux I tried a couple Qt specific tools like QDevelop but wasn't satisfied with their approach, so I settled on using Kate and Kdbg. Kate has pseudo code competition and no library lookup, but it made coding easy and fast.

I look forward to playing with this new and much needed tool. I can see now that it will replace MSVC on my VISTA side and become my Qt4 dev tool on my Linux side.

After I migrated from Gnome to KDE4 because of it awesomeness, and started programming in Qt4 and discovered it's awesomeness too, I entered a never ending quest for finding a good Qt IDE

KDevelop seemed to be nice, but I actually hate kde3 interfaces because they are all so much cluttered (no offences people), and tried installing KDevelop4 several times, but never got to work

Newer versions of Eclipse CDT have excelent support for c++, but it's slow, it's java, looks very ugly on my kde4 setup and it's horrible on small screens like my Eee

Never got Eduiuk to work correctely, and never could pronounce it correctely too

Got MonkeyStudio to work, but it has a very confusing interface, and very cluttered too, see, I'm a user interface programmer, so I just hate to use bad implemented interfaces

The last I tried was QDevelop, it's very simple, it's code-complete is very limited, but it's acceptable, because it's small, fast and runs well on my Eee

So I always had a horrible experience with Qt IDEs, the only reason I continued developing on it it's because the awesomeness of the toolkit (GraphicsView just rules for Zoomable User Interfaces), and this Greenhouse IDE it's for me, like someone sad, a godsend, it's easy to use, it has a very nice interface, a very nice debugger, a very nice and fast "fast switch"* and it has a plus: a beautiful logo! Fantastic!

*i'm being redundant because Netbeans actually have a "fast switch" that's slow as hell

Well, I see as a good thing, for me it's the first really good development tool for Qt framework, so for me it's great news for open source developers

This is just my opinion, don't get mad at me if you are a developer of one those other IDEs for Qt, I'm not saying that they are bad, I'm just saying that they didn't work for me, while Qt Creator works very well

Since you apparently are not aware, the top poster is Derek Kite, who did the commit digest for a large chunk of its existence, and has hence contributed a great deal of his time to keeping the user community up-to-date with what's
happening in development.

I respect the work that both Derek and QT have done for open source greatly,
but find all these flames a bit worrying.

I'll try to balance my personal view a bit here.

I come to the dot to read about kde development, new features, programs and all the coolness around it. As for the core principles of the dot i can make an educated guess, but i don't really know what they are. So its hard to see whether this article is inside or outside its scope.

As far as my personal interest goes i can see this new QT IDE fit in nicely. I however can see the merit of a more "conservative" standpoint as well. We really don't want to turn the dot into a well formatted advertising page.

In the end it is probably quite hard to draw the line,
And there are many arguments to defend either position,
But i must admit i find it hard to be offended by this particular article.