Future of Grails
-
Upload
daniel-woods -
Category
Technology
-
view
2.414 -
download
0
description
Transcript of Future of Grails
The Future of GrailsDan Woods
!@danveloper
Where Did Grails Really Shine?
Agile Development !
• Development-first experience !
• Brought hot-reloading to enterprise development !
• Seamless transition from "old guard" !
• Rapid prototyping of concepts !
• Groovy!
Sensible Autowirings !
• Bringing all the platform components together, with no effort !
• Driving autowirings through configuration !
• GORM -- Easy to employ DDD while maintaining an anemic model !
• BootStrap.groovy ... Such an undervalued premise
"Smart" Convention over Configuration
!• Encourages a common (and good!) architecture
for all Grails apps !
• Taking MVC to the next level !
• "Right place at the right time with the right name" artifact generation
A Build System for the Web !
• Trail blazed the programmatic build system, even before Gradle !
• Completely deterministic build lifecycle !
• The basis for all Grails scripts and lifecycle events, supporting core extensions
Makes the Fun Things Easy !
• Grails put Spring, Hibernate, and Groovy into a warp conduit! !
• Bringing together desperate tech communities under a common umbrella (and way of doing things) !
• Built infrastructure around other frameworks, making them sensible and easy-to-use
"Convention over configuration, taken too far, doesn't let you wire things together"
!
- Luke Daley
Where has Grails Suffered the Most?
Black Magic !
• Mysterious code generation !
• Runtime MetaClass extensions that cause non-deterministic dispatching !
• A "Stringly" typed framework... !
• Goldilocks Groovy -- Grails porridge is a bit too hot
Too Far From The Source !
• Debugging issues within an incorporated framework can be really hard !
• Stacktraces rarely would reveal the root of the problem (this has gotten much better) !
• Impossible to ascertain the various sources influencing behavior
Bulky & Fat !
• Wiring everything together means that everything must be present !
• Produces mega artifacts -- WAR by design, JAR by option (thanks, Burt) !
• Not a good candidate for running in PaaS/cloud infrastructure
Let's build a plugin framework... !
• ... and let's let any unknown number of sources impact my: app lifecycle; request; development experience; !
• Introduces high levels of complexity to every execution cycle !
• Binary plugins: and now we're going to let plugins hide their source !
• Really messes up an otherwise sound architecture
"Who the f*%k chose Spring?" !
- Rob Fletcher, recent HipChat conversation
Grails 3
A Paradigm Shift in Grails... !
• Grails 3 will take on a library approach as a framework !
• No more (or limited) code generation !
• Builds will happen through Gradle, using Gradle plugins ... Limited magic
The Good Parts Will Stay... !
• The core concept of convention over configuration !
• The sensible incorporation, and wiring together, of best-in-breed frameworks !
• Agile development experience will remain a paramount goal
The Best is Yet To Come... !
• Grails 3 will make the framework composable -- pick and choose functionality you need !
• Introducing "Application Profiles" -- a strategy for grouping goal-oriented features of the framework !
• Improved performance -- Performance Legend, Lari Hotari now a core team member !
• Probably see greater adoption of Groovy in the core
Spring Boot !
• Grails 3 will be built on top of Spring Boot !
• Brings the continental Spring ecosystem, and integration points !
• Will add common structure and reduce verbosity of Spring Boot applications, while garnering all the benefits
Migrating from Grails 2.x to 3.x !
• There's no migration path here... This is a whole new way of doing things !
• That includes plugins... It's unclear what the plugin story is for Grails 3 -- likely libraries with lifecycle hooks
How are we doing things...?
Spring Boot !
• Early adopters of Spring Boot !
• Getting a jump start on figuring out the pain points of Boot integration !
• Communicating openly and frequently with the core team at Pivotal !
• Building our own infrastructure around Spring Boot technologies
Asgard !
!
The next evolution of Asgard will be a microservice PaaS built on top of Spring Boot
Don't get too wrapped up... !
• Designed our PaaS without framework lock-in !
• Very much designing for ways that we can evolve as new technologies (like Grails 3) emerge !
• Hoping our experiences with Boot will benefit the Grails community