I had the pleasure to experience Niclas Nilsson’s passion for Ruby last week in Switzerland. Niclas presented Ruby on Rails at the Expo-C conference and facilitated the Ruby on Rails: A Kickstart at OOPSLA. He convinced me to give Ruby and Ruby on Rails in particular another try, so I did. This weekend I installed Jon Lam’s excellent RubyCLR, a high performance bridge between Ruby and .NET. Jon Lam recently joined the CLR team at Microsoft “to help bring the love of dynamic languages out to the statically typed heathens”.
I started out by downloading and installing the latest Ruby on Rails bits (1.8.5) on a fresh virtual machine. I then downloaded and compiled the RubyCLR runtime which took some manual tweaking of the dependant libraries and link paths, since the RubyCLR is targeting the 1.8.2 version. All went fine and I was able to run the samples included with the RubyCLR. This is the hard way! My advice is in order to get started with RubyCLR to download the Ruby One-Click Installer and RubyCLR Gem. Then just follow the steps as described in Andrei’s RubyCLR installation guide.
A great guide to programming Ruby is “Programming Ruby, The Pragmatic Programmer’s Guide” of which the first edition is available online for free here. The updated second edition of this book, covering Ruby 1.8 and including descriptions of all the new libraries, is available here.
The influence of dynamic languages to our enterprise platforms is going to be big. Microsoft’s hire of Jon Lam follows Sun’s hire of JRuby developers Charles Nutter and Thomas Enebo to develop an implementation of Ruby on the Java Virtual Machine. Not to mention that Microsoft hired Jim Hugunin in August 2004 to join the CLR team who delivered IronPython for .NET.
While I was walking up the slopes with Frans to watch the World Championships Big air qualifications in Arosa, Switzerland during our annual Software Architecture Workshop, we talked about the support for Domain Model patterns in his product LLBLGen Pro. I shared my thoughts on language extensions and in the workshop, both on and offline, there were a lot of discussion on how to support the Domain Model in our languages, frameworks and tools. Mats wrote a very insightful post on Domain Model Management which covers some aspects of our thinking. Why not take this thought one step further? With all the great language innovations in C# 3.0! What about supporting the Domain Model directly in our favorite language. Imagine the compiler being able to validate the implemented Domain Model.
I would love to hear your thoughts on this idea!
coredomain Transportation
{
aggregate Car
{
..
entity Wheel
{
..
valueobject Position
{
..
repository CarRepository
{
..
service FuelTransfer
{
..
subdomain Navigation
{
..
Frans tagged me which leaves me with no other choice then to share 5 things you probably shouldn’t know about me.
- I studied Mechanical Engineering for roughly 9 years and ended up programming Robotics for the 8051 microcontroller. This made me decide to study Computer Science at the Fontys University for another 4 years. During that time, as a partner, helped starting up a successful web design & marketing communications company and was responsible for the Technology department. After achieving my BSc and running this company for 5 years I decided it was time for another challenge. I now work as a consultant doing all sorts of cool stuff.
- Before my career in the IT I’ve spend most of my time cycling. While I’ve done this for over 12 years and became pretty good at it sickness and injuries made me toss in the towel eventually.
- Ever since I received my NES gaming was one of my favorite activities. Back in 1998, November 19th Valve’s Half Life took control of my life. Together with a very talented team I worked as a programmer on the popular Hostile Intent modification. We delivered 4 beta’s in 3 years and spend long nights on IRC, ICQ and our development servers for play testing. I now own an Xbox 360 and a powerful PC and nowadays fall into the category “casual gamer”.
- I drink girl coffee (or better in Dutch “meiden koffie”) with lots of milk/cappuccino as opposed to black coffee.
- I’m a loner with a competitive character.
I’m it and I tag Arjen Poutsma, Claudio Perone, Philip Nelson, Mats Helander, Udi Dahan