home *** CD-ROM | disk | FTP | other *** search
-
- I personally find it very difficult to argue in favor of the GNU
- keymap structure. It seems to me that building keymaps using the
- simple types has the following arguments in its favor:
-
- 1) It requires no changes to allocation code or GC code - things do break.
- 2) It requires no new read syntax or printed representation.
- 3) You don't need to worry about thinking of all the necessary
- primitives beforehand, since people can roll their own.
- 4) It's obvious, just by looking at the structure, how they work.
- 5) You get leverage from the ability to apply existing routines (assq,
- etcetera) to them.
-
- But those are kind of stretched.
-
- 1) Is is really that hard to write allocation, parsing, and unparsing
- code? ("Are we not hackers?" :-) )
- 2) Come on, it's not hard to come up with a good set of primitives. A
- keymap is a function mapping events onto commands. How many things
- do you need to do with that?
- 3) It's *not* obvious how to use them any more! Did you know that a
- binding for t in an GNU keymap structure acts like a default,
- catch-all binding, providing the only way to create a keymap that
- catches *all* events? And exactly what does it mean to nconc one
- keymap onto another? Are you *sure*?
- 4) You can no longer effectively apply existing utility routines like
- assq to an GNU keymap. assq doesn't know about the vectors. The
- keymaps are too hairy to be operated on by anything but code which
- knows it's dealing with a keymap.
- 5) It's a pain to upgrade. The keymap changes are probably the
- largest source of broken a lot of code in GNU 19. Anyone who
- thinks it's not going to happen again is a doodyhead.
- 6) It restricts your implementation. If you expect people to poke
- around in the data structure in the raw, this discourages you from
- making reasonable improvements, like the Lucid reverse indices.
-
- I have yet to hear a single mildly persuasive argument from anyone in
- favor of the GNU keymap structure.
-
- RMS is this great programmer. He's got GCC. He's got Emacs. He's
- got the MacArthur. He's got this luxurious pad on the fourth floor of
- posh NE43. I go to work for him, hoping some of that will rub off.
- It turns out that the single most common theme in his thought is,
- "That's too much work." "That's going to take too long." "Don't
- bother."
-
- Is that what it takes? Is this the punchline of my lifelong pursuit
- of hackerdom? I'm apprenticing myself to a blacksmith, just in case.
- :-)
-
-