What's Next: Spelunking the PDC Session List
With this year's PDC (Professional Developers' Conference) only a few days away, I decided to go looking at the session list to see the topics. PDC is traditionally Microsoft's future-looking conference, as opposed to TechEd, which traditionally is intended to help developers and IT professionals understand currently shipping software.
While PDCs tend to cover a broad range of topics, they frequently become known for specific themes covered at some of the events. Old timers will regale listeners with tales of when they attended the "32-bit PDC" (1992) or the "Internet PDC" (1996). More recently, 2000 was the ".NET PDC" and 2001 the "Hailstorm PDC" (how'd that turn out again?). This year seems to be lining up to be the "Cloud PDC", with 38 out of 195 sessions devoted to cloud computing (see figure 1). While not listed as cloud computing sessions, there are a number of related talks: 10 on Live Mesh, 7 on SQL Server Data Services, and 14 on Live Services. It really seems like Microsoft wants to let developers know their message: the network may not be the computer, but it is where your program runs.
What seems to be Microsoft's take on cloud computing? It seems to be many pronged. In addition, it seems to be gathering up already existing technologies and rebranding them under a new umbrella brand: Strata. While that doesn't seem like it will be the 'official' name or code name (they've removed references to Strata in the session list as of Oct 9), it seems to be a combination of new technologies, as well as rebranding of some or all of Live Mesh, SQL Server Data Services and some or all of the existing Live Services (which were a rebranding of many MSN services). The existing Live Services seem a good fit: they provide identity (Live ID), presence and alerts (components of Live Messenger), and storage (Live SkyDrive). SQL Server Data Services provide a means of scaling your databases. Mesh provides synchronization, and yet another way to drill applications through firewalls. This last point is where we see the difference between Microsoft's cloud, and that of other companies, such as Amazon or Google. While other companies talking about cloud computing are all about the Web, Microsoft will likely leverage the Web but focus on applications running on the desktop. Just as Outlook runs while either connected to the mail server or not, Microsoft's cloud applications will likely be desktop programs that can scale by synchronizing data: either across the network, or to data centers. I have to admit, as much as I like Web applications, I much prefer desktop application performance. While I occasionally use Google Docs to write short items, I am more likely to fire up Word. However, as we all know, desktop applications can create data silos; I still think the #1 database application by volume is Excel. People create all kinds of lists in Excel, then pass them around via email, getting version issues, data duplication, and more. Instead, if that data were stored on some shared location (the cloud) — or synchronized — the duplication would decrease. You will also see other benefits to Microsoft's cloud (as you do with other clouds): the data is on servers that are properly backed up and maintained.
While there is an ongoing cost associated with cloud services (as opposed to simply using the synchronization services to share across your own network), the costs may actually be equivalent or better than the costs involved in buying, maintaining and operating your own servers. Much of the time, your servers are probably running at low utilization, yet you frequently need to buy them based on peek or expected future usage levels. You need backups, you need cooling, you need physical security, and most importantly, you need people to manage all of this. Cloud computing provides an alternative with a regular, predictable cost structure.
Of course, not all of the sessions are related to cloud computing, there are a number of other topics at this year's PDC, and they also provide a glimpse at how we will be developing in a few year's time:
- Windows 7 (22 sessions)
Will it come out in 2009 or 2010? Is it just Vista SE? We may not find out at the PDC, but at least people will begin to see Microsoft's next OS.
- .NET Framework (16 sessions)
We'll start to see and hear about .NET 4.0, which hopefully will finally solve some of the confusion around versions (.NET 3.0 just added a few frameworks, but 3.5 added huge numbers of useful core features). More on these later in the week.
- Silverlight (12 sessions).
I have to admit I'm torn on Silverlight. It may just be caused by my struggle to get some Websites updated from 1.0 to Beta 2 to 2.0 final, but the promise is there. Getting the .NET onto both Windows and OS X (and soon to Linux) means that we can finally have a decent cross platform story
- Parallelism (9 sessions)
For big, process-intensive apps, parallel is the way to go. Obviously not every app needs these, but for render farms or big calculation applications, these will likely be invaluable.
- Oslo (6 sessions)
Microsoft enters the modeling world (again). I'm definitely going to have to look into this deeper and soon. It looks like it starts with a text-based modeling language (so your pseudocode becomes the application) and solves all the world's problems. I admit I'm a little skeptical, but this is coming from the brains of many people at Microsoft that I have huge amounts of respect for, so it will be important.
More after the keynotes...