It's a bit difficult to understand what motivates someone to clone Microsoft technology. Bill Gates' open letter to hobbyists at the Homebrew Computer Club in 1976 clearly demonstrates the mindset of Microsoft. They are a proprietary software company and believe in making a buck off of everything they do. While there's nothing wrong with that, people should not believe that Microsoft's submission of C# to the ECMA as a standard means that they truly want anyone to create new implementations of C#. Microsoft will do what they always do. They'll move the goalposts. They'll break compatibility with every release. You can never expect to gain parity with Microsoft and you'll never be able to run .NET applications on anything but Windows.
So if you accept that fact then what are you left with? Well C#, like it's main inspiration Java, is still a very nice language. The threading model, exception-handling, and memory management all help make this a very usable object-oriented language. So if you take your sights off the idea of trying to run Windows apps on Linux and insted focus on bringing a very good set of development tools to Linux then you can understand what the Mono project is about. Novell is interested in bringing the advantages of a Java-like language to Linux software development without having to deal with Sun or Microsoft.
Now you might ask, why would a Mac-toting Java developer like me be interested in learning anything about a Microsoft technology. Well, like I've said before, I'm trying to be a pragmatist about learning computer languages. I realize that for the kind of enterprise development that I do, there are two camps: J2EE and .NET. At the very least I hope that learning something about C# may improve my overall development skills. Heck if I can look at Objective-C and Ruby and learn an appreciation for dynamic languages then why not try and pick something up from C#. And who knows, as a contractor maybe some really interesting C# work may come my way sometime and it'd be a shame to turn it down because I didn't even look over at the "other guys".
So I got a C# book from the library and I installed Mono on Mac OS X. Time to get cracking...
No comments:
Post a Comment