Friday, October 12, 2007

Lunchtime Session #1 - Ruby, First Impressions

October 12, 2007 Posted by Jason Irwin , No comments

OK, I know – I am waaaaaaaaaay behind on this one. But the thing is, I’m not only a .NET developer by trade - I’m a .NET developer by choice…


This may be seen as contemptuous by that more righteous side of the community that lives and breathes the FLOSS dictum. Don’t get me wrong – I am a big fan of open source software, and a bigger fan of those who choose to contribute their time and expertise to the greater good. I have often piggybacked on the (open source) creativity of others, and have undoubtedly grown as a developer in doing so. I always use the tool that does the job best and for development purposes, I have chosen .NET. I am pretty fluent in Java (with a few rough edges due to lack of industrial strength practice) and a host of web languages. I am in love with Visual Studio which matures beautifully with each iteration. The out-of-the-box functionality of the .NET languages is superior to anything I have seen before and I cannot imagine developing enterprise class applications with many other languages (J2EE aside). Because of my ties to .NET, I have little time to invest in outside technologies (I have a hard enough time keeping up with Microsoft’s release cycle (see my upcoming LINQ posts)).

I got an email from the Chicago .Net User Group regarding next month’s downtown meeting (Downers Grove generally gets the best content – but that is a rant for another time) and it is entitled “Ruby on Rails for the ASP.NET Developer”. I will more than likely attend so I decided to brush up on my Ruby before hand. This post marks my very first interaction with the technology. I hope to blog more on the subject as my knowledge grows, and at some point in the future start digging into rails. I apologize for the Rant:Content ratio.


My learning starts at the beautiful whose online interpreter (see screenshot) provided with both the tool and guidance (via it’s help mode) to start learning Ruby. I allotted a full lunchtime to take the help tutorial and was immediately, as a developer, enamored by the online interpreter. I’ve got to give these guys credit – the site is beautiful. In fact, it probably impressed me more than the language…

The tutorial itself was, as its description said it would be, basic! Like reading the first chapter in one of those books that claim they teach you a full technology in a single day, you come away knowing only the very basics – without any experience of the technology as it is used in real life. But as I said, this was to be expected and is in no way a negative reflection on the site. This is hour 1, so I am not expecting miracles. The basics are good for now. The main point was the syntactical differences between this language and those I am used to. It is an interpreted, weakly typed language, more akin to Perl than to .NET or Java. It seems to focus heavily on user interaction (attempting to make it easier to interact with variables, more intuitive to sort and filters lists etc.) but my first experience showed me nothing that could not be done as easily in other languages. I'm not sure what i was expecting - a language with which to design web applications or web sites, but so far i have seen nothing to suggest that the former is possible. Alas, these are early days...

On a side note, I’m uncertain if an issue that I came upon was caused by Ruby itself or if itis limited to the site whose interpreter I was running - but it was a LARGE source of annoyance, and caused my work to take far longer than normally. A number of times my mind worked quicker than my fingers, causing the usual typo or two that i'm used to once my mind is on the code. However, since the interpreter allows text to be input line by line, I was left with a typo on the previous line, seemingly unable to get back and change it. Perhaps there is a way of getting back there - but i couldn't find it. I could type reset and start over – which was fine (if not a little annoying) for today's purposes, but had I been creating a class of any decent size, this would not be a reasonable solution.


All in all I was more impressed with the tool I used than the language. The tutorial provided an interesting and concise introduction to the most basic of Ruby basics and introduced me to the language for the first time. deserves another plug as it enabled me to pick up a little Ruby rather than watch the lunchtime news. Any judgment of Ruby itself would be extremely premature, and i look forward to seeing what it can really do in the immediate future.