NewsForge: KDevelop vs Microsoft VS.Net

NewForge has a side by side comparison of KDevelop and Microsoft Visual Studio .Net. The article compares general application capabilities in the areas of UI, editing, compiling, frameworks, integration, and documentation. The result: "KDevelop is more feature-rich than Microsoft's product... if Visual Studio existed as a native Linux application? I'd still rather use KDevelop."

The KDevelop team has been doing some amazing work. It's nice to start seeing this application get the recognition it deserves. Great job guys!

Dot Categories: 

Comments

by Andre (not verified)

I think Kdevelop for Windows + qt4 and the GNU toolchain could be a real blow to Microsoft's Visual Studio.

by Corbin (not verified)

I think MS's Visual Studio's strongest point is support for .Net. I have a copy of VS.Net 2003 (edu edition) for school because I have a class on VS (its on using VS.Net to write VB and C++, I just want it for the C++ part).

by Brain (not verified)

I think MS Visual Studio + Visal Assist X still beats Kdevelop.
Without VA KDevelop is better.
I'm a linux guy, but at work I develop a cross platform application, I work under Linux the others under MSVC+VA, and I have to admit their editor is better.

Brain

by Alexander Dymo (not verified)

Ok, I don't use VA but I've looked at their web page.
VA: "Suggestions and Acronyms"
KDevelop: Abbreviations (both manual and automatic), warning! automatic is not enabled by default

VA: "Enhanced Syntax Coloring"
IIRC modern kate editor part does exactly the same.

VA: "Improved Intellisense"
Yes, code completion in KDevelop needs more work.

VA: "Underlining of spelling mistakes"
You can spell check using kate editor part spellcheck plugin (but IIRC it will not highlight errors).

And finally:
VA is for 99$
KDevelop is for 0$ ;)

by Spy Hunter (not verified)

Code completion is a killer feature. Coding without it (or with an inferior version) is painful after you've gotten used to it. That is my "most wanted" feature in an IDE. Excellent fast context-sensitive documentation search and code browsing would be a close second, debugging would be third, and code refactoring would be fourth. Project management, source control integration, and GUI design are somewhere underneath those.

I haven't used KDevelop lately, but I am under the impression that code completion and debugging are generally inferior to Visual Studio. That means for me Visual Studio is still better. If just those two features were improved, I would probably prefer KDevelop.

Hopefully instead of just playing catch-up with visual studio, KDevelop can leapfrog ahead. For example, if KDevelop added a "rewind" capability to its debugger (I guess it would have to be added to GDB first) then that would make it way better than Visual Studio. It doesn't seem like it would be very hard to do, if you recorded checkpoints in the program's execution (though it might take a lot of memory).

by brockers (not verified)

While KDevelop (through GDB) is not as nice a debugger as MVS.Net; .Net is not nearly as nice a API to develop for. Anyone I know who has worked on Qt and MFC or .Net will pick Qt. It's really a best-of-bread API. And try GUI application development in VS and Qt Designer; its not even close. KDevelops overall feel is much nicer than VS, and I have never had problems with its code completion.

Bobby

by Birdy (not verified)

