> Higher quality code. Java is easier to refactor than Ruby, which makes up for the lower language power.
Let me rephrase:
"It's easier in Java to rename identifiers than ruby, because my IDE does it for me."
Now that's fine, but I don't see how do you conclude:
Easier to rename identifiers => Higher quality code. How on earth?
Easier to rename identifiers => Makes up for lower language power. What language deficiencies does renaming identifiers make up for?
Other than renaming(which can be done for ruby, though it requires manual effort), there is no refactoring which Java does better than Ruby.
> Actual concurrency!
Am curious. Where in basic web development does concurrency help? As far as servers go, evented servers(thin, mongrel) will perform as good as, if not better, than a threaded server. And evented servers can handle much more concurrent requests than threaded servers.
As far as concurrency at language level goes, very rarely have I needed to spawn a thread(I go for gevent) in the controller. Controller's job is to dispatch ASAP - everything else goes in the queue where you use EventMachine or gevent or whatever if you need concurrent processing.
> Faster server spinup and incremental changes. Rails with 20 gems in development mode is super sluggish.
Rails is more sluggish compared to "stop the world. I am compiling" Eclipse?
> Better library ecosystem!
> Better dependency management system (maven > rubygems)
As long as we are just throwing out claims without backing them, ruby library and bundler/gem are 1000x better than mvn.
> Better debuggers
> Better profilers
Not everyone is a fan of graphical everything. Going by this line of reasoning, Windows has better support for git because gui?
> Easier deployment and ops environment(java -jar myjar, vs bundle install, ruby/passenger/unicorns)
`java -jar myjar` starts your app server, your web server, minifies your css, js, migrates the db....? You can very well bundle the dependencies along with your app for rails, but I don't see why I would do it for a webapp. Also, your jar works only when you don't have java calling into native code. If you don't have native extensions, ruby is platform independent as well(i.e can be bundled).
> Reasonable in-process metrics
No ideas. What's that?