that you still have to "know" quite a bit to use Groovy with Spring, yet developing applications with Ruby/Rails
is so easy. I asked why she thought developing with Ruby/Rails is so darn simple. She said she had seen a demo
of a fully working app being created within minutes without much effort or code.
She is not in the minority to hold this belief. I have seen quite a few people who come to learn about Ruby/Rails
with the expectation that this must be way too simple and they don't have to know or learn much to get an application
implemented. They have been lead to believe that it is easy, they don't really have to know much, almost everything
they need is created, so they can sit back and relax while the framework does the coding.
Let me ask, if it is so simple, can your cat code my Rails application?
Don't get me wrong. I do believe that Ruby and Rails leads to great productivity. I don't just think it does, I know it does.
I knew C++ fairly well. I took the time to learn Java fairly well. I found that Java made me more productive than C++ did. I doubt anyone would say that Java makes an ignorant programmer more productive. You did have to take the time to learn the details of the language, the platform, and the API. But, once you did, you got around things much easier than in C++.
In a similar way, but to a greater magnitude, I find that Ruby leads to bigger productivity gains. However, that involves
somethings. I need to learn the language and its idioms. In Ruby, methods can easily return multiple results. You can exploit the dynamic typing and the fact that classes are always open (along with Mixins), opens up opportunity to implement certain features in the most elegant and easier way. The ability to write closures without much effort and the idiomatic influence in the use of iterators and methods on collections is powerful. Once you get into creating a useful Rails application, you will quickly realize that the productivity gains come from exploiting the power of Ruby. Open any Rails project that you create and start looking at the code that has been generated. Take the time to understand what's going on.
So, when you hear that Ruby/Rails leads to great productivity, there is an implicit assumption, that the person has taken the time to learn and become knowledgeable.
Some people seem to have developed the notion that they can create Rails application without really taking the time to learn anything significant. Those people would soon find out, to much disappointment, that they can't really create any application beyond the "Hello World" that the scaffold generator creates. If you think that was not the case, I still would not need those types of developers; as in that case, your cat can develop my next Rails application :)