Hacker News new | past | comments | ask | show | jobs | submit login

It seems the trend was that it was nice for makers, not so much for users.



Which, ironically, is the case with modern Electron apps and bloated JavaScript UI frameworks as well.


I'm a user of several Electron apps and they are very nice for me too.


Electron (or embedded Chromium, etc.) is lazy development: save time on cross-platform work at the expense of your users' CPU overhead/battery time/SSD life.

Spend time watching some of each year's WWDC talks and noting how much effort Apple engineers give to fine-tune certain APIs to enable app developers to optimize battery use, disk access, or graphics rendering. State-of the art stuff. And then your Electron app just ignores all of that.


I think calling it "lazy" is uncharitable, unless you're also going to chastise developers who target only one platform -- they're likewise not doing the cross-platform work.

Manually targeting multiple platforms is really hard. How could one person possibly keep track of all the battery-saving API changes in OSX, iOS, Windows, Linux, and Android?

Yeah, it's annoying that Electron apps are so bloated. But the alternative would be > 50% of people can't use those apps at all because you only targeted one platform.


"unless you're also going to chastise developers who target only one platform"

Which I tend to do, particularly since that "one platform" is almost always either Windows or macOS, neither of which I use on a daily basis (and neither of which I have any desire to use on a daily basis).

Meanwhile, there's such a thing as cross-platform GUI applications that don't try to fit an entire web browser into them. Especially if your programming language of choice doesn't require precompilation, frameworks/toolkits like Qt and GTK and Tk are perfectly viable for cross-platform development, at least on the desktop (which is usually where folks are using the likes of Electron or CEF anyway). They also tend to perform significantly better and stay much closer to the look-and-feel of the rest of the operating system (no, I don't care if you think you know better than me about my sense of style; if your app doesn't respect the look-and-feel of the rest of my system, then it sticks out like mold on a slice of Wonder Bread).


Do you know of any of those cross plaform GUI tools that work in the web browser? Targeting Windows/Mac/Linux is easy but outside of JS I have seen no way that you can write one application that works on Web, Windows/Mac/Linux, Android and iOS


I know Qt supports both Android and iOS (and a bunch of other mobile platforms, apparently, like Tizen and Blackberry).

I don't think any of them target HTML/JS, though.


Because it's not like there aren't any other options for multiplatform development...


> How could one person possibly keep track of all the battery-saving API changes in OSX, iOS, Windows, Linux, and Android?

You don't. You just use system-provided APIs and get the improvements for free whenever the system frameworks are updated to be more efficient.


And then your Mac App ignores all of the people not on Mac.

I'm not saying everything should be Electron, but it certainly has usecases just like native does.


Doesn't have to be a Mac only app. But be considerate to your users and use the best available SDKs for each platform, not one size fits all.


If resources were infinite and there were never any trade-offs, most people would agree with you.

But what's your game plan under other circumstances? Do nothing?


If you're a small-time indie dev, do what works so that you can ship. If you're a well-funded co. like Spotify, GitHub, or Slack, however...


You're making the mistake of thinking that everything is just a technical challenge that you can throw money at, and that technical superiority is the only trade-off.

Just because an enterprise has funding doesn't mean it's wealthy in other, more scarce things like organizational capital. In fact, I wouldn't be surprised if all the client developers at Slack would love to split off into dedicated platform teams and do a rewrite. We as developers love that shit.

But you should try to understand why these enterprises make these trade-offs and why they are still in these positions in spite of how much disposable money you think they have.


Sorry but I shouldn't have to use 2GB of RAM to browse the web. Compare Airbnb to Craigslist. One is visually pretty, the other isn't. One uses every framework under the sun, the other is HTML.


“Nice for you” and “nice for your computer” are being treated as separate things here, I think. Assuming a supercomputer (like the kinds most Electron app devs must surely have), Electron [native] apps have a good user experience.

Electron wrappers for originally web apps, on the other hand, are usually horrible user experiences—often they don’t even support right-clicking elements, or clicking on links to open them in a browser.


> Electron [native] apps have a good user experience.

No, they don't. Ever tried to drag and drop into an Electron app? How about used VoiceOver?


Relatedly, I played quite a few flash games, and they were nice for me.


This is a very broad statement. Would you care to elaborate?


"slack"


"spotify desktop"


Wasn't Spotify originally written in C++?


Even if it was, it isn't now.


It probably still is, since Chromium Embedded Framework (which is what Spotify uses, last I checked) is used via a C/C++ API.


For some cases, nice for the makers is nice for the users.

I don't think more than a handful of the games and little videos that I enjoyed as a kid on newgrounds and addicting games would have been made had they not had such a low barrier to creation.

I do kernel/firmware development now, so I'll be the first to admit that this value proposition isn't valid for all domains. But sometimes, for some use cases, just having a simple to use scripting environment is totally the way to go. Particularly if it's sandboxed well and can't really harm the end user.


Legions of bored teenagers would fight you over that. :) At one time there was no force so powerful as a bunch of friends sharing albinoblacksheep games/videos. Users loved it.


A pretty amazing collection of games was at friv.com


I only got into CS because of Flash. First I spent a ridiculous amount of hours on games, then I learnt to reverse engineer and tweak them, and then a ridiculous amount of hours creating and debugging games/apps with Flash.

Flash for the win! Till the day I die.

AS3 was amazing. When Typescript came out, it was a lot like AS3. I was convinced and became a believer in TS and never looked back.


holy crap, i've never seen this before. it's still up


It was also quite nice for users, assuming the intentions of the makers were good. Ads and security exploits were the truly nasty bits.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: