Hacker News new | ask | show | jobs
by spamizbad 524 days ago
Ditching a native framework for something JS-powered and running everything thru a cloud server sounds like technical decisions willfully made by engineering leaders.
2 comments

Probably egged on by people telling them they had a much larger hiring pool if they went with JS (which is almost certainly true).

Just once, I’d like to see a leader actively refuse these kinds of arguments when the process they have is objectively better.

Never once have I ever experienced an Electron-ified version of an app and thought, “oh yeah, this is better.”

I have, it's called Visual Studio Code and I ditched my old native editor(s) for it.

I'd even suggest that the fact that it's JS based has significantly changed the tech world because the editor itself will run in a browser so it's here https://godbolt.org/ , and here https://codesandbox.io, and here https://www.postman.com/, and here https://aws.amazon.com/pm/cloud9/ and 100s or 1000s of other sites.

VSC is the least bad Electron app I’ve ever used, but (heavily subjective) it pales in comparison to Neovim + Tmux. It’s not even close.

Related: I was looking at WinRAR’s site last week after reminiscing about it with coworkers, and found that a. They haven’t really updated their UI since I last used it a decade+ ago b. The download is still 4 MB. THAT is why native is superior – if you know what you’re doing, you can get incredible performance with absurdly low filesizes.

why do i care about filezises though? storage is sized for HD video now
Because I need the space for videos and games and that's why I have large storage. Not for tiny applications wasting 300 MBs because someone thought that an electron app would reduce engineering cost.
Aside from the fact that it shouldn’t take hundreds of MB to launch the simplest of apps, and that it’s incredibly wasteful on its face? Memory. Where do you think those bytes end up when you launch it?
It's not, plenty of old hardware exists, but if you personally don't care about waste, what do you expect, a convincing argument that you should?
I use VSC because some mature plugins only exist for VSCode, like Rust, and Microsoft pushing it for stuff like PowerShell, killing their ISE IDE.

And it only performs that well, because all critical code is written in a mix of C++ and Rust running in external processes, and they have ported text rendering into WebGL.

It's an interesting example, because the fact that it is js makes it trivial for most developers to make modifications to it by opening the Chrome DevTools. Even if you're not a js dev, you probably occasionally write some js.

I'm arguing that it's successful because any of its users can trivially hack something on top of it and distribute it, including things the original devs never intended or think is a good idea. In that way, its success mirrors Excel.

> I'm arguing that it's successful because any of its users can trivially hack something on top of it and distribute it

Emacs and Vim are way easier to extend.

Vimscript and elisp suck, but Lua isn't bad despite being 1-indexed.

But in terms of access, JS wins hands down.

You may not like the languages, but it's way easier to add a new feature to these editors than doing the same in VSC. Especially extending a plugin.
> Probably egged on by people telling them they had a much larger hiring pool if they went with JS (which is almost certainly true).

There are many VC funded companies here. How many of you felt pressured to pick a hireable language like JS/Python because if not you couldn't deploy your investor's capital? Like, if you had presented a plan of "I'm going to need 4 graybeards that know Haskell", you'd get denied for not thinking big enough.

Interestingly, Mercury [0] is VC-backed, and their backend is entirely Haskell. In an interview [1], their CTO mentions that it’s actually quite easy to hire for Haskell, as the demand is much lower than the supply, and, as he slyly puts it, “interest in Haskell acts as a decent proxy for baseline developer quality.”

So while the pool is larger for JS/TS and Python, that may not always be beneficial.

[0]: https://mercury.com

[1]: https://serokell.io/blog/haskell-in-production-mercury

As much as I hate Electron apps, I have to admit that there are incredibly, unbelievably well done apps created with it.

VS Code and 1Password 8 do come to mind. Blazingly fast. Low memory footprint. Incredibly reliable.

1Pass is a perfect example for my argument – v7 was amazing, and native. v8 has weird bugs, like refusing to open despite saying it’s working fine. As to memory, while I forget the consumption of v7, v8 looks to consume somewhere around 130 MB for the app, plus that again for a renderer helper or two, and then the browser extensions.

100+ MB for what is essentially an encrypted local DB with cloud sync and a GUI seems absurd.

Only if you haven’t used the alternatives.
That's an example of something that can be done well or done poorly.

AirBnB, UberEats and Facebook are all built with React Native and they have excellent performance.

Using a JS framework for your UI doesn't inherently mean it will suck. It can be done well.

If you expect it to be half as much work, you'll be disappointed.

If you expect it to be a tradeoff that makes some things easier and some things harder, and you're willing to invest in making it excellent, then it can be a very reasonable choice.

> AirBnB, UberEats and Facebook are all built with React Native and they have excellent performance.

https://getmcss.com/press/facebook-exits-react-native

> Performance issues: React Native apps are known to have slower performance compared to natively built apps, which can be a drawback for users.

Airbnb has dropped React Native.

https://news.ycombinator.com/item?id=32485178

> Facebook

At least on iOS, the Facebook app is not and has never been built with RN. Some features were, but none of the core ones like News Feed. The biggest example of an RN-based feature is Marketplace.