So Microsoft has had a number of very good event's over the years, including MIX, which was a web-programming\up-and-coming hardware and architecture conference held in Las Vegas. I never had the chance to attend it, and just as I was planning on doing so, Microsoft decided to cancel it and replace it with a combined programming experience in Redmond, which went on to be called BUILD. They, however, kept with custom and continued to stream and share video from the conference sessions on their Channel 9 website. Since I never had the means to attend said conference, I love having the ability to watch some of these video's time to time.
So today, I was able to take the time to watch Angle Brackets, Curly Braces, One ASP.NET and the Cloud, a conference topic presented by Scott Hanselman. I really enjoy watching Scott present, he's an admittedly open failed comic who fully embraced his inner-geek, and finds a way to present really high level concepts in really fun fashion. Google\Bing any conference video of his, you'll see theyre given high ratings.
So I watched the video, and really was in awe in the amount of takeaway I had, mainly because it goes to show how quickly the technology landscape can shift our IT industry. The operative term here, of course.. is quickly. So what was so awe inspiring.. well in short I recommend you watch the video (I linked to it above, so you have no excuse!), but here's my punch list of things I really enjoyed about it. While, yes, it is a Micrsoft speech that does some demo's on Azure, it discusses so much more about how conceptual programming is shifting. Watch the video for the full idea, but some of my personal takeaways are listed below:
- The overall concept is that modern day programming.. and not just "web" programming.. is shifting from using the typical client server relationship to hunks of raw power (scalable cloud services) and the power of the end user's client.. not just the OS itself, but the web browser
- Conceptually, Cloud computing gives IT the ability to start up their server architecture no longer in hardware investment, but in command line "loops", meaning we can specify a server image and use that as a server template. In Azure, you can cook up Virtual Machines for a variety of server types and Operating Systems.. not just Microsoft.. and have these servers ready to deploy at a moments notice. In other words.. decide on your infrastructure and have it.
- Less headaches about hardware - Scott told a story during the talk that helps encapsulate one of the great wins with Cloud Computing. In short, a chief architect for a major company was discussing the ability to switch to the cloud, and in the process the ehancements provided to the required hardware to continue to run their business centric applications. As a question from the audience, the presenter was asked about the periodic degredation of using the new hardware, to which the reply was "That's not my problem". The point here was simple, it's on the cloud storage provider's end to worry about data redundancy and availability, all the end-user has to worry about is speed.. in this case, receiving a greater throughput by switching to the cloud. Any hardware issues and such are dealt with by the service provider, in this case Microsoft.
- This just in... Cloud Computing is great for scalability! OK, nothing mind blowing there, but what Scott did display was that with Azure, you don't just need to create the old-fashioned virtual machine (did I just call a virtual machine old-fashioned?), create a website to work with the VM, and then use cloud to scale that service if you go from 1 to 100 Million hits in a day.. because.. you know.. that's a common headache for all IT shops. Instead, Scott showcases that you can use Azure to scale aspects of your processing or services. Imagine needing to batch process large amounts of data, sure you can have a well-equipped server to handle the data load, multi-thread the process, and return the result set... but you don't have to. With Azure, you can use the scale of the cloud to handle part's of this process, the part's that you need that extra horsepower.. paying for it only when you need it. Cloud services aren't just for the web, you can use them for basic console applications too if you needed. You can put your abstraction layer in the cloud, without re-organizing the rest of your applications.. pretty awesome stuff.
- Spanning to the opposite end of the spectrum here, you can also make use of the client's web-browser for applications now too, there's no need to constantly chuck data via HTTP GET\POST anymore. JavaScript has wonderfully written open source API's - jQuery, D3, Vanilla JS as referenced in the video - that give you the ability to sort through data, mash values together, and provide an extremely rich application local to the client. In other words, we don't need a web server to sort 100, 1000, or even 100,000 items and return a result set to a client browser.. the browser can do this for us anymore. Don't waste time "waiting" for data to come back, the data is already available.. use it.
- A final point I really enjoyed was Scott mentioning to "expect more from your tools". Showcasing some new features in Visual Studio 2012, you can get design time support for your CSS files. A color picker when choosing colors, image preview, font examples when changing fonts or respective sizes, or even browser support for selected styles.