First things first: I refuse to create an account on HackerNews. It’s honestly one of the most toxic programming communities that I know of. One thing that always come to my mind when somebody links me an article on HackerNews is the phrase:
The person who says it can’t be done should stop bothering the one doing it
Seems that this first phrase was written, without attribution on the “Puck” magazine under a slight different wording and meaning, but I honestly prefer this newer version. Anyway, back to HackerNews, somebody posted about Pulsar on it. And, as always, the comments are mostly negative. This basically triggered me a lot more than I would like, so instead of creating an account and giving them more visibility, I prefer to address these issues on my blog – so I don’t risk being triggered even more when some stupid keyboard warrior writes nonsense on why our work is useless (I told you I got triggered by the comments!).
So, to answer many of the stupid remarks on the site:
Why not make a faster/native/more performant…
Seriously… do we need more of these? There’s Zed, Notepad++, Sublime, Kate, Lapce…. to mention a few. All of these have different plug-ins format, some of these are trying to make a newer plugin architecture using WASI, etc. None of these are as hackable as Pulsar/Atom or even VSCode.
We can also have NeoVIM and Emacs, which exist since forever and are as hackable as Pulsar/Atom. So go ahead, install them and use them. But don’t bother the ones doing something different.
I could argue also: why do we even need a native or performant editor? It has been proven, over and over again, that programmers spend more time reading and debugging code than writing it, so why does it bother that much that your editor takes three seconds to load instead of 20ms? Are you running your editor on Amazon Lambda? Are you closing and opening your editor everytime you try to edit a new file?
Extension on Atom conflict with each other…
Do they? Honestly, they don’t – by a light-year. I use Pulsar with three different extensions that change the way the editor edits files: lisp-paredit (indents code correctly for lisp-based languages), parinfer (infers parenthesis based on indentation) and vim-mode-plus (adds a VIM mode with all VIM commands). 90% of the time, they don’t conflict with each other, with the notable exception being when handling snippets and some autocomplete issues with multi-cursor.
Now let’s look at VSCode – unless your extension also bundles “formatting” you can’t use a different extension for the right indentation. If two different extensions handle formatting, they 100% conflict with each other, to the point of both being unusable so you have to disable one. It’s close to impossible to have parinfer on VSCode because of the API limitations; and lots of other issues…
Also, another thing: with great powers comes great responsibilities. In Pulsar/Atom, there is a way for extensions to communicate with each other – it’s called Service Hub and basically defines a provider of a service, and multiple consumers of that service. One notable example is autocomplete: the “core” package consumes autocomplete, and providers offer a group of completions to it – meaning that these do not conflict with anything, work well together, and if you don’t like the default autocomplete, you can fork the package and create your own autocomplete consumer – and this works out of the box. No other editor offer this level of configuration, with maybe the exception of Emacs – not even NeoVIM, where you have different autocomplete packages and you have to program your completion specifically for that package.
But we, humans, like to have power but without the responsibility. I had multiple packages that basically inferred that their dependencies would be present on the editor (instead of using the provider/consumer service hub) or made the provider/consumer in the opposite order (instead of understanding the concept)…
Why <multiple other stupid questions about performance, vscode existing, or electron being slow>?
It’s our time, and we decide what to do with it. Seriously, grow up. Open source is not about you, it’s about what the authors feel meaningful to be doing. Aspects of that link, changed to Pulsar’s ideas:
If you have expectations (of others) that aren’t being met, those expectations are your own responsibility. You are responsible for your own needs. If you want things, make them.
You are not, however, entitled to it being the effort, focus or response you desire. We get to make our own choices as regards our time and lives.
So, if you want a performant, native, non-electron based, with a rich plug-in system or not, that supports all modern languages or not, whatever, make it. By all means. Show the world, yourself, or whatever, that you can make it.
Then, publish a post on HackerNews, and get your morale destroyed by keyboard warriors that “know better than you” and will gladly, unilaterally, show you how wrong you are and how they know better. Savor this bitter feeling of being excited by something, just to see it being destroyed by people that don’t do anything meaningful, didn’t try your project, didn’t think about you, the time and effort destined to what you’re doing, and feel on the right to tell you how you should use your time.
Then, maybe then, you’ll understand the feeling you imposed on others.