At the Grails Exchange, Marc Palmer gave an excellent talk about keeping Grails one step ahead. This talk resonated a bit with the work we been doing in Secret Escapes for the last few months.
After having a little think about it, I feel like there are a few other things that would be nice to have to make Grails a easier choice for developers:
1. A Payment / Transaction / Shipping API ( E-commerce plugins ) – Right now, it is fairly difficult to add a Payment Gateway or Merchant Account. Tools like Magento in the PHP world do a fantastic job in abstracting away the details of integrating a payment gateway and merchant account. It would be nice to have a common API extended by all the different payment plugins. This would make it easier to build ecommerce functionality without having to worry about whether you are using BrainTree, Authorize.net or Satan’s favorite Payment Gateway, Paypal.
2. Internationalization API – At the exchange, I mentioned that Globalizing a Grails application is still a bit complicated. There seems to be a few plugins that set out to help localize domains and message bundles, but what seems to be lacking is a plugin like resources where you can go – “oh, I need to support multiple languages, I need to install the Globalize plugin”.
Message bundles simply do not go far enough in this respect. There still doesn’t seem to be a straightforward way to add multiple language enabled domain classes, url mappings or do ad-hoc language switching very easily. This problem was very apparent 4 years ago when I was building sites in Canada, and it is still true today.
3. Easier to customize scaffolding – The CRUD interfaces provided by Grails scaffolding are getting very nice. But it would be nicer if the scaffolding framework could be more extensible. If you look at the code of plugins like Flex Scaffold, there seems to be a lot of work being done for it to be similar to the default html scaffolding.
It would be nice if there was a common scaffolding interface that enabled adding rich client or mobile templates. It would also be nice if it was possible to add more template types, so instead of the typical ‘You can edit only one item at the time in separate screens’, scaffolding supported things like adding master-detail views, search and reporting templates and other types of alternative views that are automatically generated.
5. Member Services / Identity API – Working on a member’s only site for the last year has highlighted the need for a higher level framework for managing users. Nimble, Spring Security UI all provide a pretty good approach. But it would be nice if there was a common extensible core for this type of functionality.
6. Easier Reporting – on the business needs end of things, it would be nice if there was a slightly higher level page view tracking and reporting mechanism enabled. In our talk, we talked about how we built a simple engine that enabled us to store SQL / Groovy queries and render this out into reports. It would be nice to be able to easily generate summary reports and charts on domain classes, pageviews and similar mechanisms.
7. Content API / SEO – There doesn’t seem to be a lot of information about how to make Grails sites very SEO friendly. It would be nice if the URLMapping and Layout mechanism enabled easier customization of domain objects to inject specific fields like title, keywords and descriptions to domain objects. Also, having the ability to have sitemaps automatically provided and robots.txt templates provided would be very helpful.
Can you think of anything else?