Hi Scott, Ruby on Rails has just been introduced as a course in my university (New York University), and I was wondering about the following things:
-Difference between Ruby and Groovy -I know of Rails, what is Grails? -How relevant is it in the current tech job scenario(both Ruby and Groovy)? -Learning curve (I know Java well, now I was checking out the description of the book on Amazon, and found one other book as well (Groovy in Action by Koenig). Is Groovy Recipes a basic book(for beginners) or is it more advanced, and how would you rate the other book on Groovy. (I'm just trying to figure out what would be the best way to get started on it).
Answer from wikipedia article Grails is an open source web application framework that leverages the Groovy programming language (which is in turn based on the Java platform). Grails is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a standalone development environment and hiding much of the configuration detail from the developer. Grails has been developed with a number of goals in mind:
* Provide a high-productivity web framework for the Java platform. * Re-use proven Java technologies such as Hibernate and Spring under a simple, consistent interface * Offer a consistent framework that takes away confusion and is easy to learn. * Offer documentation for those parts of the framework that matter for its users. * Provide what users expect in areas that are often complex and inconsistent: o Powerful and consistent persistence framework. o Powerful and easy to use view templates using GSP (Groovy Server Pages). o Dynamic tag libraries to easily create web page components. o Good Ajax support that is easy to extend and customize. * Provide sample applications that demonstrate the power of the framework. * Provide a complete development mode, including web server and automatic reload of resources.
Grails has been designed to be easy to learn, easy to develop applications and extensible. It attempts to offer the right balance between consistency and powerful features.
I have both Groovy in Action and Scott's book. I would recommend them both but I would start with Groovy Recipes. First of all it is more up to date and secondly it is more of a high level overview where as GinA is a more complete reference. So, start with Groovy Recipes and once you're hooked get Groovy in Action and Venkat Subramaniam's 'Programming Groovy'. I don't have that one yet but plan to order it soon.
Author of Grails: A Quick-Start Guide
Joined: Dec 25, 2006
Hi Alaa, Dave, Thanks to you both!
If you have any info about the importance of knowing Ruby as well as Groovy in the current tech job scenario, please do let me know!
Joined: Jan 28, 2008
Originally posted by Mallika Iyer: If you have any info about the importance of knowing Ruby as well as Groovy in the current tech job scenario, please do let me know!
Well, if you mean to ask about it giving you benefit in the development world, the answer is "It depends". Ruby is sure becoming very popular, and knowing it would sure give you benefit, but this would sure depend on your geographical location, and the types of companies you have. A lot of people are saying that it is hard to convince their companies to go for ruby or groovy. Knowing ruby would give you benefit, because of its increasing popularity. As for groovy, it's gaining popularity as well, but more slowly. Bear in mind that version 1.0 was just released last year.
Will knowing those languages give you the chance for a better job? I don't know. Are the companies in your area/country using those languages? Will knowing those languages benefit you technically? I assure you that they will.
Even if you don't get the opportunity to make use of them professionally in your existing company, since they are gaining popularity, you might someday find that there is a need for them, and you may become a leader in your company, since you already would have the experience. If you have the opportunity to learn them, go for it. If you need to prioritize them in the list of the stuff you want to learn, just make a small research about what the market needs now, and what is going to be needed in the near future, and prioritize the stuff you want to learn accordingly.
I hope that this might answer some of your questions.