4 ms·
Grails Framewok! http://grails.org http://grails.org Built on top of Spring Boot. Awesome performance, both in execution and development speed. Convention ov
by olavgg 9y ago
Grails Framewok! http://grails.org http://grails.org
Built on top of Spring Boot.
Awesome performance, both in execution and development speed.
Convention over configuration. But it is still easy to access the rich Java libraries.
Comes with GORM, an ORM layer on top of Hibernate. Makes it work a lot more like Active Record with dynamic finders.
Groovy, very similar to Java. Metaprogramming, easier JDBC, execellent, makes it very easy to work with JSON. Groovy also has performance close to Java. Java and Groovy can access each other as they have similar byte code.
Very few breaking changes from release 0.4 to 3.3. You can expect that most of your code will work without needing a rewrite the next 10-20 years.
Superb HTTP parameter binding and validation with Command Objects.
It is a very mature framework and you have full access to Spring Framework.
Great community!
- peller 9y agoI inherited a Grails 2 codebase about 8 months ago. I'd never worked with Java or Spring before, but I have pretty extensive experience with Django, Flask and Symfony (inspired by Spring, as I understand it). Anyway, from my perspective, I'm sorry to say I have to strongly disagree with all of these points - I've never had a more miserable experience with a framework. <rant> First off, I found the documentation to be really bad. All of it assumes you're already deeply familiar with Spring/Hibernate, and it offers zero direction for those who aren't. Furthermore, Grails has a ton of magic. Which I guess could be OK, but again, it's all very poorly documented - and trying to read the source code of Grails itself to get a grasp on what's going on? Forget it. Development speed? Hot code reloading pretty much doesn't work; any time I add or change a route, or a JSON marshaller (aka a serializer in every other framework known to mankind[0]), or simply add a JS file, you have to restart the dev server. Which, to top it off, spins up insanely slow compared to a proper dynamic language. GORM. Same documentation rant. They cover the simple cases and leave you in the dark if you need to do anything more complex than a join. Luckily people on SO are helpful here, but I wish I could understand what the hell is going on behind the scenes. Plugin ecosystem? Seems pretty small/inactive, especially compared to Django. Oh, and each time you install a plugin, expect at least another 30 seconds to spin up the development server. Breaking changes? The recommended upgrade path from 2 to 3 is "start a new project and copy over your files." WTF? The parameter binding/validation does work pretty well, as long as you don't try and do anything non-straightforward. But step outside the box, and it falls apart. And again, the documentation of these magical transformations is utter shit. Related: no default arguments allowed for controller parameters? Really guys? [0] This whole "let's make up a new name for some already widely established concept/function" appears especially rampant in Groovy/Grails. Not a fan. </rant> Perhaps coming from the perspective of JavaLand it's an upgrade, but man, this shit is not for me. Sorry for the rant.
- vorg 9y ago> documentation rant. They cover the simple cases and leave you in the dark if you need to do anything more complex The business model for Apache Groovy and Grails after Groovy creator James Strachan was pushed out became to hook users in with free open source software, then charge them for consulting and conferences when they'd amassed some technical debt. > The recommended upgrade path from 2 to 3 is "start a new project and copy over your files Virtually no-one's upgrading from Grails 2 to 3, or even starting new projects in version 3.