Qt Creator or What Qt Software wants from a Qt IDE

November 1, 2008 at 10:57 am | Posted in KDevelop | 31 Comments

Well, everybody is excited about the new IDE from Qt Software, as always there are those who instantly jump the gun and drop anything they used so far, spitting on it. There are those who are overly sceptical. Anyway, let me tell you my opinion.

First of all: Yes it would’ve been really really nice if Qt Software would’ve invested into KDevelop/KDevPlatform. However I can understand that they’d like to have full control over where the development goes to.

Having had a look at it yesterday I do think that both have a slightly different target audience, although hopefully KDevelop4 will also be able to target the audience that the Qt Creator developers have in mind (slick, fast, yet feature complete Qt IDE).

Featurewise I don’t really see anything new in it, except how the GUI has been designed. The rest of what I’ve read about current and planned features pretty much looks like the average wishlist of any IDE user.

Last but not least: Anybody who thinks KDevelop isn’t ready for C++/Qt development or is buggy never really tried KDevelop3.5. Its the most rockstable piece of KDE software I’ve seen in the last two years, it only ever crashed on me when I’ve introduced a bug while working on its codebase. Obviously KDevelop4 is a different beast, its still an unmature codebase (KDevelop3 had I think 4 years to mature to what it is right now). But still its very usable for your everyday C++ work, at least it is for me🙂

