First Impression of Ruby

This week, I attended a company internal ruby/rails training.

Here is some thoughts after the training:

Technically:
1. Ruby on rails uses convention over configuration. The only so called configuration file is "routes.rb". Feeling the pain of adding/modifying 5+ files to create one web page in Tapestry/Spring/Hibernate application, "convention over configuration" is definitely a no-brainer.
2. Ruby class is never final. You can override/overwrite a method on the fly.
3. Implementing a "filter" in Ruby on Rails is simple comparing to Java Servlet Filters. It's plain ruby code, and can be easily tested.

Future:
Ruby/rails requires high quality developers. If you don't have developers following TDD and other agile principles, the project can easily be screwed up. So consulting companies with high quaility developers can easily get high rate for the work.

Consulting companies always try to chase the latest and greatest technology to achieve their financial goals. But with strong typed language like Java or .Net, consulting rate went down quickly after a lot of "regular" developers moved over. But Ruby itself has raised the bar, those companies who have chased ruby/rails should be able to charge the high rate for a longer period of time comparing to java/.net.

On the other hand, due to the above reason, I don't think Ruby/Rails can compete the market with Java/.Net in the near future.

Questions:
1. How is the general performance of the ruby application?
2. How does Ruby on Rails work with legacy code/database?
3. When will the Ruby open source continuous integration server available?
4. For people used to strong typed language, what's the easiest way to switch over?
5. Ajax and RoR?