Know your tools…

29 October 2006

An interesting post from a good friend of mine about the importance of using extensible tools — he is a big emacs fan, so you better be prepared to what you can expect there… :-)

Just a quick note: one of Jao’s philosophical takes on emacs is that emacs is a full operating environment, you know, the thing you put on top of a running kernel… he is fully right at that, since you can do almost everything without leaving emacs (emailing, web browsing, programming, etc.) and everything is “nicely” (well, it depends, actually there’s much debate as to how nice emacs is… :-) ) integrated by means of the powerful elisp glue…

But there’s another side of the philosophy-coin: possibly emacs evolved as it is in order to fullfil a traditional gap of all UNIX-based OSes, which is the almost absolute lack of integration between different applications (in turn due to the lack of sufficiently high-level means of IPC). Thus, emacs first built an integration/extensibility layer at its core, then grew upon it in a way such that it has come to be what we all know.

But then, the most interesting question I can ask is: would emacs be the same, had you got that kind of (cross-application) integration/extensibility at the OS level? Or, from a different point of view: what if the “glueing-layer” that emacs offers were included in the OS itself? And then: is there such an OS somewhere around?