5

At an operating system level, mobile operating systems support the notion of push notifications or a socket level 'persistent' communication with an app, whenever it is online.

Why have the major computer operating systems (OSX, Linux, Windows) embraced this idea at an OS level as a higher level abstraction. This can still be done in an app for sure.

Is there a difference in how we perceive something thats 'pushed' on to our mobile devices (with or without our knowledge) vs something that maybe 'pushed' onto our laptop or home pc?

Is it more to do with how the 'privacy' and permissions structure for an app is defined in a mobile OS as compared to how for a desktop app, its not that well-defined and its not that granular?

  • 1
    MacOS X does support push notification service (APNS) since Lion. The reasoning behind push to an OS service instead of poll through background application is, however, rather more battery life than anything else. – tofro Sep 17 '16 at 18:37
  • 1
    Windows supports notifications now too. They're available via Universal Windows Platform. – RubberDuck Sep 18 '16 at 0:39
  • Email isnt push? – Ewan Sep 18 '16 at 21:37
  • @Ewan Well most email clients just poll the server, so... no? – fabienbk Sep 18 '16 at 22:52
  • 1
    Probably because those notifications are fucking annoying and most of the systems we use on the desktop were invented before the corporate stranglehold on the Internet. – Miles Rout Sep 20 '16 at 21:35
3

The term "push notifications" is only on mobile platforms. We had the concept long before smart phones, before even cell phones.

When you push you have data and you want that data to go somewhere else.

When you pull you don't have data and you want to get it from somewhere else.

Problem is: who is "you"? There is no push without a pull. No pull without a push. So why call it a push? It's about who's the active participant. We describe the transfer from that perspective.

When I load a web page I'm pulling down data. The web page is pushing to me. But since I decided when this was happening we describe my role in this. The pull role.

When I sit on a web page and watch comments pop up I didn't decide when they'd come to me. I was just sitting here. I didn't actively pull them. They were pushed.

Ajax is one way that sort of thing is accomplished. There are other ways but it predominates the web.

In the object world this trick is called events. The observer pattern lets you tell an object, hey, let me know when you change. I don't want to keep asking you. That is, actively pulling from you. I'd rather passively sit here waiting to hear from you.

Repeatedly asking/pulling, is called polling. If done poorly it has serious performance consequences. Polling the database, rather the using a messaging or queueing system is a good way to piss off your dba.

Long before any of that we had IRC. We pushed "notifications" to each other with every stroke of the enter key. Before that we had email. Again pushing "notifications" to each other.

The key element in all of this is, if you want to actively push something at me I have to have something ready to passively pull it. Or it goes nowhere.

My question was also more from a 'personalization' point of view and also 'privacy' point of view in the sense of why not as many Mac or Windows apps take this route of using notifications in a highly social and personalized world and how maybe there's still a mindset gap between a desktop OS vs a mobile OS. – FrailWords

Well there definitely is a mindset gap. Mostly because the expectations on a PC were set long ago and expectations change slowly after much kicking and screaming.

The fundamental difference is on a mobile platform each app has a mailbox that works whether the app is running or not. On PC's the app can receive notifications. I get plenty telling me it's time to update. Those "notifications" simply don't show up unless the app is at least running in the background. A big reason this hasn't changed is because it would piss me off. If I'm not using adobe reader right now I don't want to hear from it. So the reader can wait till i'm using it to annoy me.

Of course the flip side is that if notifications HAVE to go through a review process then there is an added check on how annoying they can be. I do like being able to turn notifications off regardless of how the app feels about it. That's only possible to enforce when the app can't simply do it's own notification system. On the PC I'm just used to needing to stop the app from running in the background to shut it up.

  • 2
    The concept of push notifications is different in the mobile world in that it is a OS service that receives the pushes, not some arbitrary application or service that needs to be running in the background. This keeps the number of applications that need to be running low, and such the battery life up. – tofro Sep 17 '16 at 18:52
  • 2
    We had those same needs long ago – candied_orange Sep 17 '16 at 18:56
  • 2
    @FrankHileman yes and no. Establishing the connection is what makes you a client. Listening for the connection is what makes you the server. I've written executables that are both client and server. We called it peer to peer networking but all it meant was you can do both. Pushing and pulling isn't about who set up the connection. It's about who decided it was time to move the data. – candied_orange Sep 18 '16 at 0:57
  • 1
    @CandiedOrange, your point of "who is 'you'" hits the point through. My question was also more from a 'personalization' point of view and also 'privacy' point of view in the sense of why not as many Mac or Windows apps take this route of using notifications in a highly social and personalized world and how maybe there's still a mindset gap between a desktop OS vs a mobile OS. – FrailWords Sep 18 '16 at 8:39
  • 1
    The initiator of the transfer (who I called active) is the one who's roll we describe. If I say this is a pull I mean the "initiator" doesn't have the data and now wants it. If I say this is a push I mean the "initiator" does have the data and wants to send it now. In each case there is something on the other end passively doing the reverse that we just normally never mention. This is all regardless of who initiated the connection. – candied_orange Sep 18 '16 at 14:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.