Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> The odd thing about Emacs is that its vastly superior customizability (or malleabilty, as the article says) tend to be a trap, for one can spend hours, and days, getting lost in its huge universe and falling into rabbit hole after rabbit hole instead of actually getting stuff done, but I've not yet decided if that's a bad thing or a good one.

I 100% agree with this. The customizability of Emacs is another double-edged sword.

On one hand you can do whatever you want within Emacs. On the other hand if you're not careful your configuration could become a gigantic mess of code that is hard to get through and debug.

You can also run into situations where you need to do a particular $thing. Sometimes that $thing are 1-2 lines of elisp, requiring a package, or just copy-pasting some lines of elsip. Other times that $thing will take hours or days to get working.

You can also find yourself in a situation where you were knee-deep in elisp customizing Emacs and then you take a break or want to switch over to a different task. Depending on what state you left your customization in Emacs could end up being broken or hard to work with until you finish your customization.

(These are all things I've personally run into).



Emacs offers so many tools for interactive development and debugging that your first scenario should never happen, assuming you learn what's available and how to use it. Of the systems in use today, only Smalltalk has better introspective capabilities. Common Lisp through its Genera manifestation is superior even to that, but not easily available.

Emacs is the only contemporary widely-used system that can really be described as an apex / convergence point of stability, extensibility and self-empowerment. It is the clearest manifestation of "computers are an extension of the human mind" idea that goes all the way back to control theory/cybernetics, Licklider ("Man-Computer Symbiosis"), Engelbart, Alan Kay ..

One reason Emacs is such a rabbit hole, is that it always asks more of you. It always reminds you, assuming your mind is receptive, of the sheer potential on offer. Like any iconoclastic technology, it exhibits agency in that it tempts you to start using it in the way it wants to be used! And that's powerful. Very powerful. You're not simply writing scripts to scratch a temporary itch, but really learning about how to develop strategies to better manage information. You are expanding your own mind (cybernetic fusion) and programming the new metasystem at the same time. That's not an easy problem to solve but perseverance will bring ample reward.

What does it say about the current state of affairs when the typical reaction to experiencing Emacs for the first time is one of instant recoil due to the size of the set of possibilities now made available? We've been so conditioned by tools that operate in A-B-C fashion to expect a single, well-lighted path that we become dissonant to an alternative that opens up entirely different ways of thinking about and dealing with information.

As to your last point, you can always fire up a new Emacs process and do your highly experimental customization there if you don't feel confident in being able to keep track of what's happening and/or worried about breaking things. Eventually you'll reach the point where this sort of decision is automatic and seldom needed.


> Emacs gives you so many tools for interactive development and debugging that your first scenario should never happen, assuming you learn what's available and how to use it.

Haha, I first used Emacs without knowing how to use the interactive development and debugging tools. I learned how to use the tools after I kept on running into issues.

> you can always fire up a new Emacs process and do your highly experimental customization there if you don't feel confident in being able to keep track of what's happening and/or worried about breaking things.

This is a great idea! I'm going to do this from now on.

> Emacs is the only system available today that can really be described as an apex / convergence point of stability, extensibility and self-empowerment.

I absolutely agree. Using Emacs just feels so /cool/. The only time I've felt limited by Emacs has never really been Emacs' fault, it was either I didn't know enough elisp or it was due to some other program or process not interacting nicely with Emacs (which could be fixed if I knew more elisp).


>As to your last point, you can always fire up a new Emacs process and do your highly experimental customization there

I guess I didn't feel confident in my ability to adhere to that policy (of making changes only to the secondary Emacs process), so what I do is keep a backup of my Elisp code with the result that

   emacs -q -l <path to backup init file>
always opens a process usable by me.


i commit all of my Emacs config to git and use version control, so in theory i can just git checkout abcdef1234 and I'm back up and running.


Can you, please, describe, why do you think that Genera was superior to Smalltalk? I never had the opportunity to test it for real; however, I checked a lot of materials about Genera, and my impressions were the opposite. So I would really appreciate some arguments.


You should really try and use it if you are seriously interested in this paradigm. You can get your hands on it with a bit of searching. As for comparing the two, the philosophies and ideas are similar. Obviously there was significant cross-pollination.

Smalltalk always had an experimental, research-oriented aura around it. It did end up in industry but in a degraded, business sense did not live up to its potential at all in that domain. The Smalltalk environments that have significant value today (mainly Squeak and to a somewhat lesser extent Pharo) are firmly rooted in research.

Genera embraces the same philosophies but also hones them to an extreme degree through the forge of practicality. Its systemic cohesion and attention to detail is unparalleled. There is little "slack" and you don't get the sense that there exist systemic aspects that were not extremely well thought-out in both design and implementation.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: