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

Still waiting for a native MacOS app that doesn't slow my machine down to a crawl and runs the fans whenever I made a video call. $7.1B folks. $7.1 billion.



And honestly, how hard can it be? Put a 5 man team on it and in a few months it'll be done and workable. Few million down the drain but your software is insanely more useable. I guess that doesn't sell the service...


But once you get to that organizational size, there are 3 project managers and a VP with an agenda and designers and design managers and a QA department which is backed up “for a bit” and a PR team who wants to make sure we get a good Q2’19 “win with the developer crowd”.

So it takes a year, and $2.5M, to do what should take 3 months and $300k.

* not saying this is the case at Slack, it’s just often the case at Everywhere. ;)


Exactly. A completely rewritten from scratch product would probably take 1 year to finish. 90% complete can be ready in a few months, but the last 10% takes much more effort. Then there's the QA division you need to build out to test it on the platforms and OSes you need to support your enterprise customers. Then there's the management structure to track the project. Then there's keeping it up to date with the existing service's changes as it's both in development and production. Then there's the migration to switch users to the new client, and the phasing out of the old client over time.

It's doable, but it's non-trivial, and probably only buys you the accolades of a small percentage of users on slower hardware. (And incidentally, almost every video chat app I use today runs the fans and slows down my system, but I can deal with it)


Electron apps are for amateurs and small start up teams. Once you are into the 7b valuation range, you need to put on big boy pants, and make big boy software that runs as advertised. No video functionality even needs to exist for it to run terribly. I have never used the video feature, and it causes my entire 4-5 year old system to chug. I can't even consider using it on an old linux machine.

People shouldn't have to put up with the system crawl that ensues after firing up slack. It is absurd for the money they charge.


Nobody at the executive level is determining what application platform to use. The bigger your company gets, the farther away they are from this decision. In fact, from an executive level, the fact that people are using the app despite complaints shows they are doing something right.

The alternative for users is to go with a competitor that competes with everything Slack provides, in addition to improved performance. There are at least two such competitors out there, but people put up with Slack, even though they don't have to.


VS Code is an Electron app written by the $800B Microsoft. Maybe you've heard of them?


Yeh and don't look now but... its also becoming a bloated mess. Notepad++ is a native application and it blows vscode out of the water for speed. Though obviously it does not have ide-esque features of vscode. Furthermore, there is no paid version of VS Code, and if there were, and it ran like dogs ass, I would say the same thing. They need to put on their big boy pants and make a big boy native application.


> They need to put on their big boy pants and make a big boy native application.

for VScode, there's Visual Studio.

And VScode isn't slow by any stretch. It does take a bit of memory (as expected of an electron app). But it's well engineered, and has very little slow laggy UI parts.


To be fair, I'm sure if they added WebRTC to VScode it'd be slow too. (Plus whatever Slack is doing to receive notifications and messages in real time - not sure if that's also WebRTC or something like Web Sockets)

Edit: thought Skype wasn't in Electron, obviously I'm wrong: https://electronjs.org/apps/skype


The current Skype clients are Electron-based.


Guess I should have verified that before I opened my big mouth.. oops!


well they just raised $427, so yeah they should still probably be able to find the scratch.


You can think a 5-person team can build highly performant native apps for a number of different platforms in a matter of months?


Yeah, pretty amusing to hear all these arm-chair quarterbacks on how easy it is to build a rich, real-time chat app like Slack but with native tech. Not only do you have to have all the basic functionality, like emoji reactions, link preview cards, inline images, video, message actions, mention preview, threads, channels, avatars with presence, file attachment upload, etc but you also have to consider that Slack is a moving target. They can't stop shipping new features. They have Microsoft Teams to compete with, which is also an electron app by the way.

Sorry about everyone complaining about CPU, but Slack won the chat wars in part because they were early adopters of Electron, and got plenty of developer productivity benefits out of using the web stack to build on.


Do they have to do a DSM everyday and retrospective, backlog grooming, sprint planning and whatnot every two weeks? Then no.


Absolutely. Even faster if using some cross platform nicety like Qt.


Yes


Great! Now can you name an app where that actually happened?


Start with Mac, find some good metrics that indicate that a lot of your users are on Mac and go from there. (parse your user agents for instance) Once it's proven itself, you can try Windows and some other options as needed (probably mobile).


Why would someone start with a minor platform? Mac is consistently 5-6 percentage of the market and has been for decades. They honestly have never been a player.


You're absolutely right, but consider that most of the people complaining who indicate their computer type are mentioning using Apple computers (perhaps electron works better on Windows? Perhaps people don't name drop Windows as much? Perhaps Windows users have lower expectations?). Also, consider that the supported hardware base for a Mac app is much smaller than a Windows app, which means fewer devices to test on, etc, and probably fewer operating system versions to support too. It should be (but may not be) a lower effort project than supporting Windows, and it will be easier to kill if it doesn't go well ('whoops that was a bad idea, but only 2% of our users used it' -- nevermind if that's 80% of their user base that could run it)


