Hacker News new | ask | show | jobs
by afavour 1753 days ago
Because it's cheaper, quicker and the vast majority of users are fine with it.

I'm not excusing it, I curse Slack every day I have to use their Electron app (though mostly just use it in a browser tab now) but we have this exact same conversation every time anything about Electron is posted on HN. None of the parameters for making the choice have changed since the last time we did.

3 comments

> I curse Slack every day I have to use their Electron app

I did that too for the last couple of years, but recently switched to this client: https://cancel.fm/ripcord/ Found the link in comments here on HN.

Works well so far. There’re couple minor UX issues, e.g. hard to react to messages with these modern hieroglyphs, also images are loaded in web browser, but I can live with them. The upsides (ability to setup font faces and sizes, resource usage, GUI latency) are far more important for me.

It's been a couple years since my workplace migrated away from slack, but I found weeslack [1], a plugin for weechat, to be sufficient.
The real reason is that the people making electron apps don't know how to make stuff in C++ and don't want to try. This might be a little more excusable before C++11 or if trying to avoid MFC and/or doing everything with win32, but modern C++ and GUI libraries like FLTK, Juce, Qt, etc. are a pretty great way to make something. A FLTK program can start at 100KB without dependencies.
These aren’t developer choices being made. They’re product choices by product managers. I bet there are plenty of JS developers that would be interested in picking up C++ or something like Rust but don’t have the option.
In what world is building an application in a language like C++ when the rest of your tech is built on javascript/java/go ever economical or excusable for a business?

And don't tell me development time will be remotely similar either.

> when the rest of your tech is built on javascript/java/go

Where does this come from? This is a program being distributed to other people.

> And don't tell me development time will be remotely similar either.

It will be in my experience. I haven't felt like C++ slows me down in a long time. Modern C++ and STL vectors + hash maps is the vast majority of what you need. There is no memory management to be found, just moving variables when returning them from an inner scope.

Then you have a single binary that is incredibly fast on any modern computer and even many that aren't so modern any more.

> This is a program being distributed to other people

What does this have to do with anything? Everyone in the company works on 3 languages. Introducing a new language, with new runtimes and build tools and domain expertise introduces a ton of overhead.

> It will be in my experience. I haven't felt like C++ slows me down in a long time. Modern C++ and STL vectors + hash maps is the vast majority of what you need.

Every tool set has its own set of idiosyncrasies and bugs and general bs that has to be learned. Saying that introducing a new set of tools is cost free is a stupid lie.

You moved the goalposts so far you are saying exactly what I said in my first message. People don't make native programs because they don't know how and don't want to learn, even though it is what people want.