Bumblebee software

Some say that aerodynamics can’t explain how a bumblebee flies. Perhaps that was once the case, but as far as I know there are no difficulties now. The bumblebee story persists as an urban legend. And it makes a nice metaphor for things that work better in practice than in theory.

Here’s the passage that brought the bumblebee story to mind.

Almost every software engineering principle that has become generally accepted as useful and valuable, Emacs flouts. The code is 24 years old, huge, and written by hundreds of different people. By rights, the whole thing should blow up. But it works — and works rather well.

This comes from Jim Blandy’s chapter in Beautiful Architecture. Blandy explains that Emacs’ architecture has allowed it to thrive despite some apparent disadvantages. Emacs is mostly written in its own programming language, Emacs Lisp.

Emacs Lisp has no object system, it’s module system is just a naming convention, all the fundamental text editing operations use implicit global arguments, and even local variables aren’t quite local.

In short, Emacs expects developers to be self-disciplined and does not enforce a great deal of external discipline. However, because the software is so light on bureaucracy, it is easy to customize and to contribute to.

TeX is another bumblebee project. Like Emacs, it has thrived for decades without following currently fashionable software techniques. Knuth implies in this presentation that TeX would have been a dismal failure if it had used technologies that are trendy now.

Related posts:

Serious lessons from Knuth’s joke
Giving Emacs another try

Tagged with:
Posted in Computing, Software development
3 comments on “Bumblebee software
  1. David says:

    If you read the source code for the Apache DefaultHttpClient, you will find seemingly perfect object oriented composition, and will likely find it completely inscrutable.

  2. PhilM says:

    @David:
    After resisting Apache HTTP Client library for many years, I finally gave in last week and attempted to use it. Reading the tutorial and skimming the code, I just had to cry at all the OO atrocity. And mind you, I am a grown man :) After championing OOP, Design Patterns and TDD for many years, I am saddened to see them mostly used as rituals than substantive aids to the process of product development. What is even worse is the lack of appreciation of ‘engineering’ in software development.

  3. Marc Brooks says:

    Emacs still works because developers prefer working on the tools to get the job done MUCH MORE than working on the job itself.

    Emacs is a tool, and working on that tool is “fun”…

3 Pings/Trackbacks for "Bumblebee software"
  1. [...] is the extent that you’re willing to rely on convention to maintain order. For example, the architecture behind Emacs is remarkably simple and highly dependent on convention. This approach has served Emacs quite well, [...]

  2. [...] programmers, which is why so many outstanding programmers complain about it. And he touts the architecture of Emacs as  ”remarkably simple and highly dependent on convention” due to the fact that its [...]

  3. [...] and the anti-Lisp Bumblebee software The myth of the Lisp [...]