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
Personal

Swimlane testing at Eclipse

Found some really interesting stuff about automated testing with a tool they’ve dubbed Swim. It basically uses the tests as online documentation. By abstracting actions to the correct level, and supplying generated screenshots every step of the way, tests can be verified and used as documentation. Through Ole Mortens blog. Check out Jon Udells entry for an explanation.

Categories
Development Personal

Incremental migration

Martin Fowler has an article about Incremental migration. Just goes to show that by dividing problems into smaller increments you will get benefits in most situations. It is important to have the mindset to always look at how you can break a task into simpler parts. Not as easy always, but important.