XEmacs is Dead! Long Live XEmacs!
steve-yegge.blogspot.com
steve-yegge.blogspot.com
I am not sure if anybody here remembers, but back in the early 90 people believed that "future belongs to integrated environments", that's right - to IDEs and not just for programming. And now he's talking same thing again.
For those working for a web-services company (or living in SV these days) it may be natural to think that "everything is in the browser".
But is it? I still can hear PG's voice from Startup School in my ears: "Stop using the Internet please, my presentation won't open!"
The tools vary considerably in size and in how well they integrate with each other. Often the tools can be swapped in and out according to your preferences or needs: different in implementation but quite similar in spirit to the do one thing and do it well aspect of the Unix philosophy.
Vim is an awesome text editor, it is streamlined in a way most editors could only dream of. It's a very good text editor. Python is a very good language. One of it's nice features is that it comes with a REPL, so I can program in it interactively. Using a third program Screen, I run both side-by-side and pipe content between them. This is the toolkit at work, and it works very well.
However, there is a slight problem here. Each of these programs has a different interface design. Each has a separate key-binding scheme and different schemes collide. You have to learn three different interfaces and learn them well, to do this effectively. It would be nice if there was a program, similar to screen, that would stand between you and the editor and interpretor and allow you rebind and customize your keys and view ports so that they don't collide and are consistent. This program is emacs. It is the universal interface, a more flexible bash than bash, and people stay in it all day, not because they don't use toolkits, but because they prefer to use it to interface with toolkits rather than bash or some ill-conceived X monstrosity.
Emacs doesn't replace cvs/git, ls, grep, awk, gdb, gcc, python, rbi, cron... It mostly just provides a very powerful scriptable interface to all of them.
Here's another way to think about it: cobbling together myriad programs at the terminal and getting them to talk is an ad hoc, informally-specified, bug-ridden, slow implementation of half of GNU Emacs. Like it or not, you're going to work in some kind of environment, so it might as well give you awesoma powah in every window you open.
Emacs isn't one giant software package. It's a lot of small, specialized tools (functions) working together. It's one executable in your operating system, but that doesn't mean that it can't be modular inside.
I haven't really understood the appeal of the single, monolithic, do-everything editor up until this point, but looking at it from a self-modifying point of view does make it somewhat more appealing (and I need time to ingrain the key chords into muscle memory and learn some elisp).
I think the exciting idea was that of a the browser-as-editor. Where is the browser that acts as an editor and has all it's plugins written in javascript (as opposed to elisp)? Of course, once we had that, the next goal would be to replace bash with it... browser as terminal ftw.
I'm sure an emacs-in-JavaScript would also have a good library, but let's face it... Lisp is very enjoyable to use. There may be more JavaScript programmers than Lisp programmers... but the same could be said for PHP, and I don't think anyone wants a PHPmacs :)
I'm not married to the javascript idea, I just suggested that because it's already used for a ton of other things in the browser, so it'd make sense to make the browser-as-editor extensible in javascript.
If we really want to make it from the ground up, it'd be nice if we could replace javascript with something like Scheme[1] (or Arc ;) as the de-facto client-side scripting-language in the browser.
My issue with doing it in elisp is that it's yet another special purpose language to use, and the web already requires three or four of them to get anything done as it is. I'm not scared of learning it, but if I am going to dream of pie-in-the-sky, I might as well dream of a world where one language gets things done on the web.
[1] I would suggest Lisp here, but honestly I got started with Scheme, and for some reason (purely aesthetic), CL just seems so ugly to me.
I never managed to use XEmacs for very long, because it crashed a lot
but then
XEmacs doesn't crash any more often than Firefox
and
XEmacs may crash even less than Eclipse and IntelliJ
For me Firefox and Eclipse are rock solid. So what is it? Does "a lot" mean every 6 months? Or every day?