Ever heard of selection bias?


Because mac users have been the most concerned about native look and feel for decades, most windows users probably couldn't tell you what the native look and feel is because even MS don't don't don't follow one.


But they a still an incredibly irrelevant platform when it comes to userbase, if anything make windows top tier and Mac users can have the half assed version. Slack is typically a business application. You will use it if it's required and Mac users just are not that big in a corporate environment.


???

We're talking about a chat application for diverse corporate teams. If you don't have native apps for Windows/MacOS/Android/iOS at the get-go then you've missed the boat.


You don't even need good metrics. Just write some software that doesn't run like shit. That is the only metric that is needed.

If you build it, they will come. Especially if they don't have a choice. So build the new, deprecate the old.


Video performance is a LOT harder than you think.

At another company, I watched an five person team, half of whom had related PhDs, the other half over a dozen years of video engineering experience, make incremental improvements to the WebRTC stack.

After a year, was it better? The metrics said it was somewhat better, but the customers still complained all the time.


Ship a Mac client without video. Add video next year once you've proven that people actually use a native Mac client. Some companies call this 'agile' - it's a strange concept.


Video calls (with screen sharing) are the only reason I have the Mac client installed. Otherwise I'd just use the web app...


>Video performance is a LOT harder than you think.

But it's been done. Skype video calls worked on far inferior hardware and networks back in the day.


Lets assume well paid developers of $150.000 yearly, 5 man for 3 months is less than $187.500 is wages. Lets be generous and say we double that to account for other expenses. It's $375.000 for a feature that will be a reasonable sales argument.


Much as I usually try to understand the 'business end' of things, I have to say that I'm baffled that Slack hasn't done this yet.

I rather like Slack, and have good reasons to use it (it's pretty central to Elixir's community, for one), but even on my relatively beefy MBP (2015) I actively avoid having the app open because it's a heavy Electron piece of shit.

While of course I might be a bit of an outlier as a developer with a preference for 'lighter' applications (and comfortable with CLI stuff), surely I'm not that much of an outlier...


I think it's typical. The business-minded management folks at tech companies tend to measure success and failure purely in dollars. If the company's financial indicators are good, they assume their trajectory is correct and change nothing. They won't fix or improve existing systems unless an issue is measurably costing them revenue.

In the case of the enterprise shop I work at, our revenue increases year over year, and so technical debt doesn't get addressed unless it causes such trouble that clients threaten to leave. Development gets slower and costlier over time as cruft builds up in the codebase, but that effect can't be measured, so it doesn't exist as far as management is concerned.

In Slack's case, their indicator of success is the giant valuation they just got. Their desktop app is an annoying resource hog, but hey, they have tremendous market share, so it must not really be a problem for users. And if it ain't broke, don't fix it.


Let's throw these money and work hours to electron contribution! It will make every electron app faster


I think Google is already throwing enough money at Chromium for all of us (Electron runs on top of Chromium AFAICT).

In my opinion, Google's expectation is that you run one instance of Chromium per machine. Electron wants to run one per application. Hence performance woes.


Slack pays much more than $150k.


The average wage for a senior developer in silicon valley is $130-140k for 2018 (according to various sources on google). I have a hard time believing that a company so obviously business management focused as evident of how crap their application runs, willingly pay "much more than $150K". Nothing in their application requires it, and developers able to require "much more than $150K" wouldn't touch that with a 10ft pole.


> And honestly, how hard can it be?

Excuse me? You think 5 people can 100% replicate Slack natively within "a few months"?


That's not what they said. A significant fraction (probably the majority) of Slack's functionality is server-side, not client-side. Even if the client were to be rewritten from scratch, you would not need to replicate 100% of Slack.

But you also don't need to re-implement the entire client. You need to do a significant architectural change for performance improvements, not a complete overhaul. Reasonable people can disagree about whether or not that's feasible for five engineers already familiar with the codebase to do within a few months. Your incredulity at the idea is unwarranted.


No, it's pretty warranted. The 100% I was referring to _was_ just for the clientside. To rewrite that natively (since today it's in js on Electron) is not going to take a couple of months with five engineers.


I don't think it's entirely out of the realm of possibility that could be done, and a couple of months with five engineers was a conservative estimate. $375.000 for twice the devs or twice the number of months is still a shockingly low price to pay.

Hell, throw a few million at it and I can't see why Slack can't be implemented natively on at least iOS, MacOS and Android (especially if parts can still fallback on webviews).


It is entirely out of the realm of possibility.