One can also program with Qt and VS ... (best of two worlds?)
But code completion _is_ inferior. It only works for libraries one extra makes a database for. In VS it simply works without doing extra configuration.
One really annoying thing in KDevelop is that that it still doesn't remeber it's GUI-settings :-(
On the other side bookmarks in VS are a joke - simply unusable.
And one tiny little bonus in VS's debugger: if a breakpoint is reached, the IDE-windows comes to the front. KDevelop stays in the background forever until the developer notices, that a breakpoint was hit.

by Spy Hunter (not verified)

While MFC is of course horrible, I have to say that .NET is not too bad. Using C# and Windows Forms is a decent way to make a small Windows application. For the most part, the APIs are simple and consistent. Often you can code up a new feature using only Intellisense, without ever going into the documentation, because the names of classes and functions are easy to figure out and make sense. C# is nice because of properties, bounds checking, and garbage collection. Performance has not been an issue at all for me.

The biggest problem with .NET is probably that it is incomplete; large parts of the Win32 API are not wrapped with nice .NET classes, meaning that you have to fall back to ugly MFC type stuff to do many important things, made even harder by the fact that you have to translate from C to C#. Also, some features common in modern applications are simply not available in Windows Forms, such as docking toolbars. Another problem is that the framework is not Model-View-Controller oriented; in fact it almost seems to discourage a MVC design, especially when using the GUI designer.

So QT is probably still much better when developing large, performance-critical applications with complex UIs. But don't discount .NET so easily. In fact, this summer Windows Forms 2.0 is adding more functions including docking toolbars, and C# 2.0 is adding generics, which means that C++'s only real remaining advantages are slightly better performance by default and possibly tighter manual memory management.

by Jos (not verified)

Even more of a killer feature is live syntax checking. Eclipse does this and it really convenient. While your typing, syntax is checked and incorrect code highlighted. In fact more is checked. Unknown variables and classes are also highlighted. This really helps to speed up coding because you don't have compile before you see all the obvious errors.

Also if you remove a function from a class, immediately an error icon is shown on all files using that function.

Furthermore, code is compiled in the background and the program preloaded. This means that test launches of the program are very fast (for java).

Implementing such features are amazing and the Eclipse people did an excellent job. To achieve such a feat for C++ code is more difficult than for Java because the semantics are less strict. (e.g. every public java class has it's own file and there are no headers, only .java files).

by Richard Dale (not verified)

"Even more of a killer feature is live syntax checking. Eclipse does this and it really convenient. While your typing, syntax is checked and incorrect code highlighted. "

KDevelop has this for C++

by Alexander Dymo (not verified)

And for pascal.

by Andreas Pagel (not verified)

""Even more of a killer feature is live syntax checking. Eclipse does this and it really convenient. While your typing, syntax is checked and incorrect code highlighted. "

KDevelop has this for C++"

Has it? I only started using KDevelop last weekend, but so far it seems rather inferior to Eclipse for Java. I've read so much praise for KDevelop that I suspect I must be missing something. How do I enable this feature?

by Richard Dale (not verified)

KDevelop is much better for C++ than it is for Java. Maybe use Eclipse for Java coding, and KDevelop for other languages or for very small Java projects.

Start typing some C++ and you should see a red icon with a cross in it when the currently line is syntactically invalid. I don't think you have to turn the feature on.

by Andreas Pagel (not verified)

Thanks for the reply. I realise I wasn't clear in my previous message - I meant that I had started to use KDevelop for C++, and was comparing it to Eclipse for Java.

I see now that the syntax checking does work, just that it's not as comprehensive as Eclipse's. I tried entering an undefined variable and nothing happened (Eclipse would underline it), but when I enter random rubbish the red cross icon does appear.

Andreas.

by Alexander Dymo (not verified)

>> Excellent fast context-sensitive documentation search and code browsing would be a close second
Well, I think that this is the area where KDevelop is one of the best IDEs. Our quick open functions and KDevelop Assistant are very useful. Of course, you should have documentation installed so KDevelop could find it (it does that automatically for qt/kde/gtk/gnome/other devhelp docs).

by mukaila hassan (not verified)

i am deaf from nigeria very pleasure to join with you, i want to read something from you like computer engineering , exchange micrsoft, hardware engineering and others. i am student of hardware for two months will be finish for six months till i hear from you thanks. please send me p.o. box 458 kaduna.

by Alexander Dymo (not verified)

Well, MS has .NET, we have GTK, Qt, KDE, GNOME, whatever? The importance of .NET on Unix is still questionable. There are many equal technologies. If c# and mono will get more attention, I'm sure somebody will write a KDevelop language support plugin for c#/mono.

by Alexander Dymo (not verified)

I'd prefer KDevelop for Windows + Qt4 + MinGW - GNU autotools ;) Same for Linux though.

by brockers (not verified)

It may be a blow to Microsoft Visual Studio but it will almost certainly not help Linux/BSD adoption. I know of at least two developers who work on KDE/Qt on Linux because Qt is free and they have access to a great Application Development Environment for nothing (KDevelop)... but they have have told my outright that "if KDE, KDevelop,and Qt were available on Windows I wouldn't be running Linux anymore." That is why these KDE-to-Windows ports scare the daylights out of me.

Bobby

by David (not verified)

Well quite. If you're porting this stuff to Windows, what's the point in an alternative platform? Worse, people are porting desktop applications to a platform where they don't fit, duplicate an awful lot of technology, don't integrate very well and are on a platform where one company gets to dictate to you through technology what you can and cannot use to develop those applications.

by JohnFlux (not verified)

Also as a developer, am I going to want to work on a product that is mainly used by windows users (if that happens), when I'm rooting for the Linux team?

by Pat (not verified)

does anyone knows if these features are or will be available in Kdevelop or is that a GDB issue?
http://programming.newsforge.com/comments.pl?sid=45994&cid=110824

Pat

by praseodymium (not verified)

The guy who wrote the article seems a bit stupid to me: he tries to hide all project filenames and code in his screenshot - but leaves the titlebar with the full path of the file in it just as is.
See http://www.newsforge.com/blob.pl?id=2c6a5a6f8a3e42a889d8364f5d729e21

by Andras Mantia (not verified)

And don't loose your faith because of the comments at Newsforge. But the debugger can be improved indeed. It does some strange things from time to time that I cannot understand...

by Richard Dale (not verified)

"And don't loose your faith because of the comments at Newsforge."

Yes, I've never come across quite such rude and un-called for comments. I hope Olaf Piesche wasn't put off by all the personal attacks, and I'd like to thank him for doing an interesting and fun review.

I started off complaining about rudeness, but ended up calling one of those creeps a 'Fascist'. I suppose the best tactic is just to ignore them.

by Orion (not verified)

Hmmmm. I read the comments at News Forge, and I have to say, I think most were right on. It was a pretty lame review. And as far as calling one of the creeps a facist, I'm not sure you understand the meaning of the word. It was clear to me that the News Forge crowd, a decisivly pro-linux group, thought that the review lacked any real effort. I don't think demanding integrity and honesty in comparing Linux based applications to similar apps in Windows constitutes facism. On the other hand, trying to suppress such dissent, which your comments at News Forge seemed to be trying to do, might be construed as such. I'm not sure I would be proud of calling the commenter a fascist, if I were you. Especially considering that you threw that out as "the last word".

by cm (not verified)

> I'm not sure I would be proud of calling the commenter a fascist, if I were you.

I'm pretty sure he isn't. Isn't that *why* he stopped commenting?

by ac (not verified)

Seems like you don't know Godwin's Law (http://en.wikipedia.org/wiki/Godwin's_law)

by Saem (not verified)

KDevelop is wonderful, it truly is. But it is not any where close to MS VS.NET. The tools that come with VS are insanely great and not to mention the coding time feedback and assistance (online error catching and intellisense) is spectacular. I won't get into compiler feed back since this isn't KDE's fault. Kdevelop is definitely a very good IDE, but MS VS.Net is basically the best IDE ever made for C/C++/VB/C#, with the only draw back being that it's MS specific.

For Java, nothing touches JetBrain's IntelliJ, NOTHING! The feedback, error checking, debugging, refactoring, it's insanely great! Not to mention how mind bogglingly fast that thing is.

Komodo is probably best for Python and Perl.

While Zend ekes them out for PHP.

If you give IDEs an honest chance and forget the political baggage for a second, then you'll agree, for the most part. This isn't categorical superiority, merely overall.

That doesn't detract from Kdevelop and say Eric, no, they're great, they're just against some very strong and established competition. Not only that, but they're getting there and in some cases getting further! I love them, but let's be honest, please!

by Amilcar Lucas (not verified)

> online error catching
On KDevelop it's called "Problem reporter". And it works.

> intellisense
On KDevelop it's called "Code completion". It works since KDevelop 3.0 but it has been very improved in KDevelop HEAD

Regards
Amilcar Lucas

by Saem (not verified)

MS' is superior that was my whole point! So it may have something like it, doesn't mean it's anywhere as good.

by randomidiot (not verified)

You are far more offensive... look at your title: "... pure silliness"

by Leo S (not verified)

> online error catching

Am I missing something? You mean it will point out errors as you type, like Eclipse does? I work with Visual studio 2003 all day, but I've never seen this. And frankly, intellisense is not impressive. It likes to tell me that functions and variables are available when they are not, or just randomly refuse to show me anything, even though the code compiles cleanly.

Maybe I've been spoiled by Eclipse, but VS.NET is not all that great in my experience.

by Leo S (not verified)

In addition:

- Refactoring with VS.NET sucks. And by sucks I mean, its impossible.
- VS.NET likes to get confused about its own resource files that it generated just moments before from one of its own templates. It will absolutely refuse to open them. This required a reinstall (which takes at least an hour or two).
- The user interface is slow, and will hang for a few seconds once in a while for absolutely no reason (ok, I was trying to scroll down in my code).
- Keyboard shortcuts are inconsistent. Sometimes you need an emacesque chord (CTRL-K CTRL-C to comment), sometimes a simple shortcut (CTRL-F5), and sometimes 3 keys (CTRL-SHIFT-B).
- Which reminds me, the comment function is incredibly stupid. If you select a block of code, and hit CTRL-K CTRL-C to comment, it will sometimes comment it with /* */ and sometimes with // on every line. This seems to happen randomly. Trying to uncomment this block of code will only work if it was commented with //. The Uncomment command is blissfully unaware of the /* */ that the Comment command just added.

Ahh. now I feel better.. let all the rage out.... :)

by Leo S (not verified)

To be fair, I just fired up KDevelop to see if I can't find something to bitch about. Sure enough, I found something.

Why are there tabs for CVS and Subversion, as well as a context menu item for Perforce, even though I am not using any of these, nor do I even have them installed?

Also, code completion is quite weak. But the problem reporter rocks!

by Leo S (not verified)

Just noticed, the tabs for CVS and Subversion and Perforce are not there in 3.2 if I don't use those VCS's. Nice.

by Saem (not verified)

The interface has some quibbles, though I don't encounter much slowness. But perhaps that's just my machine -- PIII 866 with 512MB RAM. ;)

In anycase, C++ intellisense is a very hard problem, but I haven't heard of folks having half the issues you're talking about, things tend to be pretty flawless so long as you exercise some caution, you have to, because well C++ is crap to parse live.

Regardless, VS.NET is still the C++ IDE.

by Leo S (not verified)

My work machine is a P4 1.7GHz w/ 512MB ram. VS.NET sometimes is quite slow to respond. Many people say the same, VS6 was fine.

My issues with Intellisense are quite real and quite repeatable, also on my colleagues laptop. Intellisense is good, better than KDevelop's code completion, but it's not great.

by Antoine (not verified)

Humm...

CTRL-K CTRL-C Comments with // if you select all full lines, and with /* */ if your selection starts somewhere and ends somewhere not selecting the FULL lines. There is no random there.

For the uncommenting, if you make the SAME selection that you used to apply the comment, CTRL-K CTRL-U works great.

Not knowing how to use a feature does not justify bitching about it. Maybe if you were to code such a feature you'd do it better? I find the way it works very reasonable and very good, if you understand how to use it.

As for the shortcut-key stle, most of them are the same as in previous versions. What if they'd keep changing the shortcuts every version to keep it consistent, would that be better? Oh, but then you'd be complaining like "The shortcuts keeps changing in each versions! How Stupid!". If you don't like the keys, you can customize all of them to something you like better anyway.

My two cents...

by Yannik Klich (not verified)

I absolutely agree.
Only people who've never used Eclipse like VS 2003. VS's intellisense doesn't work well 50% of the time. Trying to find references to objects is a real pain! You have to learn reg.exp and do a text search to find anything. Just try Control-click on any var in Eclipse and you will see the power of a real dev environment :). And its free! And it easy to add functionality like unit test support!
3 Cheers for Eclipse!

I have to use VS too, and in my opinion, VS is crap and expencive.

Yannik Klich

by Stefan Popov (not verified)

I have to disagree here
Although Eclipse looks very promising, it is not even near VS.NET 2003 + Whole tomato software's Visual Assist. Eclipse has a more robust auto complete than Visual Assist, however this tends to be inconviniet for C++ - It is usually not possible to parse the code while the programmer is wrting it - it won't be a valid C++ code. And it is not possible to know members of template classes (though it would be possible to deduce them from the template instatiations). Visual assist makes a lot of heuristics, but manages in > 90% to give me the proper sugggestion as I type. On the other hand, CDT's (2.x) code completion does not work for most of those cases.
And eclipse is too slow (Athlon XP 3.2 Ghz 1Gb of ram) under linux, and unpleasent slow under windows. So I prefer to stick with VS.NET for windows and Kdevelop for linux.
Kdevelop is nicer than Eclipse in the sence that it is much faster, I can rearenge the keyboard shortcuts in no time (Great work for that) and from my experience it is like some alpha build of Visual Studio 5, so I feel convinient withg it. VS still rocks and I doubt KDevelop will ever catch up - quality software requires money, to pay all those programmers that have to finish the nasty details of an end-user product. And KDevelop's funding is in my opinion very limited compared to VS's one.
But anyway - keep up the good work. Kdevelop is in my opinion on second place in the C++ IDE rank list - after VS - and is one of the few products for linux that I like

Stefan Popov

by Shaun Reich (not verified)

You're comparing VS.NET to KDevelop? Compare Mono to it instead, it's much closer, considering it's actually managed. And who uses managed C++ anyways?? It's got to be one of the most useless and annoying bindings ever.

by me (not verified)

hi!

I'm using kdevelop at university for some c++/qt software. Except for the occasional crash, I like it very much. I just have one question:

How can I rename classes? Right now, I have to rename the cpp and h on disk and search and replace the class name, then change the other file's includes etc. Isn't there an option for that in KDevelop?

thanks!

by frus (not verified)

If only someone bothered to fix the memory leaks and made sure the features work reliably - meaning no random crashes and taking a machine with 1Gb Ram down. I think KDevelop suffers from bloat of features aggravated by lack of bug fixing.

by Birdy (not verified)

For me KDevelop is more stable than VS 2002...

by Amilcar (not verified)

Use HEAD and you'll see the bug fixes comming in.
If you do not update the bugs wont go away.

by Den (not verified)

I've been using KDevelop at work for 18 months and i *Hate* it. Every time a new version comes out, they introduce more bugs than they fix. With my current version I can't add or remove files from the project *duh*????

by Kuba Ober (not verified)

Well, I've seen that problem too, although I've always attributed it to the fact that I'm using a symlinked working copy (via aegis).

Anyway, I've added scripts to aegis.conf so that whenever I add/remove/move file via aegis, the project.kdevelop.filelist gets modified too. Then I just reopen the project in kdevelop and that's it. Once you get used to things it's doesn't do much harm, especially since I run the aegis stuff via commandline anyway (http://aegis.sf.net).

I was actually hoping to fix those and other things for the SoC, but I didn't hear back yet.

Cheers, Kuba

by Dave Maurer (not verified)

I use .NET and Codewright at work for custom code development. The only reason I use .NET is to build .DLLs. I use Codewright because that's what they purchased for a IDE to use with gcc running under Cygwin. At home I use KDevelop, and I consider it to be better than both. I love it!!!!

My two cents:

.NET is too compilcated to setup the project build environment properly. The menu layout is horrible, and file management within a project sucks. Who decided to track project files based off the current project directory instead of absolute links? Or even re-linking the files in the project if the project file moves or when I restart? And why doesn't the built in debugger work properly, if at all, when I've got VB, C++, and C# code in the same app?

Codewright is a good editor better than .NET, but lacks the nice build environment features of KDevelop. Plus it's now being EOLed by Borland. If I had a second PC, I'd slap on Linux w/KDevelop for my gcc compiled code. It also lacks a debugger. I'd also like to try KDevelop on QT-Win32.

by bill (not verified)

Are you kidding about Kdevelop? It doesn't even work. I've never got passed the am-prog-lib tool error