I would be interested to understand more about why WhatsApp made some of those decisions. The requirement to keep your phone connected to the Internet seems strange, perhaps it's using some encryption key that never leaves the device? Why do they need the Chrome-only filesystem API so much? Why has iOS been left out?
> Why do they need the Chrome-only filesystem API so much?
There is nothing the FileSystem API can do that others cannot, although it might be less convenient or less optimized. Even that shouldn't be true any more, but it still might in some browsers.
Regardless, this was a wrong decision by WhatsApp. FileSystem is no longer standards track. The API document itself says
> "Work on this document has been discontinued and it should not be referenced or used as a basis for implementation." http://www.w3.org/TR/file-system-api/
Browsers should not implement it, and should in fact remove it, because it is nonstandard and never will be standardized. It is therefore dangerous for WhatsApp to use it - Google might do the right thing tomorrow and break their site, and it would be WhatsApp's fault.
However, Google has so far not shown much sign of intending to do the right thing here. As much as I admire many people at Google, and the company does many good things, this is a point that Google keeps getting wrong: Shipping nonstandard APIs, and keeping them active forever: FileSystem, NaCl/PNaCl, WebSQL, probably others I forgot.
I can only guess that Google simply finds those APIs convenient and uses them in its own websites, and has decided to never remove them. In other words, Google just doesn't care that they are nonstandard, which shows a lack of respect for the standards process. And as Google's market share rises over 50%, these are becoming de-facto standards, through an act of force.
One might say that this is an abstract "ethical" point, but WhatsApp shows exactly why it is not just that. Google keeping nonstandard APIs in Chrome for its own convenience opens the possibility of other websites using them. Either through ignorance - they don't know it's deprecated and nonstandard - or because they trust Google to not break them, and don't care about standards. The result is a web that works only in one browser.
Google, please do the right thing and remove nonstandard APIs.
> Google keeping nonstandard APIs in Chrome for its own convenience opens the possibility of other websites using them. Either through ignorance - they don't know it's deprecated and nonstandard - or because they trust Google to not break them, and don't care about standards. The result is a web that works only in one browser.
This is what happened to XMLHttpRequest, or have you already forgotten that it was originally an ActiveX control?
There is not (and there never will) a single way to define how the web is built.
Ok! All of this is my gut-feel with no data behind it. Caveat emptor. Here goes nothing Yippeekayay
The single device strategy is to keep the whatsapp network a network of people - no bots and no spam.
They are still trying to destroy Kik, Line and Viber. The war is not over (http://expandedramblings.com/index.php/how-many-people-use-c...) Bots and spam would be just the reason for people to switch. As it is, spam might be the only thing that can kills Tinder - and people are watching that.
Line and Viber are more fun and more full featured than whatsapp. The only thing keeping people on whatsapp is that people are annoyed by having too many messaging apps on their phone. If people get sick of whatsapp they will nag their friends to install Line. Once those friends are nagged a few times they will install it. How about when they hear that the voice calls higher quality (subjective of course)?
You can build bots for Whatsapp. There used to be lots of libraries and samples on github before the DCMA takedown. There were libraries in C/C++, PHP, JS and Python.
Here in Brazil we do have Whatsapp and SMS spam. Whatsapp spam is rare but it happens and it will only grow.
Of course you _can_ but whatsapp is actively trying to prevent you from building those bots, and they may succeed well enough in their goal to have a measurable impact.
It is easy for us to say that a growth of whatsapp spam is inevitable but I would bet a key part of whatsapp strategy is to take that down to as close to nothing as possible. In comparison on fb and instagram spam is embraced. I think that is part of the reason why we see whatsapp taking a different direction than other seemingly similar social networking companies.
> perhaps it's using some encryption key that never leaves the device
Don't they support multiple devices already (running the client on both a phone and a tablet)? Maybe they don't want to have this run on a desktop (either via API or JavaScript), because then curious people might reverse engineer it. Sort of like how Netflix has clients on locked-down Linux-based devices but doesn't support Linux desktops.
Which is a damn shame because only supporting Chrome is absurd. We've advanced so far, but now instead of "Works best in Internet Explorer 6 at 800x600" it's "Works in Chrome."
The more things change the more they stay the same...
Thats not really Netflix's fault though. Google Chrome (not Chromium) is the only browser on Linux that supports the DRM the TV/movie studios forced upon Netflix. With Windows Silverlight works in all browsers so they have access to the DRM.
It is a very simple reason. They don't want to support multiple devices login as the same time to the same account. The reason for this I think it is because of their architecture constraints:
- Currently, they are storing all the messages on the phone. So once the message is received by the phone, it will be removed from Whatsapp server. This can save the storage and processing cost on the server. If you want to support multiple clients, you need to save those messages on the server for a period of time (e.g. a few weeks).
- If you allow two clients online at the same time, you need to support "carbon copy" meaning you need to send the messages to all the clients and keep the status of the messages in sync. This will take a lot of processing on the server side.
- When a client offline for a long time goes online, you also need to sync from the server all the messages that were sent during the client is offline.
So their architecture was built in such a way that the processing power on the server side is limited to the minimum. I believe that they may change its strategy in the future. However, it will take time.
> The requirement to keep your phone connected to the Internet seems strange
Somebody probably came up with this crazy and cool architectural idea. "I know Jim! Instead of having the browser communicate with our servers, have it communicate with the phone which communicates with our servers! Brilliant! Cheers! <Gulp>! Another round of beers please!"
In all seriousness, you'll probably find that having Whatsapp on your phone is somehow tied to how they plan to monetize the platform. If the web client works without the phone there is no reason to have the app on your phone.