special Rails 2.0 features OR what impressed me most about Rails (2nd tranche of Rails links)
Just after the turn of the year 2006>2007 I dove into Ruby. My original project is related to semantics, and I had to deal with large directed graphs and complex data structures. I put programming-as-a-hobby aside, about 1997, and the then most-recent language I’ve been aware of was Perl. For doing the occasional programming task, that one was sufficient. For dealing with graphs it was not, despite it fulfilled the requirement to bring these graphs to the web one day. So I was looking for a new language. What I were aware of were PHP, Ruby/Rails and Python. For being as low-level as Pascal was, PHP quickly dropped off my sight. Next I had to decide whether to take Python — which was more well-known here in Europe back then — or Ruby, which was rather unknown here but by Rails featured a yet working framework for web development. Having learnt floods of newbies usually won’t need to be a higher quality in support (read: Windows-refugees in Ubuntu), I leaned towards Ruby. But on the other hand, Ruby was Japan-made and its community might be mostly non-English. Which might make it hard for me to get into that language at all. Nevertheless, I gave both a shot, then learned about a significance of white-space in Python, which made the difference. Anyways, I didn’t go into Rails back then.
Been on some kind of sabbatical for a while, I had a hard time to get into a job afterwards, so although not loving to program in Perl, I applied for a PHP job, which I am currently in. It’s even more that low-level Pascal way of approaching things than I imagined. Looking for an alternative against doing web development that low-level, I peeked into Rails. (You might have noticed my previous Ruby/Rails related posts, so that you might confirm this. ;-)) However, having done some research on Rails and were reading Rails’ ActionConroller documentation (and of other classes ones too), I came across the explanation of session management in Rails. Having seen what a hassle it is in the Joomla! PHP CMS to deal with sessions, that mention raised my interest. I learned that there are at least three different ways to deal with session using Rails, until now: Store the data in a cache, in the database or a session cookie at the user’s place. But what impressed me most was to learn that Rails has built-in mechanisms to prevent “the user from tampering with the session”, but at the same time “allows him to see its [i.e. the cookie's] contents”: “Sessions are stored in a browser cookie that’s cryptographically signed, but unencrypted, by default”. (All quotes taken from Rails’ ActionConroller documentation.)
More specific to dedicated Rails development, a while later I learned about Rails plugins (but still haven’t figured out what they are literally). However, who’s yet somewhat deeper in Rails development might gladly be using them, so for the Rails Edge blogger Ryan Daigle it was noteworthy to mention that the Rathole plugin made it into Rails — a Rails plugin that eases setting up database fixtures a rather lot. — For those who are not that deep in Rails he gives some nicely comprehensible examples. You’d see the elegance at once.
Anyways, if you’d like to get some deeper glance into Rails 2 I once again recommend you to read Peter Marklund’s presentation on Building Web Apps with Rails 2.