8 ms·
People complaining about electron are the same type than the ones that used to say : - why are people writing this stuff in C. It's so slow and you don't have
by sametmax 10y ago
People complaining about electron are the same type than the ones that used to say :
- why are people writing this stuff in C. It's so slow and you don't have as much control on memory. Write it in Assembly.
- why are people writing this stuff in Java. It's so slow and you don't have as much control on memory. Write it in C.
- why are people writing this stuff in Python. It's so slow and you don't have as much control on memory. Write it in Java.
Eventually people want to solve a problem with the best ratio cost/quality for them, not "doing it the proper way".
So unless you provide a better solution for them to do that, or pay big money to create such solution, they will find the ugly-hackish-half-baked-working-for-them solution that let them do this.
We had PHP. Now we have JS.
I hate it. You hate it. We all hate it.
But I created portable GUI apps with an installer before in my favorite language and others and it was a pain. All of it. The UI, the event model, the API, the portability edge cases, the new stuff to learn, the packaging, the dependencies...
It sucked.
So get over it or provide a solution, but stop complaining.
And before you start providing an EXISTING solution, remember people tried it and they didn't like it as much as electron. And since electron is so bad, that should tell you something.
So the market is saying you are wrong. You can ignore it from your better tech tower... Try to boycott electron apps all you want. But we know how it has played for betamax, lisp and the ogg format.
P.S: oh, and if electron is flash, remember that flash won the web for 15 years while it sucked. And you know why ? Because it allowed people to do stuff they wanted easily, like videos and animations. And it's not because we couldn't do it any other way, we could. Yet we had to wait almost 2 decades to see it dies, at the price of battery, stability, security and everything else. Feature trumps everything. People. Don't. Care. We only manage to kill it because we finally replaced it with systems that could compete on easiness and features. So you know what to do.
- scribu 10y ago> So get over it or provide a solution, but stop complaining. Complaining is a necessary first step in finding a better solution. Before being able to solve a problem, you need to first articulate what the problem is.
- sametmax 10y agoThat's fair enough. But you'll notice I didn't say "you should not be complaining", only that now it's time to stop and act.
- dheavy 10y agoAmen
- agentultra 10y agoThat's always been the trade-off: high-level development environments with a great developer experience and a pleasure to deploy to users... at the expense of premature pessimization. In all my years managing applications built for mobile (whether phones, tablets, or laptops) any time someone says, "let's use webviews," you know there are going to be performance issues down the road. You'll get to market quickly but you're going to spend that development effort down the road closing the gap and trying to tame a vastly complex VM to make your users happy again. I'm hoping react-native like dev experiences will make us re-think how we can have our cake and eat it too.
- 2bitencryption 10y ago> why are people writing this stuff in C. It's so slow and you don't have as much control on memory. Write it in Assembly. did anyone ever actually say this? > why are people writing this stuff in Python. It's so slow and you don't have as much control on memory. Write it in Java. this one is odd to me considering Python came first...
- sametmax 10y ago> did anyone ever actually say this? Wordperfect is famous for failing because they sticked to assembly while the competition moved to C. > this one is odd to me considering Python came first... It is indeed. But date of creation has no importance in this. Java became popular first, and is faster and consume less memory than Python. I'm a Python dev now, and I when I picked up the language more than a decade ago, people where looking at me like I was crazy.
- wccrawford 10y agoGood lord, yes. They only recently stopped saying it in GameDev circles.
- lerpa 10y ago>> why are people writing this stuff in C. It's so slow and you don't have as much control on memory. Write it in Assembly. >did anyone ever actually say this? Yes, in the 8bit era.
- acdha 10y agoThat was a common refrain through the 90s and early 2000s – compilers, and especially open-source ones, have improved significantly since then but at the time it was relatively common for someone to replace a hotspot with inline assembly for a significant boost.
- zippergz 10y agoThe flip side perspective of this is that end users are forever plagued with poorly-performing/behaving software, because developers favor their convience over user experience by continually moving on to new technologies before they're mature enough to be satisfactory replacements of the old stuff.
- sametmax 10y agoBut the majority of users/clients/bosses won't pay for better software. They want it now, for free. The market is asking for more and more software, with more and more complex features. And they must be usable on many platforms, by users incapable or writing their name correctly, let alone comprehend a computer. In the mean time you have a bit more trained programmers, but not that much more. And most of them are not remotely good enough to provide fast, reliable and usable software. The ones that can are expensive. In this situation, any shortcut you can take, you take. It's like the quality of food or kitchen wear. You want 1000 of fruits available all year long ? Ok, but the quality will suck. You want everybody to be able to afford 10 machines to do every single things instead of you. Sure, but they'll break in 2 years. My mothers kept her machines for 20 years, and I can seldom keep mine for 5. I eat tasty tomatoes 25 years ago. Today I have to look for them with expert knowledge and a bag of money or they'll taste like plastic. As long as everybody wants a piece of the cake but nobody wants to pay for quality and don't want to wait, well, you'll end up in those situations. For software, this is only going to get worse. Every year, I get paid more and more, I accumulate more knowledge that the newcomers are struggling with. I refuse work. And I don't get penalized for any shortcut I take. This situation is not going to end well.
- apostacy 10y ago> P.S: oh, and if electron is flash, remember that flash won the web for 15 years while it sucked. And you know why ? Because it allowed people to do stuff they wanted easily, like videos and animations. And it's not because we couldn't do it any other way, we could. Yet we had to wait almost 2 decades to see it dies, at the price of battery, stability, security and everything else. Feature trumps everything. People. Don't. Care. We only manage to kill it because we finally replaced it with systems that could compete on easiness and features. So you know what to do. I really miss the simplicity of a self contained swf file that could be embedded in an html page, but was usually also self contained and could be downloaded and run on its own. And of course they are tiny and fast. And I could run them in Linux, or even on my Palm Pilot. Except for battery consumption, were they really that bad?
- sametmax 10y agoThey were crashing your browser all the time, hogging randomly CPU and were the worst vector of malware infection ever. They destroy select, right click, history, scrolling and copy/paste. But I get your point, it's was really handy. Only this year HTML5 videos are starting to be on par with flash videos. Those were so light to download.
- apostacy 10y agoMost of those problems have been replicated with HTML5. Yes, HTML5 can do some cool things. But I also find myself missing flash sometimes. HTML5 was not a replacement. And, based on the direction things are going, I think it's only a matter of time until you can't even select text properly or scroll in a predictable way.
- sametmax 10y agoFew people rewrite scrollbar with HTML5 based tech. I have yet to see a virus propagate because of a W3C web API. For the memory/battery though, you are more and more right every day.
- deleted 10y ago
- camgunz 10y agoSoftware dev is about tradeoffs, and the argument against Electron is that the tradeoff in resource usage is bananas for nebulous claims about "it looks better" and "I wrote my app faster". Every time this comes up on HN, someone says, "wow, Electron is Dracula to batteries, and all I'm doing is sending text to people/playing an MP3/blinking a cursor". Managing tradeoffs is a fundamental part of development strategy. You can ramp up quickly in a productive language like Python and then stabilize on a more efficient language like Java. New platforms like Go/Swift/Kotlin are trying to get in this sweet spot (and mostly succeeding), and existing platforms are trying to inch closer towards it (Python/JS with performance and Java/C#/C++ with ease-of-use features) to avoid the "do over" > And before you start providing an EXISTING solution, remember people tried it and they didn't like it as much as electron. And since electron is so bad, that should tell you something. I doubt everyone who's built a desktop in Electron tested Qt first. Definitely not in C++, but probably not even in QML or Go. > People. Don't. Care. People absolutely care, they're just not software engineers so they can't articulate precisely what they care about. It's like you never heard someone complain about shit battery life, unresponsive web pages and apps, or slowness in general. Most of these Electron apps work in network effects. People have Spotify because their friends have Spotify; people have Slack because their work uses Slack; essentially people are generally saddled with your app for non-technical reasons. But that should be an argument for giving them good tech, not an excuse for giving them bad tech. "Well, you'd have to use this anyway so I can get away with burning through your battery life and you'd still count towards my usage numbers". Ick.
- sametmax 10y agoThis is the problem here. Your post illustrate it perfectly. You just ignore what the market is saying because "you are right". You are completely missing the point.
- camgunz 10y agoI guess I don't know what your point is then. Isn't your argument: "progress means taking advantage of hardware advances to use more productive tools?" I disagree with your assertion, because I don't think the only measure of progress is how productive programmers are (time-to-market, whatever). There are other measures: - user experience - program efficiency (battery life, fossil fuels burned) - program security - ease of contribution, maintenance, and improvement I mean, correct me if I'm wrong. But I feel like I've directly addressed your points. I simply don't think that you can say, "well it's X% faster to build an app on Electron, therefore Electron is the best... even though it runs Y% slower and burns Z% more battery". That's why I talked a lot about tradeoffs, because there's more than one issue. For what it's worth, I also dispute the productivity argument. It's hilariously easy to build an app in Qt Creator. Maybe web devs can build Electron apps faster, but that's because they're web devs. I'd bet if a web dev took a month to get to know Qt they'd be as productive. The difference is that the resulting app would be a lot more efficient.
- bartl 10y agoI love Javascript. But 160MB for a chat app? That's insane.
- Neeek 10y agoBut the author says right there at the bottom, the problem isn't JS or web APIs, just that we don't need to be running a chrome underneath everything. They suggest React Native, I don't really know enough about it to judge, I've simply never been a fan of the resource toll electron apps have on my computers.
- flukus 10y ago> - why are people writing this stuff in Java. It's so slow and you don't have as much control on memory. Write it in C. When did we move on from this stage? Desktop java is a failure for good reason. Electron is an order of magnitude slower again. Most widely used desktop apps are still written in c/c++.
- blub 10y agoThere are situations where one has a choice between putting in the required work and becoming competent at a task, or waiting and hoping that the task will be simplified so that they can approach it with their current level of understanding. Unsurprisingly, the latter is not the path to personal growth. A good example is the tech competence of the general population. Computer savvy or proudly dismissive? Now we have seen the technological improvements that allow people without tech skills to perform all sorts of tasks that they couldn't before. The drawback is that the general population is at the mercy of the providers of these magic tools. If the provider decides to increase prices or move to a subscription model, they have to accept it. If the provider adds tracking & analytics and other privacy-invasive functionality they will be outraged, and then accept it. If the provider updates their app and puts features behind a paywall or completely redesigns the UI because their designers were getting bored, those people will have to grin and bear it. e.g: Microsoft has decided to transform Windows into spyware: they can run code remotely, log keystrokes and upload them to their cloud, etc. Most people either don't have a clue or can't do anything about it, because they outsourced their software skills to Microsoft, which worked well enough until Microsoft decided that their interests are not aligned with those of their customers. JS developers are another example of this - they are prisoners of JavaScript, although I wager most of them would say that they're happy to live in their golden cage rather than in the technological jungle that they're unfamiliar with. Condemned to go along with any decisions made by Google, Github, Apple or other companies that they have no influence on, because by not challenging themselves to learn, they gave up their freedom. You mentioned that (some? most?) web developers don't even know what linking is and you support going on the same false path, dumbing down things until they are understandable to those that didn't take the time to educate themselves. This will only result in a generation of helpless individuals cobbling components together in a decent enough way to call it software.