I'm a big fan of solutions which try to keep technology simple as possible. So it is no wonder that I'm in love with db4o: No SQL, no XML, no ORM, just me and Java and Persistence which simply works. That's a deal.
Another big simplification for me (mostly developing intranet web-applications) is using the wonderful component & event-based
Echo2-Ajax-framework as presentation tier. No HTML, no CSS, no JavaScript, just me and Java and a rich & responsive GUI which simply works across browsers. That's a deal too.
But the mess creeps slowly into your stack of libraries...
I've used...
- Velocity as simple templating framework for plain-text reports and mails (loaded from a db4o-database);
- JSPs for simple HTML-based reports (loaded from file-system);
- BeanShell as script-language for evaluating dynamic business rules stored in a database (db4o of course) and as ad-hoc query-processor for db4o.
Too many different technologies with a similar focus with different pros and cons... any chance to clean up the mess?
I recently started to (re-)evaluate
Groovy and come to the conclusion: Groovy solves all my templating, runtime-scripting and ad-hoc-query problems with one integrated, well-balanced and very flexible technology. So I only need to know my Groovy to create complex but clean templates (text or html or whatever), dynamic evaluations of code-snippets and ad-hoc queries against my db4o-databases (and the Groovy-Syntax make these queries looking real cool).
Groovy is just another cool KISS-technology besides db4o & Echo2. It's always nice to see when things become simpler... and to learn something new...:)