I love programming RoR, but in my limited use I have run up against
roadblocks that say Ruby and RoR are not mature enough yet for my shop.
It is coming, but it isn't there yet.
1. Between Ruby 1.8.2 and 1.8.3 the behavior of undefining constants
that had not been defined changed. This broke the version of
ActiveRecord that instiwiki depends on (making the three step install a
7 step install if you don't count looking all over the internet for why
"step 2 - run the application" was failing. The RUBY behavior changed
in a manner that broke a core library.
2. ActiveRecord uses two slightly different idioms for handling primary
keys. One idiom handles non-numeric primary keys well, the other idiom
does not. The net result is that for most operations you can use
ActiveRecord with legacy or distributed systems, but some operations
fail. Before I get flamed, submitting the dozen or so lines of code
fixes for review/approval/inclusion are number 8 on my priority list.
3. ActiveRecord dynamically generates SQL on every call, imposing the
overhead of the prepare phase of the query on every call to the
database. This seriously limits the scalability and performance of the
platform, since in a single SQL call up to 80% of the resources used
may be used during the prepare phase, before any of the work that the
statement does is actually performed.
In contrast, a prepared statement imposes that overhead once on the
first call, and thereafter only the resources used in the actual work
of the statement are used. When you're on the heftiest hardware
available and it's already maxed out, this is not just a stumbling
block, its a serious barrier.
For what its worth, I do not feel that programming in Java is quite as
bad as you seem to. Programming to EJB is that bad, and it is sad that
the java world has become so bloated that we now have an acronym for
plain old java objects (POJO). But let's not blame the failings of
clunky frameworks on the language.
Now that Sun is officially supporting JRuby, it will not be long before
your server guy will have no say in the matter because a ruby app, to
him, will be a java app. Hang on, and work it into a small place
first. It will grow.