31 Comments

  1. yes, KDevelop uses KatePart which totally kicks ass, and whipes the floor with everything else I have seen (dud! doxygen documentation!).

    However, it’s hard to use. It’s slow. The UI is very … non modern. The way the help is implemented in QtCreator just kicks ass. The idea of editing 2 different files at the same file (not the same as header/source split available in kdevelop3) really kicks ass. QtCreator also background compiles your project and thus you get the real compiler errors while typing. The default shortcuts of KDevelop are really useless, I always start by changing them (please, please address this in the next release!).

    I have not seen kdevelop4, but I would like to know what of those features it has.

  2. Well, while KDevelop 3.5 hasn’t crashed on me either, I wouldn’t say it’s a perfect IDE for me. It’s too cumbersome to choose a target to compile and install, because it involves switching the active directory. Creating new classes from KDevelop is equally annoying, for much the same reason. I’m usually working files in a couple of directories, and that’s where the active directory approach falls flat.

    And I have only once been able to profile krita from within kdevelop, and never been able to debug from kdevelop. So I’m using kdevelop mostly because I can quickly open any file using Quick Open and can search and edit in many files with find-in-files, but I compile and debug from the command line.

    And I wish, I wish I could get kdevplatform to actually compile so I could see what kdevelop4 is going to look like.

  3. @eluco: I actually find KDevelop not that slow, though I don’t start it very often (i.e. it runs all the time). Background compilation might work well for small projects and on multi-core machines. But I really don’t want my good old laptop to compile kdevplatform+kdevelop because I did a small change in a header. Apart from that the c++ parser is usually good enough to show the errors without compiling🙂 About shortcuts: KDevelop3 always suffered from kate having almost all of its actions with a default shortcut, so those that make most sense are taken by kate. This has recently been adressed in KDE4 by implementing shortcut schemes, the patch of course came from a KDevelop hacker😉
    Last but not least: KDevelop3 already allows to edit different files at the same time, what it doesn’t allow is editing the same files in 2 different views at the same time – also fixed in 4.

    @Boudewijn: I’m pretty aware that KDevelop3 isn’t the perfect IDE. Not even for me and I use it every day. I can’t see any bugreports from you about the debugging problems, it works quite well for the rest of us developers. If you’ve got problems compiling kdevplatform please send them to kde-devel (or ideally kdevelop-devel, but I can understand not wanting to subscribe to yet another list).

  4. Admittedly this was fixed by the last stable release but KDevelop was possibly the most crashy IDE I’ve ever used. It would consistently crash on a few actions and as a result I found it completely unusable.

    In addition, the code completion and inline documentation never worked as well as Eclipse.

    I don’t say this to put you down as I do think its good but just to encourage you what, personally, I think is perhaps missing against some of the other IDEs.

  5. KDevelop is kind of nice, but it is massively overcomplicated. Every plugin seems to add its own toolbar buttons and the plethora of vertical text labels is a usability nightmare. However my main gripe with it is that code-completion and debugging rarely work, or require an inordinate amount of setting-up.

    Netbeans gets it right (even for C++, which isn’t its focus) – code completion mostly works out-of-the-box, as does debugging. Shame it is so much slower than its non-java counterparts.

  6. Kdevelop 4 aims much higher than just Qt++, hence creator <<< kdevelop.

    From my personal user experience with kdevelop 4 I’d say that Trolltech/Nokia is making a big mistake by trying to reinvent the wheel once again. But hey that’s their loss …

    Keep up the good work!

  7. Just a quick note: We’ve learned from the mistakes we did in KDevelop3. So basically KDevelop4 will do it all better. The toolbar currently has only a handful entries and code-completion “just works” if the buildsystem plugin can produce proper include paths for aproject. And it works great.

  8. Assuming that it is ever finished, the port of Quanta to a KDevelop4 platform will make KDevelop indispensable. That’s something QtCreator can’t say. I am really looking forward to what you guys come up with and am happy to have TWO choices for an IDE (although to be honest, I do most of my coding in vim anyway….)

  9. @apaku: Qt Creator does not compile code in background. Qt Creator features a new much improved version of my C++ front-end.

    The new front-end is designed with semantic checks and code refactoring operations in mind🙂 cool thing is – it’s going to be Open Source pretty soon, and I hope you guys will take some time and look at it. I didn’t really had much time to implement the code completion engine in Qt Creator. Actually, we did most of it in 2-3 weeks, that’s why you can clearly see that a lot of stuff is missing, but it already shows the potential of our C++ engine.

    Apaku, I don’t understand all this whining. This is going to be great for Qt, KDE, and KDevelop. The goal is to make C++ programming better by writing better *Open Source* tools.

    ciao robe

  10. That’s the usual fragmentation of the FOSS-communities. Everybody reinvents the wheel and blames others to reinvent the same wheel. Kind of sad. Especially in regard to a powerhouse like Microsoft. There is no chance to compete against Visual Studio.

    BTW is this a serious project blessed by Trolltech’s new mother-company Nokia? AFAIK Nokia contributes to Eclipse cdt say the offical Eclipse C/C++ IDE. Maybe supporting Eclipse would be a better idea for both Trolltech and the KDevelop-guya? But who cares if we can reinvent the wheel, right?

  11. Qt Creator and KDevelop have different target audiences. While KDevelop intends to be an IDE for lots of languages, Qt Creator targets _only_ Qt, not even KDE. Not to mention I have not heard of KDevelop running natively on windows as well as mac.

  12. I haven’t seen code completion and inline help work so good for C++ since I left Visual Studio behind. It’s great. This is comparable to or even better than Intellisense!
    Obviously, I’m hooked on qtcreator. If KDevelop 4 works even better than this (like NetBeans works for Java) I won’t ever look elsewhere for my C/C++ programming needs.

    2009 will be the year of OSS IDEs. Keep up the great work😀

  13. Hey Roberto. I suspected that qtcreator doesn’t really compile things, so I just ignored that comment completely🙂 It doesn’t make too much sense if the C++ parser is good, which I assume is the case with Qt Creator as you’re on board.

    I don’t think I whined about anything, I just said that having 1 or 2 more developers with KDevelop would’ve been cool, even more so if they’d be doing this during their everyday work time. Anyway, the important bit is to learn from each other improving your product. I actually do see some things in Qt Creator (for example the extended quickopen you have) which it does better than KDevelop, and I know a few things which I personally like more in KDevelop🙂

    Oh and last but not least, thanks for confirming my suspicion that the current state we can see is rather the work of a couple of weeks from “paid people”. Would’ve actually surprised me if this would’ve been in the works for a longer while😉

  14. @Lorn: KDevelop builds and executes on win32 (again) since 2 or 3 weeks. It doesn’t actually work as it crashes when opening a project, I’m working on that. Last I heard both Alex Dymo as well as Matt Rogers have used it on MacOSX.

    Apart from that, the question of the target audience is highly driven by the available plugins. If there’s a CMake and Subversion plugin for Qt Creator you can easily target KDE devs too. And I heard some rumors that CMake support is already in the works.

    Anyway, I don’t mind Qt Creator having the same target audience (or not, whatever you like). We already have like 5 C++ IDE’s that can compile and run Qt apps so another one apparently won’t hurt anyway.

  15. @Arturo: KDevelop3 already works a lot better than VS in some regards. KDevelop4 easily beats it everywhere, sorry to say that😉

    About Eclipse/CDT: Even the latest version simply doesn’t cut it for CMake based C++/Qt projects. There’s still a long way to go for that IDE, besides I personally think that trying to represent complex C++ code with a code-model written in Java is not going to be efficient on non-highend hardware.

  16. My biggest problems with Kdevelop were the UI and usability.. It requires a lot of setup to autocomplete and debug work, and for me kde3 applications are just plain ugly

    QtCreator is great because it has a very slick UI, and it works out of the box, and I don’t have to wait anymore for a good Qt4 IDE

    What is happening with Quanta in the new kdevplatform? One project I would like to start next year is writing a good, fast, lightweight, slick UI IDE for Ruby on Rails, and Quanta already had many things implemented, so it would be nice to work on it.. The only problem is that I’m very perfeccionist about UIs, and UIs interfere too much on the design of the application, so it’s generally easier to write something from zero then fixing a bad UI.

  17. @Puelo: If you want to improve UI or usability please send in bugreports or talk to us on our mailinglist. We know we are devs and often suck at ui-design. We try to make things usable at least what we think is usable.

    About Quanta: There’s Nikolaus Sams driving the php plugin, but unfortunately other than that its currently stuck. The two main developers don’t seem to have any time currently. There’s support for ruby started in the playground area and we do have two developers who would be helping you out if you want to pick up on that.

  18. Well, actually I couldn’t even get kdevelop4 to work here, so there’s no way I can submit bug reports😛

    The part of Quanta that I was interested was the HTML editor and project manager, what is not clear to me, is if features that worked on old Quanta still work on the new KDevplatform, if not, I would rather work with QtScintilla, since they already have html/ruby support, and I would only preocupy with the GUI, since UI developing it’s my main ability

  19. KDevelop4 really rocks: it has a very powerful plugin system, rock solid C++ support and some more cute features. The only thing that *maybe* still sucks is usability (but I can say I’m uncomfortable in any IDE: too many buttons, and I still mad on kate+konsole pair).

  20. @apaku: Well – I was talking about the code completion. I mean the code completion, which is the 0.0something percent of Qt Creator was done in a couple of weeks🙂 Mostly because I was still busy with the core bits of the C++ engine. By the way, Qt Creator is a lot more than that. For example, the C++ engine, the text editor (which is awesome), the project manager, the debugger, the UI, the doc integration and so on… See? that’s a lot of stuff and for sure not something you can do in a few weeks.

    ciao robe

  21. @Puelo: I have no idea in what state the HTML editor is. The project manager from Quanta is able to import old projects, but I’m not sure how much functionality of Quanta/KDE3 has been brought back into it.

  22. @Roberto: Ah, misunderstood you, sorry🙂

  23. Hello,

    a simple question: how many developers are working to build KDevelop adn how many for QT Creator? It’s simply a curiosity to see how many developers projects like these involves.

    @Puelo: why don’t help KDevelop to develop a better UI? I thing you can give a great help.

  24. As I said, I often rewrite interfaces made by other people on my work, and I must say it’s a painful solution..

    The original developers generally don’t like it and it’s also difficult, because interface design mess up with application design, and you often have to rewrite many things that doesn’t involve just UI..

    I must confess that in Nokia’s position I’ would also start from scratch, sorry

  25. @Puelo: That shows that you don’t really have a clue what writing an IDE means. It’s max. 10% GUI(apart from the editor itself), the most complicated parts are integration with build-systems, language-support, debugger, etc.

    You’ve got to be quite stupid to rewrite an IDE ‘only’ because of the GUI..

  26. Actually user interface is not only the windows, icons and menus of your software

    An interface is all interaction that happens between the user and the software itself. The autocompleter, the debugger, how the documentation is showed to the user, even compilation progress and how errors are presented, it’s all interface, EVERY interaction between you and the software it’s the interface.

    A software that doesn’t interact well with humans, simply doesn’t have any utility. And making a software with good human interaction, means knowing cognetics, ergnonomy, etc. If it were simple, we wouldn’t have so many interfaces that just plain suck

    Interface design should be made BEFORE the software is coded, not after. You will never get an optimal result adapting software that wasnt well designed from start.

    Besides that, many of these things you said are avaiable as libraries. For language support, you have for example Scintilla.

    In a optimal situation, developers should work WITH designers and interface developers together, since the beginning of the development… Or at least program everything in libraries so interface developers could make interfaces on top of it

  27. A well designed application, especially when written with Qt, can be relatively easily be “skinned” with a totally different user-interface. I think this is somewhat the case with KDevelop. QScintilla is merely an editor, the counterpart to kate which we are using. Language support is a lot more than that…

    Just by the way I think the KDevelop4 user-interface anyway isn’t broken at all. It just needs a bit of polishing. Our main problems is missing features..

  28. oh man, i did not read anything i wrote.. User interface it’s not about theming or beauty, it’s about human interaction, and how do you use the software, not only how it looks..

    A polished look sure can help, but it’s something very superficial.. I would say looks it’s only 10% of usability, because of the psicological effect it causes (see apple users)

    You can have a wonderfully beautiful application, but if it’s cumbersome to work with, you will hate it.. And the “how it works”, in contrary of the “how it looks”, it’s not something a foreign developer can arrive on a project and start changing it

    .

    I don’t know KDevelop4, and I tried several times to run it, but it never worked.. I tried to compile it on my Arch Linux with kdemod 4.1.2, but it didn’t work, so I was waiting it be finished to try it again.. Also, last months, I searched all the web for news about it (i was looking desperately for a qt4 ide), but was unable to find something …

    .

    well, something I think I would be helpful, was if you send me some screenshots of a working Kdevelop4, so I could do some usability heuristics analisys and send it back

  29. I don’t think that David was talking about themes. I think he was talking about the actual interface (read: Designer).

  30. let me express better.. changing the position and the “skin” of things it’s just 10% of interaction design… the whole thing is much more deeper..

    But, again, I never saw kdevelop4, and it might be good, because they say it has a focus, and they are considering usability as a key feature, the project just need more visibility

  31. Lets put in my two cents after having used both KDE 3.5 and Qt developer (the feature-limited FOSS version, not the paying version).

    People who say that KDE is more ambitious than Qt Creator are right.

    On the other hand, Qt Creator has a polish, absence of bugs, and useability that I have never seen in KDE products. Sorry but there it is.

    KDevelop is a heroic effort but it’s trying so desperately to include everything including the kitchen sink (well … make that two kitchen sinks so that people have Choice !) that it never stops to make simple basic functionality work flawlessly. I’ve waited for years for KDevelop to get to the point where it’s able to replace MSVC and it still hasn’t quite happened. Sorry about that.

    Just try to create a new project under KDE, one that doesn’t use any KDE or GUI stuff, and import a slew of existing C++ files and headers. KDE makes it awkward to do that for someone not used to its quirks. Earlier versions of KDevelop 3.X messed up the makefile generation, which made me turn back to MSVC as the better development environment. Later versions make it awkward to get the makefiles done and continued to be unhelpful when I just wanted to lump some files together in a project, have a makefile generated for them, and compile.

    Qt let me do all that in 5 minutes without once having to look at a manual or having to open Help. and everything worked first time. I’ve never seen anything like that with KDevelop.

    That’s a gripe I often have with FOSS applications. Too much ambition, too much of a “work in progress”, too much “read the manual or you can’t work with it” (if there is a manual at all) and a lack of polish that leaves rough spots where they irritate.

    As to “reinventing the wheel”, Qt Creator provides a high-quality wheel that does just one thing and but it well and doesn’t get in the way. KDevelop tries to provide an enormous array of functionality but is a hassle to work with. Qt Creator works both under Windows and Linux. KDE doesn’t.

    Qt Creator lets you create your interface, test it, drops code for it, and seamlessly allows you to attach whatever C++ commandline-only app you had to the GUI. It’s simply a production-quality tool that allows you to be productive from the start.

    If there is any duplication with KDE, Qt creator’s polish and quality makes it more than worthwhile to “reinvent the wheel”.


Sorry, the comment form is closed at this time.

Blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: