Abstraction Layers (was: DBus for Generic Data Access Methods?)
Michael 'Mickey' Lauer
mickey at openmoko.org
Tue Jan 30 15:25:21 CET 2007
Bryan Larsen wrote:
> Also Cf the linux kernel. When they realize that it's time to change
> the internal API, they just change it. They may have to patch 100
> drivers, but they've got the source to all of them. Contrast that with
> the external API, which they cannot touch easily. We've got cruft in
> that API, some of it more than 30 years old. In a lot of cases, it's
> good cruft, the result of lots of experience. In other cases it isn't.
> This doesn't mean it's all that much easier to change the internal
> API; before it's done, all in-kernel users of that API must be changed
> and verified; so it's not something that's done willy-nilly. But it is
> possible, and it is done when it is advantageous.
> I think I've gone off topic.
I have adjusted the topic ;)
> I really don't know much about D-BUS, but
> I really do get the impression that some people do not understand the
> power of open source. I'm personally responsible for a couple of really
> ugly API's / abstraction layers. At the time I thought they were a good
> idea. (Then my stack will be super useful to all my users because it'll
> be super flexible!) Luckily most of them were so horrible that they're
> (mostly) dead, but hopefully somebody can learn from my painful experience.
I agree. Since getting abstraction layers right is so hard, you
probably won't be able to make it unless you're a über-genius
engineer. In closed-source systems, you have no choice but leave the
APIs and deprecate them, if you add new ones. Open Source systems have
better options. I hope that -- at least during the early OpenMoko days,
when the framework isn't widely spread -- we can just fix mistakes in the APIs
even if that means, removing or renaming functions -- or even changing
their semantics.
--
- Michael Lauer <mickey at openmoko.org> http://openmoko.org/
============================================================================
Software for the worlds' first truly open Free Software mobile phone
More information about the openmoko-devel
mailing list