This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
I need to make a small web project to convince management to switch to a web application for a manufacturing production system. I maintain the existing system but it is 14 years old and is a DOS xbase system heavily dependent on Novell libraries. Would Grails buy me some time in developing the small project? I am an experienced programmer (25 years) but a beginner in Java. The web server--database server (Apache and Postgresql on Ubuntu ) is already running. The biggest time issue is my inexperience in web development. Would Grails be a tool to balance my inexperience?
Grails will definitely save you some time in the short term if you lack knowledge in building web applications in java. However, I can't emphasize enough the importance of understanding why grails does what it does, how the underlying technology (hibernate, spring, etc) works and basic JSP/Servlet specification. My advice is to dig into grails to get your proof of concept and then as you develop the system that will go live (which will just be your proof of concept with more stuff) try and understand a lot of the why. Without basic JEE knowledge you're going to run into situations that you'll have no way of overcoming.
I just can't stress this enough. Frameworks are great. But you better understand at least primitively what is happening without the framework.
Also, I would like to warn you since I work in a similar environment. Grails does not go well with legacy DB. I spent a lot of time in Grails than I would in Spring so I am not sure about the ROI factor.
Grails works *fine* with legacy DBs *if* you know Hibernate; the ROI is still big over plain-old-Java techs.
Grails is a huge productivity booster, but Groovy is a language just like Java is--as Gregg says it pays to know how and why it works. If nothing ever goes wrong it's not as big of an issue. However, you've had almost as much experience as I've had--and we know by now that something *always* goes wrong. Once something goes wrong without the basics of JEE development you're sunk.
If you're committed to Java-based technologies then Grails is a decent path, if you're not there are other options.
As far as legacy DB the software to migrate the data and feed it into the postgresql database is done. I run the migration program from the current (legacy) production data to my postgresql server every morning and tweak the code to fix data that doesn't convert correctly. I am committed to Java. I appreciate that I need to learn why the framework functions before doing too much with it. I have worked with SQLserver frameworks and know that at some point the framework will fail or will have to be customized. Keeping those warnings in mind I will take Grails for a spin. Thanks for the perspectives.
well the first thing that you need is some understanding of how web applications work and are maintained .personally the grails book that i read doesn't explains that instead it explores on how and why it is better then java .and through out the book a examples are compared with their java equivalents.Although i love grail and it definetly is quick.
Im going to have to second some of these comments in that Grails offers a HUGE productivity advantage over trying to setup a j2ee application from scratch. The framework uses some of the industries best development tools/frameworks like Hibernate, Spring, sitemesh... I have developed non grails Java web apps and Grails apps... Grails is awesome, BUT you have to understand Java just in case. I have run into issues while developing in Grails and couldnt imagine troubleshooting without knowing java or how a web application works.