My Schedule

Speaking

EclipseWorld

October 28 - 30 - Presenting two sessions on OSGi.

Events

JavaOne

May 6 - 9 - Attending JavaOne in San Francisco.

The opinions expressed on this site are my own, and not necessarily those of my employer.

For the past 5 months, I?ve been working on a .Net project, my first of the sort. Until then, I’d always been a developer on some pretty large Java efforts, some small PHP efforts, and some personal experimentation with Ruby. But I had done absolutely nothing with .Net, and the opportunity to gain experience with another major platform was exciting. Now, I’m back on another Java project, and I am not sad to leave .Net behind.

I know Microsoft has always done a great job ensuring their technologies interoperate well, having experience with such interoperability going back to my days as a PowerBuilder and VB programmer using OLE automation to integrate with Microsoft Word. With Microsoft, there always seemed to be an easy way of doing things using Microsoft technology. Unlike Java, this meant less time trying to sift through the bad frameworks in search of the good one, and more time implementing a solution using Microsoft’s platform. Ironically, I didn’t appreciate this as much as I expected. I feelpretty strongly about architecture and design, and the easy way wasn’t always the right way. However, what startled me most about .Net wasn?t the platform, the C# language, or my dislike for WinForms development, but the .Net community and culture surrounding it.

Microsoft has a fledgling open source community compared to many other platforms. While a plethora of competing open source projects means you’ll make a mistake in choosing every once in a while, even the dead open source projects contribute new ideas and innovation within the Java (ok… and Ruby) communities. And many of the .Net open source projects are little more than ports from their Java peers.

While Microsoft claims they support open source, their actions speak otherwise. Look no further than the Visual Studio Express EULA limiting 3rd party extensibility, placing the TestDriven.Net plugin in violation of the license agreement. There’s been a bit of banter going on surrounding the decision by Microsoft to disallow this plug-in. The irony here is that the TestDriven.Net plugin is only free for personal users, not professional or enterprise users, further illustrating my point. It’s not just Microsoft, but the Microsoft community. You don’t have to look far to find other examples.

I recognize that there are some very good open source projects underway in the .Net world. I run Mono on my Mac. CSLA is a full-stack framework that allows you to hit the ground running. But the culture surrounding open source on the .Net platforms seriously lags behind what I’m accustomed to with Java.