Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Firefox:

    about:config 
    dom.serviceWorkers.enabled;false
Why:

They bite. The generic idea may even be reasonable (offline working web app), but every single time I encounter service workers they make things worse.

If you load a React frontend, it'll, by default, deploy a service worker. Good luck trying to load anything non-react from that resource/server.

I never asked for a web app to work in the background once I closed a site. Nobody should be trained to expect websites work in the background - that is not how they are. If there is no tab open, there should be no notification, no nothing. That is how the web works.



My most delightful experience with a service worker was SVGOMG, https://jakearchibald.github.io/svgomg/. One time I was without an internet connection, and I thought to myself, “if only it had a service worker so it’d work offline!” and then I opened a tab to it, to remind myself to optimise the SVG I was working with later, and— huh. It loaded. On reflection, I decided that given who Jake Archibald is, it made sense that he’d be an early service worker adopter. So that day I was really pleased with the Just Works™ value of that service worker.

And SVGOMG is able to load faster thanks to service workers, too.

At FastMail, we’ll be getting round to adding service workers some time soon, and it’ll actually give us a quite fascinating performance boost: even without supporting full offlineness, simply caching the basic data you need can get you to the point where you need literally no requests before you can load the interface, showing meaningful data to the user, and then fetch updated data in the background. I’m confident we’ll be able to get startup time to under two seconds with service workers for code and data loading/caching, and hopeful that we’ll get it down to under a second.

Service workers can be badly implemented, but they also offer the possibility of some quite delightful improvements in websites and web apps.


I've recently set an offline mail client to sync mail locally for my wife's laptop. Her two gmail accounts downloaded 22GB.

Be careful what offline actually means when it comes to mail; eg. that 22GB as service worker cache sounds a bit nasty to me, especially because service workers don't tend to differentiate between desktop and mobile.


Definitely. I’d hate to have it download all my mail on my laptop or my phone. We have yet to particularly consider the UI for controlling it, but I fully expect that anything in the way of synchronisation rather than simple caching of what we’re already fetching (and only limited amounts of that—there’s already an LRU GC on the cache) will require manual configuration, probably with options like “sync the inbox” or “sync the last 30 days of mail”, and probably projections of probable storage requirements.


I can't imagine not downloading all mail, why wouldn't you want a local backup? Space is cheap.


If you want a local backup of all your mail, using a web app like ours, even if it supports fetching it all, is not a good idea, unless it satisfies both of these criteria:

(a) it should support fully offline and session-agnostic functionality. We’re very unlikely to ever go this way on fastmail.com, because it’s just not going to be useful to almost anyone, and is more complex and easily leads to confusion. Instead, the data will be tied to your session, so that if you log out, or your session is permitted to expire, or you close your account, then the data will all promptly be deleted when you next go online.

(b) it has a way to export it again. Theoretically with JMAP we could actually do that, but even if we did implement it (and I doubt we ever will), it lacks the portability of other formats like mbox or PST.

Taking both of these points together, I say that an email service provider’s app’s sync should not be considered suitable for a backup. For convenient offline access, perhaps, but not for a backup.


Uhm... if you read back... 22GB mail can't fit on, say, a 16GB flash phone...


Why would anyone that has that amount of mail go out of their way to get a phone with such limited capacity. At this point a phone with 16gb serves the purpose of being a burner phone.


You are not living in the real world.

There is no limit on gmail. For someone who has it for a decade or more, 20GB mail is realistic, since gmail always told you there is no need to delete anything, ever.

As for 16GB phones, those are pretty normal; take a look at moto e5. Please don't tell me a 64GB phone is required for email.

It also doesn't change the initial problem of what and how much should be cached by service workers.


A 128 gb card currently costs fifty bucks

And depending on your needs yes 64gbs for mail might be very necessary.


> If you load a React frontend, it'll, by default, deploy a service worker.

I think you mean that create-react-app is doing this by default, and that it might be a surprise and cause of problems for the developer. Which is also the reason why they're removing that by default from create-react-app v2.

> That is how the web works.

That's not really an argument, in that it also could've been used as an argument against the introduction of inline images, CSS, or anything added to the web after its first publication. It doesn't really matter how the web works today; what's relevant is how we want the web to work.


