Categories
Development Personal Web

Abstractions always leak

A quote of a quote in a InfoQ article on the release of GWT 1.5:

Key point: GWT gives you a lot of leverage, but it isn’t intended to be a “walled garden” in any way. Abstractions always leak, so it’s better to embrace that fact. We intentionally make it easy for you to punch through the abstractions and get down to the nuts and bolts JavaScript environment so that you can integrate with any other technology you like. That flexibility is a sort of insurance policy for both GWT itself and GWT users: you can be sure that you’ll be able to combine any client-side technology you want with GWT, and we (the GWT development team) don’t feel as if we have to explicitly provide integrations for an open-ended set of things, because you can always do it yourself without waiting on us. For an example of the kind of flexibility I’m talking about, check out Ray Cromwell’s Syndroid work.

This is a key aspect for good frameworks. Not only because abstractions leak, but also because sooner or later someone will discover a bug or a missing feature. Making it easy to fix or extend the framework for those special cases is essential for a good framework to live and to be adopted.

Categories
Development

Spring Batch concepts

I’m mostly doing batch these days, so I’m keeping an eye out for what’s happening with Spring Batch. It does have a lot of concepts that resemble what our home grown framework is built around, so I can relate to a lot of it. The same reason will also hopefully make us able to migrate to it in a little while. Given the excellent track record of the Spring portfolio of frameworks, I have no doubt that migrating to it will reduce and improve our code.

To check out some comments about the further process and an explanation of some of the core concepts, check out this blog entry.