Why open-source software development environments are crap

It seems that our little Anti-Agile spat generated a fair amount of traffic for both Alec and I. Alec’s excellent blog attracted a record number of visitors. Quite right too. Evidently Mitch’s comment about opinion being more of a draw than painstakingly researched and presented essays was right. Controversy drives up the ratings. I say “hey ho!” let’s go with the most direct way to get things going – Alec baiting. Alec, as you all must know now (since you’ve been to his blog now), is not only an Agile band-wagoneer but a bit of an aficionado of obscure and marginal operating systems – he has to write device drivers on the train in the morning to get his laptop working, no joke. Another thing you may know about Alec is that he creates Linux development distros for open source development teams, which brings me to the point of this post.

Open Source IDEs are Crap!

Now, I am not leveling this criticism at Alec, since he doesn’t write the IDEs. I am leveling this criticism at all of those IDEs that I have ever turned to in the vain hope that the time has come for me to migrate to Linux. I am a C#/.NET developer, but before that I was into Java and before that into Visual C++ and before that I used GCC and before that I used Eiffel and compiler suites for VMS and various Unix variants.

As a Java developer, I was (through budgetary constraints) obliged to work with open source development environments like NetBeans, and Eclipse. I ended up better off with Vi. They were slow, flaky and frustrating. I thought that this was just a case of them being based on Java, and thought little more of it. I’ve been able to work with Visual Studio ever since I left university in 1995. At all stages through that period, VS was regarded as the benchmark for other tool vendors. They never seemed to make the grade. I very soon abandoned the Java world – I couldn’t stand the tools, the debuggers were crap or non-existent and the documentation was sparse one-dimensional and uninspiring.

Visual Studio Team Suite has raised the bar again. During a recent stint with a client here in Melbourne I was required to knock together a development environment that was partially based on VS.NET 2003 but with a whole bunch of open source tools to fill in the gaps for revision control, bug tracking, team portals, task and requirements management. It worked and the team got stuff done, but when I moved on to the next project I used TFS and was forced to admit that the unified team development experience is fantastic. There is nothing out there in the open source world that can begin to compete with the fluidity of TFS.

I WANT to run Linux on my laptop. I gave up Windows PowerShell and went back to Cygwin. I always use find, grep and xargs in preference to windows search or Google desktop. I Love Unix and would love to go back to it. But I couldn’t bear to give up VS.NET 2005. Nothing comes close. As a .NET developer my options are:

  • Vi + NAnt
    A mighty powerful combination that can move mountains. Not exactly much in the way of intellisense or debugger support though, eh?
  • #Develop
    not bad, but lagging behind the pack. Partial support for web technologies. Doesn’t support Resharper. Won’t support LINQ for years, especially not on Linux. No team development or SCC integration.
  • MonoDevelop
    Crude port of KdeDevelop?

OK, I’m the first to admit that these reviews are biased and unspecific, but I am hoping that someone out there will prove to me that I’m wrong. I want to go over to Mono. I’m waiting, actually. How long am I going to have to wait?


  1. You forgot the One True Editor, Emacs!

    More a lifestyle choice than an editor really…

    Anyway ed works better on a DEC Writer, so that’s has to be a consideration as well.

  2. I only didn’t mention it, because I can embed GVim into VS.NET as the main editor. I don’t think you can do that with emacs. I went back to Vi after a few years of AUCTeX inspired Emacsing. Couldn’t stand it. I think it was because I needed something with Ed/Sed in it.

    One of my favourite editors of all time was the DEC/VMS LSE language sensitive editor. Old hat nowadays, but it seemed pretty cool at the time – so much so that I implemented its features in the Borland C++ IDE.

  3. Eclipse has improved quite a bit, and although it has less (useful) features than IDEA (its proprietary competitor), I find it less flaky than IDEA.

    I like vim too, and I’m starting to like emacs. I’d much rather use gcc/vim than VS.

  4. Hi Ricky,

    No Doubt about it, and doubtless because Eclipse has some pretty major corporate backing. Namely IBM, if I’m not much mistaken, the behemoth that brought us such wonders as Visual Age. ;^} the problem I have with these tools is the shear lack of backup documentation (plus the crappy debugging experience). I have worked with people (in a .NET environment) who keep eclipse around for merge/diff/SVN/CVS purposes. But when the time comes to cut code they are forced back to VS.

    I love GVim too, but lets face it – it’s bloody frustrating to have to use some other tool to track down info that you should just be able to click on. I want to (and am able to in VS) be able to jump to the class definition for the type of an identifier. I can also (with the aid of Resharper – brought to us by the makers of IDEA) also pull up context menus with a precis of the documentation for an API. All of these things reduce the confusion when dealing with legacy or unknown code. I don’t thing Vi/Emacs can come very close to that with CTags, do you?

    These days I only use GVim for repetitive text editing tasks, where it still reigns supreme.

  5. #Develop is not teh suck. It’s not so far behind, you can build .net 2.0 apps, do testing right in the IDE, it incorporates nCover and all kinds of features plus there’s a nice plugin infrastucture. I like the stripped down approach I’ve never felt comfortable using wizards to generate code .

  6. Get your facts right please.
    MonoDevelop is port (/fork) of SharpDevelop. It still has many basic problems, but also is very young and is under heavy development.
    Also I’d say, that writing in .NET in anything that can’t get new functions list (from library / xml) for autocompletion is just painful (even though I use vim for C normally and I’m happy with that). VS still wins in many things, but MD will get close very soon (at least comparing to express edition – it’s got repos support already – that’s a big win).

  7. They suck because fewer people work on them, and they work on them less time. They suck because people need money to live.

    Donate half the amount money that you spend on VS.NET to what you think is an open source IDE front runner, or to specific bounties for that project. Or donate your time.

  8. Eclipse rocks man. The immediate feedback it gives you as you code (instead of having to stop what you are doing and compile to see what errors you made ala VS) is awesome. I sorely miss that when coding in C#. Its not perfect, but its pretty comparable to VS 2005, which is not exactly perfect either ;) Eclipse has great refactoring capabilities as well, it seems to be a few years ahead of the stuff they have in C# Express.

  9. Mario,
    Whining? Whining? Me?
    Actually, man, I haven’t the time or inclination to help fix #Develop. What little spare time I have would be spent on topics other than IDE development. I wrote the post for the sole purpose of having correspondents prove to me that it was now at a point where I could use it. The fact that you responded by saying it needs help answers my question, don’t you think?

  10. Viraptor,
    It’s a branch of #Develop? Cool.
    I’m encouraged to know that it doesn’t lag too far behind VS. As you say, it probably compares pretty well with the hobbyist version of VS, but I’m speaking from the perspective of a professional developer who spends 10 hours a day in front of my IDE. It has to (for me) be as transparent as possible. I don’t want to have to think about the IDE at all. I want to be able to focus my thoughts solely on the solution domain, and on the .NET framework. Everything else is a distraction. So, for me, it is not yet ready. Is there a roadmap for when {#, mono}develop reaches parity with VS.NET?

  11. Aaron,
    Yes, Eclipse Rocks for Java development – so long as you don’t count team
    development enhancements – but it’s support for C# is (as far as I can make out)
    pretty scanty.

    My comparisons are not against the C# express, but against Team Suite.

  12. Lloyd,
    Yeah I could donate my time and money to the nearest competitor, but then I
    would be out of a job, and broke. Maybe if Gandhi had been a developer he might
    have done it, but I have mouths to feed.

  13. Andrew, then I can’t take you seriously. I have never met a software developer that did not have either a little more time or a little more money then they needed.

  14. Lloyd,

    You also seem to assume that (like you?) all developers don’t have lives to lead. Since the birth of my twins, I have next to no spare time outside of the train trips I make into melbourne in the mornings. I devote that time mostly to blogging.

    Previously I devoted it to things like this: https://sourceforge.net/projects/aabsdbc or this http://sourceforge.net/projects/aabsnorm/. But with the advent of LINQ, I see no reason to continue the project.

  15. ha! VS.net 2k3 made me want to eat a shotgun the first time I used it… SourceSafe is also the biggest joke I’ve seen, although I hear TFS has better source code control – I hopefully will never have to find out, i think i’d rather drive a taxi and listen to pensioners bitch about their incontinence all day than go back to VC++ development.

    I prefer XCode over VS.net, while interface building for OS X is less than ideal in terms of workflow, it’s no more broken than VS.

  16. You’re comparing other IDEs to Team Suite? Isn’t Team Suite a “life-style” choice? If you need / can get TS, then you probably want as much compatibility with other devs in your group as you can get. No other IDE will get that for you now.
    It would have to be…. exact copy of TS.
    And to say truth – I don’t think anyone working on {#,mono}develop ever would see VS2k5TS outside his work, if at all. It’s just too expensive.

  17. There are competing products from the likes of JetBrains for instance. I’ve never had the pleasure of using IDEA, but I understand from friends who do, that (in terms of intelligence of user experience and completeness of integration) it is streets ahead of JBuilder and co.

    Life-style choice? Hell no! Or at least no more than being an open source developer! ;^} I am fortunate to work for a company that specialises in early adoption of .NET related technologies, so it made sense for them to adopt team suite and TFS immediately. But I think that in previous jobs I wasted the license fee several times over in pointless manual tweeking of a XPlanner/BugZilla/WSS/VS.NET 2003/BadBoy/JMeter based solution. A reliable solution like TFS/TS could probably save you money in the long run. Not to mention help fend of the maniacs who want to railroad the development process in the name of ‘Agility’.

    I understand what you say about the expense of getting Team Suite, but that doesn’t mean that I’m wrong in saying that it’s streets ahead of a configuration like I listed above.

  18. Hi Andrew,

    While I agree that TFS is the ducks nuts, I don’t necessarily buy your anti-agile stance. If you look at some of the development pain you’ve had recently with complexity of code – you have to remember that code emerged from a very non-agile process with lots of design think time thrown in.

    The good thing about agile is that it gets something in front of the customer early so they can provide feedback and ensures that the code is as simple as it can possibly be be.

  19. We just binned TFS in favour of Subversion, Trac and CruiseControl.Net! TFS failed really badly on us and left us so deep in the crap that we lost 3 days cleaning up after the mess. No looking back – sure it’s not as tight but it’s bloody fast.

  20. Hahaha, gr8t you fool all. I am working with Visual Studio .NET for about 4 years now and its getting worse. No auto generating of using block, no real refactoring. In most of my apps i must do workarounds and stick to microsoft. Eclipse is way more faster. I got a laptop with intel 2.7 Dual Core 4GB ram Vista 64 and it is a pain in the ass. Simple use the newest version of eclipse under windows environment and you will experiance the great performance and fast running apps.

Comments are closed.