On Mon, Aug 2, 2010 at 3:13 AM, Phil Jackson <[email protected]>wrote:

> Hey Nathan,
>
> One quick note here I might make is that having these things
> abstracted like that means that should the fundamental architecture
> beneath magit change (I'm thinking of the new key binging system we've
> been promising ourselves) then we needn't change plugins when we
> switch over.
>
> Cheers,
> Phil
>

I think that's a case of premature API optimization. It's hard to know how
the implementation will change and how that will effect the API; the struct
API might well need to be changed in similar ways. Given that, I think it
makes sense to go with the cleaner, more Emacsey API in the first place.

For instance: the new keybinding system will probably require that Magit
know what the prefix char is and what the subprefix chars are. This
information currently can't be extracted without potentially-inconsistent
string parsing.

I think it makes more sense to just let extensions upgrade to new APIs when
necessary. After all, there are only three extensions (that I know of) right
now, and the extension API will probably more-or-less stabilize before there
are many more.

- Nathan

Reply via email to