Microsoft's been talking about "Three screens and the cloud" for a little while now and this concerns me with regards to the WP7. First off, what is this "three screens and the cloud" idea? Quickly, it's how Ray Ozzie thinks the web will act as the main source of information with everything else connecting to it. hhhmmmm isn't that what we already have, it's called the "INTERNET?" Why do marketing people HAVE to put some fancy-schmancy name on something we ALREADY have.
Ya, ya, Microsoft has a GRANDER vision than just a web server running IIS connecting to SQL Server and servring up web pages, or serving web service calls, but it's really JUST some "device" asking a "server" for information. It CAN get more complicated sure, but at it's core, isn't this all it is? (If you're wondering, and I can guess you are LOL, the "three" refers to the three devices users would use to access the information, WP7/mobile, PC and TV.)
Ok, so what? Well, what bothers me, is this complete infatuation (or what so appears to be) with "Cloud Computing." When I had my Apple iPod Touch device, I didn't realize just HOW MUCH I liked being connected until I was in my vehicle looking to check email (NO, I wasn't driving, I was at a loooong red light). The deal isn't that I HAD to check my email, nor that I really wanted to, it was just habit. This raised two questions for me, do I REALLY need to be connected to the "internet" 24/7 and is there a better way to access information.
To answer the first question, the answer is no, but not for why you might think. Accessing the internet 24/7 is costly, and for some long time readers (thank you to both of you LOL), you know I'm CHEAP!!!!!!!!!!!! And that was one reason why I got an iPod Touch instead of the iPhone.
The 2nd question is what REALLY bothers me about Microsoft's emphasis on cloud computing with the highly anticipated WP7 release soon. That is, IMHO, there is TOO much emphasis put on accessing data over the wire in a live fashion. Why must I be perpetually connected to the internet to run YOUR application? Why CAN'T that application download the information it requires WHILE I'm downloading the application or shortly there-after, while I'm connected to the web, most likely via Zune using a NIC/wire/LAN/hard wired/Wifi connection instead of the much more costly cell phone minutes. Ya, ya, Rogers and Telus is going to hate me for this, but remember, I'm CHEAP!
Why is this an issue? It's an issue because some noob WP7 developer (maybe me, maybe some well intentioned coder, maybe even someone from MS, who knows?) will write some WP7 which might continuously poll some cloud service for data changes. Or maybe just download a one MB file EVERY SINGLE time you load their application cause they "didn't realize it was a problem." The main issue here is not putting a high enough value on network connectivity as a resource/cost issue and I think THIS alone should be treated as a feature!
I think I might know some reasons why this is going to be an issue in the coming months. Developers will have to change their mindset from "always being connected" to "sometimes being connected." The difference is, you can't always rely on the network being there. Check out some early Lotus Notes developers and see how much hair they have left after they hobbled some ass-backwards-hair-brained connectionless scheme for laptops and Notes shops in the early 90s. Data Replication? WTF, it's just email man!
"Caching" some information is going to be HARD for some developers. They'll have to start using Isolated Storage and this is a new concept if you're using to having complete control over your C:\ drive, or your other hard drives. If you're used to hard coding your directory paths instead of using something like Environment.SpecialFolder.MyDocuments you might have to step outside of your comfort zone. Figuring out code which figures out if you're connected via wifi/LAN connection to download and cache updated data, or if you're only connected via cell phone, then use that cached data is going to be HARD for some people. BUT in the end, the people buying your app will THANK YOU FOR IT if you treat their connectivity like a precious and non-renewable resource!
What is the meat of this? My deal is, when I write WP7 apps, I want to write apps which will use networking connectivity as a precious resource, not to be squandered away much like the very hard earned dollars we're paying for that darn little device and the precious cell phone minutes! If you are wise and developing WP7 apps, I would suggest you do too.
</rant>
Resources
Business Standard: Three screens and the cloud (Hbupesh Bhandari)
MSDN, Architects Rule!: Three screens and a cloud let's dream and then build! (lucvdv)
Microsoft News Center: Media Alert: Microsoft Demos "Three Screens and a Cloud" Scenario for Banking
Microsoft Showcase: Three Screens and a Cloud: Connected Experiences in Banking
1800PocketPC.com: 3 screen plus cloud vision from Microsoft - blurred boundaries between phone, the PC, the TV (Saijo)