Information Technology Blog

Wednesday, September 28, 2005

Vancouver Ruby user group kick-off meeting. Ruby on Rails AKA RoR.

Many thanks to the meeting organizers from Active State for preparing the meeting and thanks Alex for the presentation. It was quite entertaining and great fun. I always feel for the presenter and I understand how hard it is to present something that has an ambition to be a revolutionary technology. However, I must say that first part of the presentation sounded very metaphysical. Some of the lingo was also quite confusing at times: the smart servant vs. dumb servant methaphore etc. There is probably better analogy. Ruby opens up a whole new exciting discussion about what the modern programming language should look like. Jumping ahead a bit I would say that for the large and medium size projects Ruby is still very young. The Wikipedia page on Ruby seems to be the best starting point to learn about Ruby. Here is what I’ve learned during presentation and my comments.

1. Ruby software developemnt philosophy is based on:

- Less is More. e.g. less code to write, less code to maintain, less bugs etc.
- Worse is better. e.g. not everything we do in life needs to be “award winning”. The same as “Good enough” principle.
(Certainly true for many applications, 2nd rule exceptions: Mac, iPod, pick device or product you really like)

2. Ruby is a natural choice for Domain Specific Languages.
(Best choice I’ve seen to date, mostly because of semantic of the language. However it could be only matter of time before these features will get abused. Some of the similar futures were deliberately not included into Java )

3. Ruby chooses convention over configuration. It allows minimizing number of XML or other types of configuration files to deal with and therefore reduces complexity and makes app better maintainable.
(Cool)

4. The point was made about a “bureaucratic” approach taken while developing using other languages and frameworks for them. This is usually means that often you are forced to update things in way too many places at once which is redundant, error prone, takes more time and most importantly totally unnecessarily.
(Amen brother)

5. Ruby on Rails is a domain specific language for developing web based application and it’s very “opinionated”. It dictates you the way the app should be structured. It also means that it might be very hard to do the things which are “off beaten path”. Another example of DSL using Ruby is Rake (make for Ruby) http://rake.rubyforge.org/

6. “Trails” is an attempt to implement similar to RoR concept in Java. In presenter’s opinion it makes things even more complicated.

https://trails.dev.java.net/
http://jroller.com/page/ccnelson/Weblog?catname=/Trails

7. For one reason or another Ruby programmers seems to develop a strong negative bias towards Java. This is a curious psychological detail. I remember sort of the same thing happening in 1995 towards C++. 10 years later, is Ruby the holy grail? Or is it just going to push Python little aside? Is Java legacy will be one of COBOL or C? My answers are NO, YES, NO, YES.

8. Anything that Dave Thomas is writing about is really worth knowing!

Some more interesting links:

http://en.wikipedia.org/wiki/Ruby_programming_language Wikipedia Main Entry for Ruby

http://onestepback.org/articles/10things/index.html 10 Things Every Java Programmer Should Know About Ruby

http://www.ruby-lang.org/en/ Ruby: Programmers' Best Friend

http://www.poignantguide.net/ruby/ Great Ruby book on-line. Adam, thanks for the link.

http://www.lesscode.com Lesscode is not about quantity

0 Comments:

Post a Comment

<< Home