News for hackers. Stuff that matters.
Re:Electron 3.0.0 by seanalltogether on Tuesday September 18, 2018 @05:47PM (#18019462)
I really hope whatever the NativeWindow changes are allow Slack to finally stop rendering when the app goes to the background. My battery has been killed a couple times by the Slack renderer using ~30% cpu playing gifs while the app isn't visible, and their support says its because they don't have a notification hook for minimizing
Re:Electron 3.0.0 by Razengan on Tuesday September 18, 2018 @06:04PM (#18019604)
Is writing native apps honestly still so hard these days?

I can appreciate the concerns about maintaining multiple codebases and dealing with different delivery mechanisms and their rules, but modern iOS/macOS and Windows APIs (at least; I cannot speak for Android and Linux) seem just as easy, let you work in arguably better languages, evolve at a faster rate, and provide a better experience for users and their machines.

Re:Electron 3.0.0 by mikhailt on Tuesday September 18, 2018 @06:43PM (#18019936)
It's not writing the native code that's the problem, it's designing the same GUI experience across platforms that's nearly impossible to do.

If it was so easy as you said, a lot of macOS apps would've been portable to Windows years ago given the market share.

I work for a cross-platform company, Windows is a much more difficult to develop for compared to macOS. You can write a Cocoa UI but what do you do on Windows when you need to support Windows 7 and above? Win32 controls are grossly outdated but the best accessible/consistent experience across multiple versions, UWP controls is limited to Windows 10 and best under MS Store, WPF has been neglected but so far it is the fastest way to develop a GUI. Microsoft has decided to split UWP out of Microsoft Store to bring it to everyone with UWP XAML Islands etc.

The reason Slack prefers Electron is because you can just write the same HTML/CSS front-end, deploy it, and all Slack apps can simply be refreshed to show the newest UI. You cannot do that with native apps at all. You could get around with a few webviews embedded in the native apps but might as well go full Electron.

Re:Electron 3.0.0 by scarface74 on Tuesday September 18, 2018 @07:53PM (#18020422)
It's not writing the native code that's the problem, it's designing the same GUI experience across platforms that's nearly impossible to do.

I don’t want the same “GUI experience” across platforms, I want a GUI experience that is consistent with the platform I am running.

When I was a heavy Mac user, I hated iTunes on Windows because it felt like being on a Mac instead of Windows.

Re:Electron 3.0.0 by h1d on Wednesday September 19, 2018 @12:31AM (#18021680)
You do realize every web apps that you use have a consistent look among all platforms and none of the native looks and I think we're used to that approach of using apps that seeing a 'web like' app on desktop doesn't feel odd anymore.
Re:Electron 3.0.0 by scarface74 on Wednesday September 19, 2018 @10:19AM (#18024330)
How many people use web apps as part of their regular work flow?
Re:Electron 3.0.0 by jhanschoo on Wednesday September 19, 2018 @10:29AM (#18024404)
Gmail, gsuite, Trello, Hangouts, etc.
Re:Electron 3.0.0 by scarface74 on Wednesday September 19, 2018 @12:12PM (#18025251)
I would think that most people who use Gmail as part of their job would use a mail client just like most people who use Office365 for email use Outlook. Considering how much email is done on mobile, I don’t see too many people using gmail on mobile phones on the web.

Do you get notifications for new email from gmail in the browser or meeting reminders?

And all project management software on the web sucks in its own special way. That’s not something to aspire to.

As far as gsuite, I only use Google Sheets for simple stuff but can GSuite really take the place of Office for complex workloads?

Re:Electron 3.0.0 by Spivak on Tuesday September 18, 2018 @09:40PM (#18020972)
This is one of those things that very much matters to hacker types but very little to everyone else. The most important thing about cross platform development is having the exact same application feature for feature pixel for pixel if you can. Someone who knows how to use Spotify on any one platform should be able to navigate any other with 0 cognitive load.

People learn applications, they don't learn systems -- apps have never been consistent enough for that.

Re:Electron 3.0.0 by eschaton on Tuesday September 18, 2018 @09:47PM (#18021006)
Absolutely not the case.
Re:Electron 3.0.0 by Spivak on Tuesday September 18, 2018 @09:51PM (#18021026)
Examples of apps which go the extra effort to use each platforms toolkit and look and behave natively?
Re:Electron 3.0.0 by eschaton on Tuesday September 18, 2018 @10:05PM (#18021092)
The classic example of this was Microsoft Office; they tried to unify the UI and implementation for just the reasons you argue in the mid-1990s and faced a user revolt as a result. Subsequent versions were very much a rewind, with a native Mac human interface on a cross-platform core.

I don’t know how it is now as I haven’t used Office in about 15 years.

Re:Electron 3.0.0 by scarface74 on Tuesday September 18, 2018 @10:06PM (#18021101)
It feels very Mac like today.
Re:Electron 3.0.0 by h1d on Wednesday September 19, 2018 @12:35AM (#18021697)
It only does. Everything seems like some optimized hack of some sort that things aren't as performant as true native apps. Just maximizing the window size feels sluggish.
Re:Electron 3.0.0 by Osiris on Tuesday September 18, 2018 @10:17PM (#18021144)
SourceTree has a native Mac and a native Windows app. I would guess that they are completely different code bases.
Re:Electron 3.0.0 by NathanCH on Tuesday September 18, 2018 @07:57PM (#18020443)
With so many platforms that's unrealistically expensive. It's not just Windows and OS X anymore.
Re:Electron 3.0.0 by kitsunesoba on Tuesday September 18, 2018 @08:39PM (#18020684)
Is having 1-3 Mac guys and 1-3 Windows guys (which is realistically all the vast majority of apps would need) really that much more expensive? To me it seems the real attraction is being able to hire from a giant pool of cheap, generic, interchangeable, fully replaceable developers.
Re:Electron 3.0.0 by orange8 on Tuesday September 18, 2018 @11:42PM (#18021514)
> from a giant pool of cheap, generic, interchangeable, fully replaceable developers

A giant pool? Sorry, not really. JS skills are highly sought after, and finding good, experienced front end developers is very hard. Inexperienced developers are easy to find in any language, including your favorite one, whatever that is.

The "cheap, generic, interchangeable, fully replaceable" part just sounds bitter and vindictive, no need to respond to that.

Re:Electron 3.0.0 by kitsunesoba on Wednesday September 19, 2018 @02:24AM (#18022160)
When compared to the hiring pools for iOS and Android devs, the size of the web front end pool is certainly larger, because that’s what’s currently hot and has the lowest barrier to entry. You’re right that quality is just as hard to find, but given the performance issues that continually plague most modern web apps (with apps like VS Code serving as evidence that it need not be that way), I’m not convinced that quality is the highest priority with these hires.

I will concede that I am a bit bitter. It’s frustrating to watch the industry push ever harder to render specialized developers unnecessary.

Re:Electron 3.0.0 by orange8 on Wednesday September 19, 2018 @03:53AM (#18022557)
If you compare the demand for websites vs mobile apps, we have about a total of 5 million downloadable apps and about 644 million active websites according to netcraft, which can be interpreted as 131 web devs for every 1 app dev. The pool for webdevs should therefore be much larger.

As for quality, correctly accessing a devs level of competence can be very tricky, regardless of the required skill-set. With web devs, its even more tricky because an "over-qualified" desktop/app devs can do just as much damage in terms of technical debt as a poor quality web dev. A webdev is also a specialized developer, but due to the low entry barrier, many don't realize this.

Re:Electron 3.0.0 by eschaton on Tuesday September 18, 2018 @09:48PM (#18021015)
Money people sometimes think so because they’d rather keep that money for themselves, users be damned.
Re:Electron 3.0.0 by mr_toad on Tuesday September 18, 2018 @09:44PM (#18020995)
And Android, and iOS.
Re:Electron 3.0.0 by kitsunesoba on Tuesday September 18, 2018 @10:03PM (#18021083)
You can reasonably easily share the bulk of your mac/iOS/tvOS/watchOS codebases, and apple is actively working to push that percentage higher. So really, you’re not looking at 1-3 “mac people”, but rather 1-3 “Apple people”.

Android dev is messy business, no question there, especially if you care enough about experience quality to test across a broad range of phones, OS versions, launchers, etc. It’s no wonder why the average Android dev team is 2x the size of the average iOS dev team. Not much you can do there but hope Google makes an effort to clean up (and it seems they are, albeit slowly).

Even with all these platform specialists accounted for, companies like Slack and Spotify aren’t hiring any more engineers than they would otherwise. The only difference is instead of hiring specialists, they’re hiring hordes of web front end.

Re:Electron 3.0.0 by eschaton on Tuesday September 18, 2018 @11:02PM (#18021338)
When there were way fewer personal computers and software was much harder to develop and distribute, companies would write software for Mac, PC, Amiga, Atari ST, and even Apple IIgs.
Re:Electron 3.0.0 by Razengan on Wednesday September 19, 2018 @04:10PM (#18027315)
People were making cross platform apps before Electron.
Re:Electron 3.0.0 by CyberDildonics on Tuesday September 18, 2018 @06:49PM (#18019983)
Equating electron and cross platform is a gigantic fallacy.

Qt and other GUI frameworks (like Juce and FLTK) exist and are blisteringly fast. You don't have to package an entire web browser to make something cross platform.

Re:Electron 3.0.0 by chris_mc on Tuesday September 18, 2018 @07:21PM (#18020182)
Qt, or whatever, isn't pretty enough for the designers.
Re:Electron 3.0.0 by kjeetgill on Tuesday September 18, 2018 @07:57PM (#18020440)
I'm more familiar with GTK, but can't you still make it look like anything you want pixel perfect?

I think the real issue is you can't bring all of your javascript/html/css libraries and tooling over.

Re:Electron 3.0.0 by chris_mc on Tuesday September 18, 2018 @11:08PM (#18021362)
I think you're correct.
Re:Electron 3.0.0 by kitsunesoba on Tuesday September 18, 2018 @08:42PM (#18020693)
This is a total non issue with Qt Quick, but I think complete UI look control is a waste of time and effort. It’s wheel reinvention where light brand accents would suffice.
Re:Electron 3.0.0 by CyberDildonics on Tuesday September 18, 2018 @11:00PM (#18021334)
Qt and Juce can be customized to look however someone wants. I don't think it is really so difficult to make images for buttons, change palettes and make sure everything is anti-aliased.
Re:Electron 3.0.0 by h1d on Wednesday September 19, 2018 @12:44AM (#18021726)
To me QT apps look like they came out of some old code base with old UI and web apps look more appealing imo.
Re:Electron 3.0.0 by PurpleRamen on Wednesday September 19, 2018 @02:27AM (#18022172)
How easy is it these days to create web, smartphone and tablet-UIs with Qt and those other frameworks? Cross platform is not limited to desktop anymore.
Re:Electron 3.0.0 by CyberDildonics on Wednesday September 19, 2018 @09:54AM (#18024165)
Both Qt and Juce emphasize mobile UIs heavily.
Re:Electron 3.0.0 by scarface74 on Tuesday September 18, 2018 @10:32PM (#18021205)
In Slack’s case, why an app at all? It already works with browser notifications. The Slack app is a worse experience than the website. It’s a memory and more importantly a battery hog.
Re:Electron 3.0.0 by kennu on Wednesday September 19, 2018 @08:02AM (#18023550)
Biggest problem in web apps, at least to me, is window management. When you switch to Chrome (on Mac), all browser windows come to foreground. I want to keep Slack as its own app so that it stays in the background until needed. I also want to keep it separated in Dock and Cmd-Tab switching etc.
Re:Electron 3.0.0 by scarface74 on Wednesday September 19, 2018 @10:16AM (#18024312)
Would something like this work?

https://fluidapp.com/

Re:Electron 3.0.0 by kennu on Wednesday September 19, 2018 @10:28AM (#18024395)
Theoretically yes, but then you still face other problems when the website has not been designed to be used as a desktop app. Slack's own application offers e.g. an easy way to switch between multiple teams (I have 16).
Re:Electron 3.0.0 by Corrado on Wednesday September 19, 2018 @05:22AM (#18022944)
I really enjoy a separate app as opposed to a browser tab. For one thing I can push it out of the way up in my task bar. I don't live in Slack and only use it occasionally, so it's nice to have it close by but not in my face. Also, the ability to quickly alt-tab to/from it makes it much more accessible for me.

I tried to use the browser version and it works well enough, but it broke my workflow and was distracting. The app has its own set of problems but at least it lets me work the way I want.

Re:Electron 3.0.0 by eschaton on Tuesday September 18, 2018 @09:46PM (#18021000)
You shouldn’t push for the same human interface on different platforms, they all have their own conventions that applications need to fit.

At least back in the 1980s and 1990s, cross-platform toolkits tried to look native everywhere, and that’s why.

Re:Electron 3.0.0 by h1d on Wednesday September 19, 2018 @12:42AM (#18021718)
Have you mailed Google customer support to do so with their Gmail?

Today, web apps are getting to the point that it can functionally be called 'apps' (whatever its definition is) and we're all seeing exactly the same UI from every platform and people seem to be just fine with that.

Re:Electron 3.0.0 by api on Tuesday September 18, 2018 @07:32PM (#18020273)
Yes.

At least N times the work for N platforms.

Fewer developers, harder to recruit.

Cross-platform options like Qt are not modern/pretty enough and sometimes aren't that much thinner than Electron (depending on how well written the app is). Java/Swing/SWT is also quite bloated and looks terrible.

Development is much slower in languages like C++. Other languages are not cross-platform or have immature/buggy cross platform support. How's ObjC on Windows? C# on Mac? They exist, but nobody uses them.

I really think we're in a UI dark age. Native UI development has gone backwards compared to the ease of WYSIWYG GUI design 10-20 years ago. Go back and use the VB.NET GUI builder from 2004 and be in awe at the incredible productivity you could achieve. Platforms are more fragmented today too. There is even fragmentation on the same platform! Do I use Qt or GTK or (insert one of a dozen others) on Linux? WPF or Windows Forms on Windows? Cocoa or UIKit on Mac? Which one will MS or Apple kill tomorrow? ... or I could just say fXXk it and use Electron and be done with it.

This is 100% the fault of vendors. If you hate the bloat blame Microsoft, Apple, and Linux developers, not people who use Electron.

Edit: mobile UI development is less fragmented but it's not really that great either. You get no choice in dev tools and the code is absolutely unportable. I see higher-level web or web-ish views/libraries/frameworks taking over there too. It's already happening.

Re:Electron 3.0.0 by AnIdiotOnTheNet on Tuesday September 18, 2018 @09:12PM (#18020846)
> Go back and use the VB.NET GUI builder from 2004 and be in awe at the incredible productivity you could achieve.

That almost nothing like this exists today is evidence that personal computing is dying, IMO. Companies don't want to empower users, they want them to be good little content consumers who do what the ads tell them. Developers (OSS developers included) don't respect them and assume they're too stupid to be permitted to use anything but the safety scissors. After all, if they were worthy of creating things they'd be C greybeards.

Re:Electron 3.0.0 by api on Wednesday September 19, 2018 @09:25AM (#18023978)
> Developers (OSS developers included) don't respect them and assume they're too stupid to be permitted to use anything but the safety scissors. After all, if they were worthy of creating things they'd be C greybeards.

Thanks for mentioning that too. I loathe that mentality.

What people don't understand is that it hobbles the developers/geeks too. It causes us to build systems that waste our time futzing around with minutia. Bad UX and bad tooling is objectively bad in that it imposes needless cognitive load.

I learned this when I (almost cliche) switched from Linux desktop to Mac. I was amazed at how much more I got done when I didn't have to futz with drivers, config options, broken packages, etc. I now probably spend an hour a month messing with my computer compared to an hour a day.

Re:Electron 3.0.0 by scarface74 on Tuesday September 18, 2018 @10:38PM (#18021239)
I haven’t done any desktop GUI development since VB6 and I only used .Net Windows Forms for Windows Mobile up until 2011. What is the modern drag and drop method to build GUIs on Windows?
Re:Electron 3.0.0 by ivm on Wednesday September 19, 2018 @12:23AM (#18021652)
> Other languages are not cross-platform or have immature/buggy cross platform support. How's ObjC on Windows? C# on Mac? They exist, but nobody uses them.

What's wrong with C# on Mac? It's basically bindings to the native API via Xamarin.Mac.

You can build a cross-platform app with Xamarin on iOS / Android / Mac, UWP on Windows, and Gtk# on Linux. Using something like MvvmCross will allow to share most of the business logic between platforms.

Re:Electron 3.0.0 by detaro on Wednesday September 19, 2018 @09:29AM (#18024008)
What did the old VB.NET GUI builder do better than the Windows Forms Designer in a newer Visual Studio? (I haven't used either, but know Delphi from far back when and its open "clone" Lazerus)
Re:Electron 3.0.0 by flukus on Tuesday September 18, 2018 @09:57PM (#18021055)
> At least N times the work for N platforms.

Only if 100% of the code is the GUI.

Re:Electron 3.0.0 by api on Wednesday September 19, 2018 @09:25AM (#18023987)
It's still N times the work. You trade rewriting the core for figuring out how to meld your vision to two different APIs, two different UI libraries, etc., and of course fixing all the quirks.
Re:Electron 3.0.0 by geodel on Tuesday September 18, 2018 @06:25PM (#18019791)
It is. Especially for multi billion dollar companies with 100s of developers. Because you know careful evaluation, strategic direction, ROI etc has shown users prefer to update their own hardware instead of demanding companies to write efficient software.
Re:Electron 3.0.0 by JakeTyo on Tuesday September 18, 2018 @06:41PM (#18019913)
If it's hard for a dev to write a native apps, then maybe they should re-evaluate their career choices and leave it to the competent ones.
Re:Electron 3.0.0 by orange8 on Tuesday September 18, 2018 @11:50PM (#18021540)
If the "competent ones" have to resort to bitter FUD wars to protect their turf, then maybe they are the ones who need to re-evaluate their so-called careers.

Somewhere out there, there's a bitter COBOL developer still complaining about that "new fangled" c++

Re:Electron 3.0.0 by hnbroseph on Tuesday September 18, 2018 @06:50PM (#18019988)
or, everyone can do whatever they want. i like that a bit more. :)
Re:Electron 3.0.0 by AnIdiotOnTheNet on Tuesday September 18, 2018 @09:00PM (#18020794)
> provide a better experience for users and their machines

Ah, but you see, the modern developer does not care about the user experience. "Developer time is worth more than user time", "move fast and break things", etc. Users are the cattle we feed ads to and farm for salable data.

Re:Electron 3.0.0 by Spivak on Tuesday September 18, 2018 @09:43PM (#18020991)
The modern developer very much cares about user experience which is why the gold standard right now is pixel perfect feature perfect cross platform apps for web mobile and desktop.
Re:Electron 3.0.0 by eschaton on Tuesday September 18, 2018 @09:57PM (#18021054)
Except that’s not the gold standard.

Where are you getting the idea that it is?

Re:Electron 3.0.0 by Spivak on Tuesday September 18, 2018 @10:33PM (#18021209)
Usage? Who is developing new cross platform apps in something other than a web stack?
Re:Electron 3.0.0 by pvg on Tuesday September 18, 2018 @06:15PM (#18019699)
It's still about twice the work. Or n-times, for n platforms.
Re:Electron 3.0.0 by pier25 on Tuesday September 18, 2018 @07:27PM (#18020233)
It depends.

You could still use a web UI but without embedding Chrome and Node.

Re:Electron 3.0.0 by pvg on Tuesday September 18, 2018 @07:50PM (#18020400)
That sounds like writing and maintaining your own (cross-platform) version of Electron. And then not ending up with a native app for your troubles.
Re:Electron 3.0.0 by pier25 on Wednesday September 19, 2018 @09:43AM (#18024105)
Not really. Just a shallow native layer that uses the platform as much as possible.

Except for the UI of course.

Re:Electron 3.0.0 by pvg on Wednesday September 19, 2018 @12:51PM (#18025595)
'Just'. Which platform? What are you going to render HTML with? And know it produces identical output, etc?
Re:Electron 3.0.0 by pier25 on Thursday September 20, 2018 @07:01PM (#18036075)
For example Webkit on Mac and iOS. Blink in Android and Chrome OS.
Re:Electron 3.0.0 by roryisok on Tuesday September 18, 2018 @07:51PM (#18020413)
You'd need node for file system access though. Unless you write your own io layer
Re:Electron 3.0.0 by pier25 on Wednesday September 19, 2018 @09:42AM (#18024099)
Indeed. That would be written in the native layer.
Re:Electron 3.0.0 by enraged_camel on Tuesday September 18, 2018 @06:20PM (#18019749)
Twice the work for front-end only, and even that is arguable. The overall logic of the client across different platforms will be very similar. The only thing that will change is language and implementation details.
Re:Electron 3.0.0 by pvg on Tuesday September 18, 2018 @06:25PM (#18019789)
Different environment, different conventions, different bugs, different design, different support, different everything. Different teams that have to communicate. It is 'arguable' that it's twice the work, that is true. Twice is the lower bound.
Re:Electron 3.0.0 by babypuncher on Tuesday September 18, 2018 @06:38PM (#18019892)
There are options that let you write the bulk of your code in one language then code platform specific user-interfaces against that library. This is basically the Xamarin philosophy for iOS/Android development, and Xamarin apps generally offer a much better user experience than these web-app wrappers cluttering the App Store.
Re:Electron 3.0.0 by pvg on Tuesday September 18, 2018 @07:12PM (#18020123)
We were talking about desktop apps in this case. It's slightly different on mobile but the parameters are similar. The range of options here involve fiddling with dials that affect cost and quality. The comment I'm replying to amounts to 'why not pretend these dials don't exist?'. The answer is, because they're really there, you can't effectively plan development like that.
Re:Electron 3.0.0 by h1d on Wednesday September 19, 2018 @12:50AM (#18021748)
Yes. It's typical for a team to have different people handle different platform and spreading task on multiple people suddenly slows down the progress than letting 1 set of people handle the front end.
Re:Electron 3.0.0 by stefan_ on Tuesday September 18, 2018 @05:59PM (#18019562)
I want to work at a company like that, where I can just blame the "stack" we're using and shrug my shoulders.
Re:Electron 3.0.0 by comboy on Tuesday September 18, 2018 @06:02PM (#18019588)
do you really though
Re:Electron 3.0.0 by benbristow on Tuesday September 18, 2018 @06:10PM (#18019642)
If it makes for easier programming, yes.

Writing Slack as a native app would be a massive pain. Especially due to all the web-like features it has, the fact that it's one codebase (mainly) for desktop and web.

They also have to support Windows, Linux, Mac and mobile. Not an easy task

Re:Electron 3.0.0 by rudedogg on Tuesday September 18, 2018 @07:03PM (#18020064)
> Writing Slack as a native app would be a massive pain.

If it was allowed I'd write the native macOS app for them. I'm sure it'd pay off selling it for $5 or $10 in the Mac App Store

Re:Electron 3.0.0 by danShumway on Tuesday September 18, 2018 @07:51PM (#18020410)
Do it then: https://api.slack.com/

Slack APIs aren't perfect, but they're good enough to allow 3rd party clients for terminals, Emacs[0], and the like. I've never dug into it because I avoid Slack in general, but I think the biggest hurdle right now is just user authentication.

That's a pain, and does limit your audience, but maybe you'd still find some buyers on HN.

[0]: https://github.com/yuya373/emacs-slack

Re:Electron 3.0.0 by benbristow on Monday September 24, 2018 @03:19PM (#18060557)
OAuth2 is as standard as it gets. Any language worth it's salt has ready-made libraries for it. There's tons of documentation and guides online too.

Not sure why that's an issue.

Re:Electron 3.0.0 by Razengan on Tuesday September 18, 2018 @06:22PM (#18019772)
There are more complex apps with native versions for multiple platforms, by smaller companies.
Re:Electron 3.0.0 by jonny_eh on Tuesday September 18, 2018 @06:27PM (#18019806)
Such as?
Re:Electron 3.0.0 by Razengan on Tuesday September 18, 2018 @06:50PM (#18019989)
Affinity Designer, Photo, and Publisher to name a few, from the same company. [0]

Then there are many games, which by their nature require native performance, and of course have to present the same frontend. :)

[0] https://affinity.serif.com

Re:Electron 3.0.0 by benbristow on Monday September 24, 2018 @03:21PM (#18060565)
These are powerful pieces of software which massively benefit from native code doing processor/GPU intensive tasks. Totally different use-case.

Slack is literally just a fancy messaging app.

Re:Electron 3.0.0 by lazerwalker on Tuesday September 18, 2018 @07:19PM (#18020176)
Games feel like a separate edge case. One of the most common complaints about cross-platform apps is they don't "feel native" or adhere to platform UX expectations. With games, there's an expectation they'll provide their own wholly own UI that doesn't match an existing commercial OS.
Re:Electron 3.0.0 by mwcampbell on Tuesday September 18, 2018 @09:19PM (#18020884)
Also, video games aren't generally expected to be accessible to blind people via screen readers. If you develop a cross-platform app with a custom UI, it's going to have zero accessibility unless you implement each platform's accessibility API.
Re:Electron 3.0.0 by Razengan on Wednesday September 19, 2018 @04:49PM (#18027588)
Yes, game devs already put in the effort of providing their own UI stack, and port that to every OS.

If most Electron apps were built as "games", i.e. providing their own UI via DirectX/OpenGL/Metal etc., I wonder if they might still be more efficient and less bloated than Electron apps are now.

Re:Electron 3.0.0 by ForHackernews on Tuesday September 18, 2018 @06:45PM (#18019953)
LibreOffice has native versions for all major desktop platforms, does many more things than Slack, and is maintained by open source volunteers and the Document Foundation staff of six.
Re:Electron 3.0.0 by CyberDildonics on Tuesday September 18, 2018 @06:55PM (#18020017)
qTorrent, VLC, CMAKE, Obs, AbiWord and Touch Designer. That's off the top of my head.

To say a company that has 200 MILLION in revenue can't re-write their client in Qt is indefensible nonsense.

Re:Electron 3.0.0 by Spivak on Tuesday September 18, 2018 @09:47PM (#18021005)
You're probably right about cant, but why would they want to? A native version of their app would either embed a web browser or end up half-implementing one poorly. Why not just start with one?
Re:Electron 3.0.0 by ForHackernews on Tuesday September 18, 2018 @10:00PM (#18021071)
Any Qt app can use QtWebView. There's a difference between putting a web browser inside your app and putting your app inside a web browser.
Re:Electron 3.0.0 by Spivak on Tuesday September 18, 2018 @10:27PM (#18021187)
Yeah, the latter feels more put together, you don't have the awkwardness of communication between C++ and JS, and your web browser app will work in a web browser.
Re:Electron 3.0.0 by Razengan on Wednesday September 19, 2018 @04:09PM (#18027304)
And all cross-platform apps made before Electron.
Re:Electron 3.0.0 by mempko on Tuesday September 18, 2018 @07:09PM (#18020107)
blender
Re:Electron 3.0.0 by kitsunesoba on Tuesday September 18, 2018 @08:49PM (#18020728)
The Mac cocoa version of Telegram achieves most of the same features as slack without resorting to webviews and shares 99% of its code with the iOS app (meaning the Mac build adds practically no overhead).

Windows and Linux are another beast, and Telegram’s solution is to use Qt for those platforms. Again, slack like capabilities with no webviews.

The difficulty of native dev is not as high as it’s often represented.

Re:Electron 3.0.0 by mercer on Wednesday September 19, 2018 @04:55AM (#18022850)
I have little experience with native iOS development, so you might well be right. That said, Telegram strikes me as quite a bit simpler than Slack. Not just in number of features, but also considering how many of the features are 'strange' UI.

As an aside, apparently the next version of Telegram will be a complete rewrite done in Swift, and snappier as a result.

Re:Electron 3.0.0 by LeoNatan25 on Tuesday September 18, 2018 @06:14PM (#18019686)
For a billion dollar company? Give me a break.
Re:Electron 3.0.0 by true_religion on Tuesday September 18, 2018 @06:23PM (#18019774)
Slacks annual revenue was 200 million in 2017, when they were a 5 billion dollar valued company. 200 mil is just 1000 Bay Area salaries, and they do have other budget items.

Its entirely possible that they cannot fund 5 native development teams, while building their core features to justify their valuation, and paying their sales and marketting team to actually generate revenue.

Re:Electron 3.0.0 by flukus on Tuesday September 18, 2018 @08:35PM (#18020665)
5 Devs on each team, which should be more than enough if they're getting 200k a year would cost a total of 5 mil. A tiny amount for such a huge improvement for users.
Re:Electron 3.0.0 by CyberDildonics on Tuesday September 18, 2018 @06:52PM (#18020002)
I legitimately can't tell if you are joking.
Re:Electron 3.0.0 by LeoNatan25 on Tuesday September 18, 2018 @06:58PM (#18020035)
It does sound like a joke. It also ignores that fact that other, proper, multiplatform technologies exist that still produce a far superior end result for the user even if not 100% platform guidelines/conventions compliant.
Re:Electron 3.0.0 by vntok on Tuesday September 18, 2018 @06:52PM (#18020004)
What do you mean? Slack is valued at ~5 billion dollars, that has very little to do with their actual cash on hand. In 2016, they were bringing less than 65 million in revenue, for example.
Re:Electron 3.0.0 by comboy on Tuesday September 18, 2018 @06:43PM (#18019934)
I think I like when programming is hard.

When you're working on your own project, some time sink that you didn't anticipate may be frustrating, but other than that, I definitely prefer it to coding something I already know how to do well.

Re:Electron 3.0.0 by 43920 on Tuesday September 18, 2018 @06:59PM (#18020045)
> their support says its because they don't have a notification hook for minimizing

That doesn't even seem correct - the BrowserWindow emits "hide" and "show" events [1] that Slack could use to do exactly what you're describing. I'm guessing they just don't want to implement it for some reason?

[1] https://electronjs.org/docs/api/browser-window#event-show

Re:Electron 3.0.0 by brazzledazzle on Tuesday September 18, 2018 @09:22PM (#18020900)
I’m guessing they meant visibility (which minimizing can effect) but it depends on what they mean by “background”. Sounds like that’s only reliably available on macOS:

“Additionally, on macOS, the visibility state also tracks the window occlusion state. If the window is occluded (i.e. fully covered) by another window, the visibility state will be hidden. On other platforms, the visibility state will be hidden only when the window is minimized or explicitly hidden with win.hide().”

Re:Electron 3.0.0 by giancarlostoro on Tuesday September 18, 2018 @05:50PM (#18019485)
Assuming they update soon enough I suppose. I find using the browser window for Slack is easier, the main browsers I use let you pin tabs so it's even easier, plus I can put a darker theme on Slack, so sick of the bright white background.
Re:Electron 3.0.0 by Rjevski on Tuesday September 18, 2018 @05:54PM (#18019516)
I always recommend using the browser because you're likely to have one open anyway, so you might as well reuse that (and save resources) than run another one.
Re:Electron 3.0.0 by Brakenshire on Tuesday September 18, 2018 @06:19PM (#18019737)
Are there any browsers which allow you to do your own electron-like wrapping of webapps? Would be nice to have your own native icon etc, but also be able to tune exactly what behaviour you want, for instance set per app caching levels, cookies, what happens when it goes to background, etc.

A good example is on mobile, where playing media on the web is a hassle because you never know what the background behaviour will be, whether it’ll carry on playing when you’re on another tab, or on another app, or with the screen off, or after five minutes. It seems to be a free for all now for the browsers, not much user control.

Re:Electron 3.0.0 by jsjohnst on Tuesday September 18, 2018 @06:25PM (#18019785)
> Are there any browsers which allow you to do your own electron-like wrapping of webapps?

FluidApp[0] should work great and I bet there’s even a userscript already to handle desktop notifications.

[0] https://www.fluidapp.com

Re:Electron 3.0.0 by rictic on Wednesday September 19, 2018 @05:11PM (#18027744)
Chrome is actively working on this: https://developers.google.com/web/updates/2018/05/dpwa

(disclosure: I work on Chrome, but not on this)

Re:Electron 3.0.0 by Rjevski on Tuesday September 18, 2018 @06:22PM (#18019769)
Firefox used to support this but they nixed it (but hey, they gave us Pocket instead, yay! /s)
Re:Electron 3.0.0 by giancarlostoro on Tuesday September 18, 2018 @06:25PM (#18019794)
Re:Electron 3.0.0 by dawnerd on Tuesday September 18, 2018 @05:54PM (#18019512)
You can kinda disable gifs by going to preferences > Messages & Media and unchecking "Show images and files from linked websites". Doesn't get them all but it really helps.
Re:Electron 3.0.0 by baxter001 on Tuesday September 18, 2018 @05:57PM (#18019545)
Looks like the BrowserWindow events at the js api level are unchanged for the past two years.

Here's hoping something deeper was broken about them that now drastically changes top-level api behaviour!

Re:Electron 3.0.0 by mkonecny on Tuesday September 18, 2018 @06:01PM (#18019585)
Why is it taking 100% CPU to play gifs?
Re:Electron 3.0.0 by LeoNatan25 on Tuesday September 18, 2018 @06:56PM (#18020029)
Chromium is notoriously slow at rendering GIFs. It used to be faster than Firefox, but years ago it went downhill. On a forum I visit, people would basically troll Chrome users by posting hundreds of animated smilies. On Firefox and Safari, there is little effect, while it chugs Chrome down to a halt.
Re:Electron 3.0.0 by seanalltogether on Tuesday September 18, 2018 @06:05PM (#18019620)
maybe not 100% from doing a quick test, more like 30% nowadays but that can use up power quick still
Re:Electron 3.0.0 by pacifika on Wednesday September 19, 2018 @05:47AM (#18023034)
FWIW I disabled animations in the slack settings and the difference is night and day.