A couple of days ago I posted a blog entry about a conversation I had with someone about a new way of working, and the fact that this was a cool thing. In the midst of the conversation, I mentioned an iPad – a computing tablet from Apple. Now, I’ve taken my shots at Apple in the past (all in fun), but it should be kept in mind that Microsoft is one of the largest sellers of software on the Mac platform (Microsoft Office) and has several hundred Apple developers here in Redmond – more than many shops around the world. I’m actually still registered as a Mac Developer, from my days when I did that sort of thing. I’ve used just about everything from PIC systems to OS9, OSX, Linux, Sun, Tru64, just about any OS in mass production. I even owned an Amiga!
But someone took issue with my statements. One of the responders to the blog said that “that Azure stuff” wouldn’t run on an iPad, but this gentleman got a little mixed up on his information. As I teach my daughter, if you're willing to learn, even your critics can be a great ally, even when they are wrong. What I derived from this person’s general statement was something the way I think a lot of people might think right now – that things made by Microsoft are only for Microsoft technologies, Apple things run only on Apples and so on.
But the cloud is more – much more. It’s the whole promise of being platform independent that I like. Sure, you can code things running SilverLight or Flash that won’t run on an iPad, but that’s not an artifact of Windows Azure – it’s a front-end design choice. If you code your application correctly, it can run anywhere. And you can even code Windows Azure in PHP, Java, or C++ if you want. It’s just back-end stuff - the front end is up to the developer.
So knowing that we’ll have this perception going forward, I put my money where my mouth is. I won a contest not long ago that gave me some money. So I took that money, drove to an Apple store, and bought – an iPad. That’s right, I’ve joined the “cool kids” in owning one, which I’m sure will shock some folks. It’s an interesting little device, and makes a decent enough web browser, but I doubt it will be my primary computing device any time soon. But I bought it with one thing in mind: I’ll demo Windows Azure on it.
There are lots of sites using Azure right now – one of them is NASA. They federate the Mars rover data (for free) using Azure. So I logged in, signed up, and hit the site – notice the platform for the data: http://pinpoint.microsoft.com/en-us/applications/nasa-mars-exploration-rover-mission-images-12884902246
From there, I opened – gasp – a Windows Azure platform-based site on an iPad – here’s the proof:
So does Azure “run” on an iPad? No! The point is, it doesn’t have to – the application runs on Azure, and the data is delivered to a web browser. The front-end of the application is truly separated from the back-end, so that I am indeed platform-independent, at least on this application.
As time goes on, I plan to write an application (and blog about it) that uses Windows Azure, Blob Storage, Table Storage, Queues, the App Fabric, and SQL Azure, as well as a local SQL Server database. I’ll explain what I’m doing, what I learn – warts and all – as I go. And I’ll also make sure it works on my new iPad.
So Apple just significantly changed the terms on the App Store, such that we might see Silverlight apps running on the iPad sometime, just as we will see Flash apps soon. This cross-platform stuff is getting really interesting, and is really great for people who like to use great tools that work really well. Choice in any marketplace keeps the vendors honest and working hard to out-do each other.
Chad - excellent point. I think the reason that things become "browser specific" is that it's easier to write "rich apps" in a tech like SilverLight or Flash. But then that ties us down. So I'm interested in the newest forms of HTML, that have many rich features that *should* be browser-agnostic - if we all play nice. Here's hoping that happens.
I was also a little surprised at the comment on your last blog post, but was short of time to post a comment.
I agree that Azure is a really powerful platform for delivering data services to any application we've been building REST APIs on ASP.NET for sometime which are now being consumed by all sorts of clients from Web Sites through to native Apple Apps written in Objective-C; silverlight in the browser and soon to be available on Windows Phone 7. Although I've not done this personally I've seen that it's even possible to write an application for the iPad using C# which is then compiled by MonoTouch.
The exciting thing here in my opinion is that the data is not vendor specific and can be consumed by any cool front end application written for any platform.
I think Azure adds another element in that a small software development team can build an application that can serve a massive population that was well out of their reach before because of the large infrastructure costs that would have been required to get such a project off the ground.
James - I'm actually writing next week's post on exactly that topic. That's one play for Azure - extended reach. Stay tuned!
O.M.G you bought an iPad. Does Steve Ballmer know? Is the world going to end next month because of an asteroid heading our way? Is 2012 true!?!?!?!
Congrats, and I hope you enjoy your toy. I'd love a follow up in a few months to see if you like it, and especially if you present with it at all.
Good post as well. Azure is just another way of building applications, and it works on all platforms for the end user. I think there are plenty of people that don't believe it.
Welcome to the "I'll never get to sleep now" toyland.
Yet another reason I have to work with Azure.
I'm not sure how intouch you are but MS Office on MACs do not work very well. They actually SUCK.. When searching for help on the net, no one has a good solution. We ended up purchasing a Product called Parallels that lets you run PC MS Office seamlessly.