On Jun 22, 2006, at 12:44 PM, Chad Woolley wrote:
Can't you feel the peace and contentment in this block of code? Ruby is the language Buddha would have programmed in."
Yeah, being pragmatic, Buddha probably would be using RoR. The more idealistic of us would likely be doing Smalltalk.
After reading several thousand blogs which argue the pros and cons of RoR and seeing it used in a real shop, I think the benefit does largely come down to the Ruby language itself.
Bingo. Rails is only good *because* of Ruby. The dynamic "magic" that can be pulled to create very elegant looking DSLs (domain- specific languages) is the secret sauce that makes Rails what is. Sure, you can do wacky reflective stuff in Java and get close, but the natures of those languages are different at a core layer.
Of course there's still big cons compared to Java - my main gripes are lack of a real refactoring, intelligent code-completing IDE
Many gripe about this. Personally I have had great success being interactive and using IRB tab completion to explore and learn an API. In Rails, script/console is amazing - your entire Rails environment immediately accessible live.
, and lack of something as nice as Maven to automatically manage your external and cross-project dependencies.
RubyGems manages 3rd party library dependencies nicely, and with Rails you can "freeze" it to a particular project. There is also Capistrano (formerly Switchtower) for project automation such as testing and deployment. I'm not aware of much in the way of automated deployment tools in the Java world that compares to Capistrano. Its much trickier to generically deploy a Java application because of the various ways every application server deploys.
Oh, and speaking of XML parsing performance - AJAX is now officially old news. AJAJ (Async Javascript And JSON, Javascript Serialized Object Notation) is the wave of the future. We don't need no stinking XML!
Sending back XML was old news almost a decade ago. Erik --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]