In which I revisit C# for fun and end up going in deeper for… more fun?
I’ve been hacking at Unity 3D since Codebits – there were a number of interesting projects using it, we were all stoked from riding the Rift Cycles and the IDE has come a long way, so I was curious to see what could be done in terms of data visualization, wistfully imagining a future when I would have both the free time and the spare cash to grab an Oculus Rift development kit and take my big data/infoviz skills to the next level.
I also happen to have a few, erm… Mono-theistic acquaintances, one of which is deeply into gaming and graphics (hi @sh4na!), so C# it was until work cut in and my free time went down the drain again – I had the makings of a 3D graph renderer in the works, but it’s hard to debug complex data structures in Unity and my code was a bit rough, so I suspect I’ll have to rewrite the whole thing from scratch.
Fast forward a few weeks, and I found myself on the eve of attending Microsoft’s local WebCamp event reading this post about vNext and browsing their core repo (forget the samples, this is where the meat is). I couldn’t run any of it on a Mac, but my curiosity was piqued enough for me to grab Xamarin Studio and toy with them a fair bit – with the rewarding result that I was able to drop in my Unity code (at least the data structures) and debug it.
WebCamp was interesting – rather surprising, honestly, and after sitting in on most of the sessions regarding solution architecture and Azure (which were crammed with demos and eerily aligned with a lot of the API/architecture stuff I’ve been involved in the past few years1), my early impression regarding Satya Nadella’s ascent and my thoughts on the new .NET build toolchain were confirmed – there’s a lot afoot.
Besides a bunch of Visual Studio enhancements, the shift in emphasis towards git integration, agile process workflows, providing scaffolding for unit testing, and little niceties like providing Kanban boards for projects managed on
visualstudio.com make the whole thing positively fascinating.
Having managed the SAPO intranet and (nearly) all its developer support infrastructure (from ticketing to source control) for over three years, I was hooked. So I decided to take another deep dive and spend some time getting reacquainted with Visual Studio (I set up the previous edition last year to have a go at building a Windows Phone app but lacked a device, so that fizzed out quickly).
For good measure, I also set up MonoDevelop on my ODROID – but it doesn’t seem to run properly on ARM, which is a shame since it would be interesting to compare raw performance between Java 8 and Mono on my little cluster of ARM machines.
Let’s see where this goes.
In case you’re wondering, I’ve always been carefully neutral where it comes to development platforms – for instance, both my favorite programming languages (Python and Clojure) are platform-agnostic, and both Python and Clojure can target both the JVM and the CLR – and, in fact, one of the reasons I chose Clojure over Scala was that the former isn’t hogtied to the Java ecosystem. Of course, it also helps that I used to be an MSDN subscriber. ↩︎