There is absolutely no way in hell that even ten engineers for a couple of months could replicate all of Slack's functionality. Even ten times that much would be a stretch.

They could maybe make a decent chat app prototype in that amount of time. If they are very talented, they might even be able to make a decent chat app MVP that would get some actual users, but there is absolutely no way that they could replicate all of Slack's functionality.


To be clear, we're not talking about replicating all of Slack's functionality. Performance improvements aside from a complete move away from Electron can be considered.


Does improving performance require a rewrite? Is this the best you can get from Electron?


He proposed rewriting Slack natively. Natively implies not javascript. Since Slack is entirely in javascript, a native implementation is by definition a rewrite.


With a 7b valuation, I'm pretty sure they can hire some talented people, don't you?

I agree it will take longer, but Slack owes it to their customers to hire people and put out a better product.


> I'm pretty sure they can hire some talented people, don't you?

Even the most talented construction workers could not build the Empire State Building in a week. It's a little silly to think that these people are like magicians.

Have you looked at Slack's competitors? Slack is arguably the best chat app out there, especially with their UX and the quality of their integrations. It's so presumptious to then tut-tut them suggesting that they "owe their customers better". They're doing very well!


I honestly think slack is a terrible product. IRC is better in every way if you take a few moments and institute logging. Just because they are doing well doesn't mean they are doing well to their customers. It is insanely overpriced, imo.


And a lot of people honestly think that IRC is terrible platform. And that slack is not "insanely overpriced".

Guess which opinion is more popular.

Now think again about this "doing well to their customers"


On the contrary, Slack's clients are thick, complex applications and they are non-trivial.


No need! Everyone is already so happy with the electron version; why would they waste more money improving your experience?


Because not everyone is already happy with the electron version?


(I was sarcastic!)


But Electron man. Electron. (sarcasm)


Their video offering is laughably bad but I'd bet that isn't because of electron. Otherwise I'm surprised people hate the electron app so much, on my 2014 mbp it works just fine.


I don't know about "just fine". I think its benefits outweigh its problems. I need to stay in touch with my team, and I need those integrations.

But even simple stuff like "send when internet connection is back" isn't there, like what WhatsApp has.

It also doesn't load very fast for something that you'd think is mostly text. Change teams and you see the spinner a lot. Also when you've come back to WiFi it seems to take ages to get your updates.

A lot of these things seem to be "fixed" by killing the app and restarting, which is something of a smell.

Also seems to use a lot of memory. Not a huge problem on my machine, but I like elegance.


Agreed. To support that point, Discord's videocall functionality is probably the best I've seen, despite using electron as well.


Counterpoint: I've found it to work better than Google Meet. But maybe that's not saying much.

(Is there any video conferencing software that doesn't suck in some way?)


Zoom has been my best experience. Plenty of features, smooth video for the most part. Enough that I use it exclusively for business at this point.


Jitsi Meet just works for me: https://meet.jit.si/


BlueJeans. Always great.


Which is something that people complain about, but isn't enough of a motivator to get anyone to switch. Skype for Business fits the bill of a lean messaging platform with similar features but it's just terrible. Mattermost is pretty cool but it's self-hosted which makes it a non-starter in shops that don't have IT staff. And all the other competing products are basically just Slack clones with less features.

So Slack is going to continue eating all your resources, because anyone who cares will switch to a leaner Slack client before they switch away from Slack.


Or one that doesn't drop 5 seconds of call audio when I open a new tab in Chrome. Yes, really.


And one that doesn't use >1GB ram when idle


I'm guessing they don't care so much because most of their paying users are captive audience. If your work decides to use slack, it's not like you can't opt-out.

So they focus more on server-side features that ensure they'll be chosen in the first place.


Heck, I'm still waiting for Photoshop to be able to launch and display a static 50KB image in a reasonable amount of time.


Same for windows, and linux. I refuse to install it and instead use the web app as if it were email. Fortunately, I don't have to use it for work.

IMO, the only thing slack does really well, is the threading. But I've ever only been a part of one group that actually used that feature. Every other group uses it like a chat room.


I think contributing to open source and making electron better/faster/lighter will benefit everyone and i prefer it over making a native app


Unfortunately it’s also vastly less likely to bring the same speed ups in even a 4x time frame. It’s not like the Electron devs are caring about speed at all atm.


What about getting those video calls to work on iOS?


Same here but for Windows...


I'm still very curious what combination of variables leads to these complaints about Electron apps. I have never experienced any of these issues, and I have heavily used Electron apps like Slack, Discord, and Visual Studio Code for years on both high-end and modest Apple computers.

Electron apps appear to be one of the biggest pain points for people in tech and the HN community, and I find it so bizarre that I relate to exactly zero of those complaints.




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

Search: