this seems less like fine dining, and more like a fancy kitchen. this is much more about the chef (though there are possibly secondary effects for diners).
If you consider hardware is a commodity and the cost of opportunity for replacing hardware instead of optimizing software is worth it, then formulate it better.
One may object by saying that the burden on hardware resources is higher because we consume more data, which is partially right. Although I don't intend to give a thorough objection here, please consider those two points:
- The payload fraction is larger in multimedia applications, for sure, but I can't see a reason why the "propellant mass fraction" equivalent in software should be bigger than it was, for example, 10 years ago. If we consider text-only data as an example, we notice that the propellant mass fraction increased as well.
- Higher level languages undeniably consume more resources by orders of magnitude; hardware frequencies must keep up by orders of magnitude as well.
This is especially surprising because I'm currently writing a custom crash reporter and part of that was experimenting with the builtin crash reporter by crashing a test app.
Just to be clear Slack is ahead of everything, even my artificially induced crashes..
Funny how much of HN is happy to see people dismantle social contracts or break the law to "create value" in startups, always justified with the idea "people want a thing", but shit bricks if someone wants to spend more time worrying about the UX of an app than micromanaging bytes of memory.
I'd rather have 95% of the code on my machines written by those from the former camp.
And if you think about it, the 5% of it is the stuff that comes & goes. Slack? Big now, but will anyone remember it in 5 years after the next big thing?
So which camp is generating the true "value"?
Ladies and gentlemen of the jury, I rest my case.
Not everything is what's visible on the surface.
You are stuck with a massive amount of dependencies (html/css parser, javascript VM...) to various massive projects for what, easy cross platform support? Sure cross platform GUI's have been a problem, but any developer can agree that dependency to this level within professional code is a great way to cause a massive amount of headache from required library changes, bugs and memory leaks that you have NO control over due to it not being your code, required security updates that require code refactoring for no fault of your own, etc.
People keep bringing this up because it is a bad solution to a large problem. Maybe the reason its being rehashed so much is because there is truth to what is being said.
I would try finding a graphics library such as opengl, and build a UI in the spirit of something like:
https://github.com/ocornut/imgui https://github.com/vurtun/nuklear
How do you make SSL connections? How do you parse JSON api's? How do you play audio, integrate with platform features (menu bars, dock dropping etc)? How do you create P2P WebRTC connections that capture camera and mic inputs? Let me guess, you have libraries for that.
People keep bringing this up because they're insecure about their role as programmers in a world where creating useful functionality is becoming easier and more accessable. People keep bringing this up because they don't comprehend what business requirements actually are and the cost of rolling your own technology and battle testing it.
I promise you. We're not all stupid. That's all I'm asking of people to consider before they start solving all the world's problems.
Lower level than sandboxing into a js VM? yes. Writing everything in assembly, or in an unmanaged language? no. Adding unnecessary complexity to a program increases possibilities of bugs, which in this case, will be outside of your control. And this is a perfect example of unnecessary complexity.
> How do you make SSL connections? How do you parse JSON api's? How do you play audio, integrate with platform features (menu bars, dock dropping etc)? How do you create P2P WebRTC connections that capture camera and mic inputs? Let me guess, you have libraries for that.
Simple libraries that intend on doing the job and getting out of your way, yes. I wasn't aware you needed to embed a web browser to parse a json string, or to establish an SSL connection? There is a large difference between what a library is, and what electron aims to be... There will always be system apis that you will have to interface with, these are apples and oranges.
> People keep bringing this up because they're insecure about their role as programmers in a world where creating useful functionality is becoming easier and more accessable. People keep bringing this up because they don't comprehend what business requirements actually are and the cost of rolling your own technology and battle testing it.
Thank you for reminding me what the phrase "argumentum ad-hominem" means.
> I promise you. We're not all stupid. That's all I'm asking of people to consider before they start solving all the world's problems.
I can't speak for anyone else but I don't believe anyone who finds electron appealing is stupid. I am sure these people are more than capable programmers, and electron is a very appealing way for a web-based product to be able to quickly produce and distribute a desktop client. Most just desire for people to understand that most large-scale projects will dig their own graves in the promises of cross platform support and a fast production cycle, which has been a growing trend in software development for quite a few years now.
FTA: It turns out modern operating systems already have nice, fast UI libraries. So use them you clod!
FTA: Also all you web devs: Go learn C or Rust or something.
So yes, this is in-fact an ad-hominem attack. There's a certain type of person who rehashes this old stupid argument. A few years ago they'd berate you for using a LAMP stack to set up your clients wordpress blog. A couple years ago they'd give you shit for using Node on the server and not being a "real" developer.
Point being, if the author of this blog post resonates with you - I can guarantee you with a high degree of certainty that I can fit your world view in a tiny little box.
Reminds me of some of the worst excesses[1] of AAA Windows software - now available on Mac.
[1] http://2.bp.blogspot.com/-lFgnREt7Q_c/U2mqWkYYDiI/AAAAAAAAAJ...
Edit: I think it's ironic that Macs were criticized for years for having single-button mice but now developers are more than happy to ship apps with no right-click support at all.
Of course it's not perfect. But as someone who's used it for the past year I can attest it's been a joy to use.