I’m sitting here sipping on a decaf and hacking on a large C# codebase. What has become of me?

Don’t worry, I’m not losing my religion, Java will always be my perfect dish (along with Groovy and Grails for the condiments). But often my consulting work takes me places where exotic dialects are spoken. Lately I’ve helped a client with a bunch of C++ and C# integration work on Win32. It doesn’t feel like home, but there’s some very interesting landscape here. I’ve enjoyed working the C# so much, it’s fast become my “learn a language” project - and I’m really getting into it.

So what’s to love?

Well first of all the language is remarkably similar to Java, but with all the features that should already be in there if they ever decide to actually modernise the JDK. Properties and Delegates (typesafe function pointers) dramatically and elegantly solve the whole event handling mess. Lambdas deal with a stack of the common use cases for closures in a format that groovy programmers will find very familiar. Ever operator overloading is employed cleverly. It hurts me to admit that Microsoft know what they’re doing here, but this is really a fantastic modern programming language! Enough faint praise.

So, you’re a Java guy who needs to get up to speed on C#/dotnet in a hurry? There’s a bunch of good resources that you need to get your hands on to get started. First go buy a good book:

Recommended to me by wmacgyver, this book has turned out to be a fantastic find. Wastes no time on “non programmer” content, but introduces the language, the libraries, and the frameworks in a deep dive manner (it’s a massive book at around 1300 pages – but it’s the only intro page that a Java guy is going to need to get started).

With a book to read and learn from, go grab a copy of Visual C# Express Edition - it’s a free download and runs fine inside of VirtualBox on OSX.

So where are all your familiar tools?

Anways, before I get too entrenched in all this Microsoft stuff, I need to retreat to some GPars for some Groovy parallel goodness. More here on that soon.