> That is how the web works.

good luck trying to convince google of that. they are shaping the web just the way they want it. push notifications? nobody ever except the marketing apartment thought that was a good idea to add to anything. if we try making everything on the web like mobile apps we're gonna get garbage features like this and false expectations on what the web should be like.


Well, i was looking foreward to push-notifications on the web and used them for non-marketing related purposes.

EDIT: I also used Service-Workers in the same project to provide offline functionality :) It worked great, I was suprised how good it worked!


I'm pretty sure that everyone who ever used some sort of messaging application thinks that push notifications are a good idea.


Nobody wanted their "messaging application" to run in a web browser before Google. AIM, ICQ, IRC, and Yahoo Messenger all used local clients.


No actual user cares how their messaging application is made. If it's a progressive webapp or a native app, and the actual experience can be the same, then it really doesn't matter.

> AIM, ICQ, IRC, and Yahoo Messenger all used local clients.

A webapp with a service worker is a local client. And a lot of people use Whatsapp Web, or Facebook Messenger's web site. I know I do.


I think users do care. I care that I can't close my browser without missing messages. I dislike that Electron apps use half my RAM.

If by "don't care" you mean "don't care enough to abandon a platform their friends are on" then I guess I agree. But all you've proven is that network effects matter.


but people do want their messaging application to run in a browser now.

People don't want something until it happens and they see it and say hey that's what I want, unless you are going off the assumption that people are sheeple and can be made to want messaging applications in the browser because they have been told to want it somehow.


Really? Have they been given an alternative? Not an electron app, a real desktop alternative, that syncs with the mobile native client and gives an in-desktop experience.

Nobody did that, ever. It's simpler and cheaper to ship an in-browser solution, so everyone does that, that's all.


> every single time I encounter service workers they make things worse

I'd wager you encounter more service workers than you think, but you don't notice them when they work correctly. They are designed to be invisible in the majority of cases, so of course you only notice them when something goes wrong.


> If you load a React frontend, it'll, by default, deploy a service worker.

What?

> That is how the web works.

The web 'experience' has stopped being about fetching static documents in a request/response fashion long ago. Consumers demand rich apps and interactivity, and it appears they're having it their way.


> What?

https://github.com/facebook/create-react-app/issues/2398

> Consumers demand rich apps and interactivity

They really don't. That's an assumption without data.

EDIT: see gov.uk. It works quite well without being fancy.


> https://github.com/facebook/create-react-app/issues/2398

Equating 'create-react-app' package with React is silly. By that logic, I can wrap $library_of_your_choice in scaffolding and then blame it for the bloat I've chosen to add.

> EDIT: see gov.uk. It works quite well without being fancy.

We're at an impasse, since you countered my 'assumption without data' with your 'one-off anecdotal evidence'


> Consumers demand rich apps and interactivity, and it appears they're having it their way.

no consumer ever demanded the web to be like an app. this is marketing baloney crap. stop treating humans browsing the web as targets for advertisement and consumerism.


You are conflating what you wish were true with reality.

For-profit companies typically build toward what they believe is in-demand and will be well-received by consumers. They perform market analysis to reinforce their intuition. Sometimes they get it right and their stock goes up.

There isn't some elaborate plot on the part of Google, nor are 'they' purposely making something 'no consumer ever demanded.' When they do this, the endeavor fails and we call it a flop.


> what they believe is in-demand and will be well-received by consumers

They never show an actually alternative version. A/B or bandit testing doesn't cover a comparison between, say, a nicely designed, very fast, non-tracking, but less interactive version, or a slow, but full-fledged "app".

There used to be mobile versions accessible from desktop (twitter, facebook, etc), but not any more without faking the user agent. Those are significantly lighter, than desktop versions, but there is no way to actually compare the two for the generic public, and companies don't seem to be brave enough to really dig into these questions.

This is the comparison I miss.

Hence my wording: assumption.


Google and Facebook want us on their website but we aren't their customers. The people paying their bills want our web experience mildly but tolerably bloated and tracked. You have a good point but Google and Facebook are the last people to use for proof.




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

Search: