Matt's Mind

Sunday, March 20, 2005

MonoDevelop == Eclipse#? (plus why OSS pisses me off)

Is it just me or does MonoDevelop look a hell of a lot like Eclipse?

Check out this screenshot of MonoDevelop in this article on its progress to date. Then compare this to this Eclipse screenshot (140K). Projects (sorry, "solutions" in Microsoft-speak) on the left, tasks at the bottom, source code on the right complete with closable tabs. In a few years time, they'll have written Eclipse#, probably complete with their own plugin system.

I realise Eclipse has borrowed a lot from other IDE's, but this is really too similar to credit, even down to copying the bad parts of Eclipse like the unscalable tabbed source viewer that becomes clumsy after about 6 tabs. I suppose they'll soon be "innovating" (Bill's favourite MS-speak) refactoring support.

This is getting off-topic, but Mono is also busy forking Java staples like Ant (NAnt) and JUnit (NUnit). Why exactly did the Mono/Novell guys decide to build on .NET when they could have taken on the years of work gone into OSS Java VM's like Kaffe and GNU Classpath?

The muti-language thing is a furphy - .NET runs any language that looks like C# (single-inheritance, single return value, statically-typed, etc) just like Java runs any Java-like language. They can both run other languages like Python, but they end up more as interpreters-on-a-VM, since neither natively supports Python-like dynamic types and multiple inheritance. Plus, regardless of language, you still get the same C# or Java-oriented system frameworks. You end up writing C# programs in Python (or VB.NET, or whatever) syntax.

The static compilation thing also holds no water: Java can be statically-compiled if you wish (gcj or Excelsior JET are two that I've used). Although, as I've argued before, this seems to be more to appease hard-core C addicts than to actually improve performance.

I'm going to veer even more off-topic and say that this is the thing that pisses me off about the OSS world at the moment: so much time is spent by tribes of geeks busy re-engineering existing stuff that very little that is truly innovative is appearing. Case in point: KDE and Gnome are both run-of-the-mill desktops, trying to match Windows. They're OK, but meanwhile Mac OS X still continues to blow me away.

The OSS world just seems to have zero big-picture vision at the moment, it appears to be just a bunch of tribes squabbling over which is The Way, KDE vs Gnome, Java vs .NET vs Python, RPM vs DEB, etc. They're not building new stuff, they're continually rebuilding old stuff, much of which is tools and frameworks for building things rather than the things themselves that would make enough difference to someone considering switching from boring old Windows. I can't think of a single thing about KDE, Gnome or Windows that would make a big difference if I was forced to use only one.

Each OSS project that essentially duplicates another is not progress, it's not healthy competition and it's not about helping choice: it's fracturing standards, duplicating effort and balkanising OSS.