Hacker News new | ask | show | jobs
by Tor3 305 days ago
It doesn't make sense to define something as a "hobby" just because there's some enjoyable or, in the quote you made, "meditation" and "mind shift" parts in it.

What's a "hobby" anyway? As the one you commented on, I have also been programming for a very long time. And why do I continue to do that, instead of changing to some management role? The answer to that is that I enjoy programming. I enjoy making tools to make the tools to create the thing I want to create, and to have enough stuff I want to create, I have a job which provides that in abundance. There are no hard borders between "hobby" and "job". It's a useless distinction in this case.

1 comments

YES! Thank you! That's exactly it.

You know what really makes Emacs different than other editors and IDEs? Consider many ways one can transform selected text in VSCode. Let's say there are maybe 3-4 ways, with some extensions it can get to, I dunno a dozen?

Now consider that Emacs allows you virtually unlimited ways of doing the same thing. Because there are virtually unlimited ways to program that behavior.

In VSCode, you'd be clicking buttons and using shortcuts. Imagine if you had virtually unlimited number of buttons there? For different ways of running a command. That would be insane, right?

Well, here comes the argument if VSCode's (default) way maybe actually better? Some may argue about cognitive overhead - flexibility isn't free after all. Some programmers prefer tools to be tools rather than clay, yeah?

That's totally okay, I'm fine with all that. I'm just seriously baffled as to why Emacs is such an underrated and misunderstood tool. Why don't more programmers even attempt to try it? If you are a programmer, for sure, you should be, at least to a certain degree, curious about the ultimate programmable environment, no?

And don't bring the argument that non-emacs things are also "extendable". In virtually none of them can I open a buffer and add yet another way to transform selected text. Right there, without even saving that code in a file.

I'm not sure I agree that non-emacs things are not extensible, but I agree VSCode could be a lot better about extensibility. It's a shame that there isn't some convenient way to add JS hooks at startup like how you can with emacs and elisp.

For an example of a system that I think is probably just as extensible as emacs, look at TiddlyWiki. If you really want to, you can add in arbitrary JS and even the main tiddler edit form is itself a tiddler that can be customized as much as you want.

> I'm not sure I agree that non-emacs things are not extensible

Anything that runs on a computer is a program; by definition it is a "programmable" entity. It's only a matter of the degree of intentional programmability - exposed interfaces, APIs, scripting languages, or configuration systems that make modification practical and supported.

From my perspective as an Emacs user, where I can extend virtually any part of my running system by simply evaling some code in a buffer, without having to save, lint, link, compile, publish or restart - an extreme degree of intentional, designed programmability.

From that perspective, VSCode in comparison pales into looking rather constrained and bureaucratic, making it, personally for me, virtually not extendable - I have close to zero incentive to even try. Don't get me wrong, I would use it for certain tasks; it is an excellent tool, but I don't think it ever would become my main instrument - it will just annoy me to death to deal with it on daily basis. Joyride looks promising for making the experience smoother; still, it feels more like a band-aid.

So, yes, once you truly experience the genuine extensibility of the malleable nature of a Lisp-based system, you would completely rethink your entire understanding of programmability of things. I write code, my main instrument must be easily extendable through Turing complete coding mechanisms, not through structured data in json or xml; nor through clicking buttons or dragging boxes around.