BUILD 2014 recap
I had a great time at BUILD this year. As far as major announcements go, this had to be one of the biggest in recent memory. I wouldn't say that I saw an overwhelming shift in direction as some articles I've read would have you believe, but I would say that the direction is clearer than ever. We all knew that there would be more open source, cheap or free windows, a bigger and badder Azure, and WinRT on all windows platforms. It's not about getting shocked anymore, it's about seeing those things realized and then getting them in the hands of partners and us developers. It's also just common sense. This is the competitive landscape now and I fully expected Microsoft to not only embrace that, but innovate as well. Seeing the realization of a universal app on the desktop, tablet, phone, and TV (Xbox) is a perfect example of that realization and innovation. Microsoft see's their future now, and I have to admit, I'm pretty excited about it.
Did I mention big announcements? Now while most of us expected more WinRT everywhere, this is where they exceeded my expectations. By targeting WinRT for all of your shared app code, you can bring that app to all screens, including Xbox One, with roughly amount of effort it takes to build a universal web application. That's a native app on every screen with one shared code base! It's a really big deal that only starts with the windows platforms. The no-brainer of course is the massive cost savings this brings to Windows app development in terms of broad WinJS support. You don't need a web team and an app team anymore, they can be the same team now. This will no doubt lead to an app explosion on all Windows platforms and start to finally marry the open web with a great native app experience. An experience no other main stream platform has really come close to accomplishing well. Even the outstanding Gmail mobile web app can't touch the native Android app, its a gap other platforms won't close without this type of innovation. This is the difference between embracing developers and tolerating them. The reason the large mobile incumbents have not invested here is because they don't need to love developers for developers to come to them. I think that's a mistake that will cost them in the long term. Just look at Microsoft and the web pre Chrome & Firefox. Microsoft and Xamarin have this one right, this is the future...and for the first time in a while, the other guys will be playing catch up.
First, lets all just take a deep breath and be thankful they didn't call this the Windows Phone Personal Assistant. Cortana is everything I hoped she would be in this release and then some. Natural language is the future of mobile input and this piece of the Windows ecosystem was absolutely critical to get right. THE number one thing that keeps me using a Nexus phone is that it has amazingly accurate voice input and voice dictation throughout the entire OS. It's hard to know just how accurate the new Cortana system will be without actually using it (huge letdown BTW), but with everything demoed I'm convinced the foundation is there to be as good or better than the mainstream competitors right out of the gate. I think the things that set Cortana apart right off the bat though are her personal assistant focus and her deep 3rd party application support. She knows about your email, calendar, contacts, search, etc and can start to anticipate your needs throughout the day, very similar to Google Now. We also get the same engine and hooks that the Windows team themselves get. We can plug in our apps and take full advantage of Bing's search and context capabilities while leveraging our own custom functionality. There are some great talks on this already available online from the conference which every current and potential Windows developer should take a look at. I'm just as anxious to see Cortana on Windows proper as well, but there were no official announcements on that just yet. But you can easily see the future here, Cortana following you from your work computer, then to your phone, and finally at home on your Xbox...really exciting stuff.
The next generation .NET compiler. Roslyn is now closer to reality with it latest preview release that was also made open source on stage during the day 2 keynote by Anders himself. Gone will be the days of C# in with IL out on the other side, not knowing exactly what the compiler is doing. This project effectively opens everything up and turns the compiler into a platform itself. This could lead to so many new and innovative languages, language features, analysis tools, c# scripting, the possibilities are so numerous that its impossible to list them all. I'm already using tools that leverage Roslyn in my day to day like SemanticMerge which goes beyond a basic side by side diff and delves into what actually changed in your code. Imagine more tools that truly understand your code and can show you in line refactors with actual code, or real time translation from c# to vb.net. Roslyn is really going to to open up the world of .NET to not only tool makers but other platforms as well. This will power the open, powerful, and cross-platform future of .NET and I can't wait to start leveraging it in my own tools.
The new community driven foundation charged with strengthening the future of the .NET ecosystem. Initially this had me a bit confused, since I thought that was the mission of the Outercurve foundation, but they just released a post explaining how they will move forward with this new announcement from Microsoft. Either way, this is all very good for the .NET ecosystem as a whole. In my mind, this announcement puts an official stamp on Microsoft's commitment to open source and the future of .NET. Even better, this will ensure that .NET lives on with or without Microsoft. It's a big deal and I'm happy to have been there to witness it in person.
There was so much Azure on day 2 that it's hard to keep track of it all. I won't get into the many individual features that launched, but rather take a step back and reflect on where this is going from my perspective. The main takeaways for me are this. First, Azure is the platform that will drive the next 30+ years at Microsoft. Just as the future of games will be "cloud assisted", so will be the future of Windows and other client operating systems. Need a new desktop, just provision it. I think we'll all be surprised by just how fast this takes hold. There is just too much potential here to leave it bottled up on individual system specs. Hell yeah I want my ultra book to play Diablo III at the highest possible settings...just spin up a couple of vms for me in the cloud to get there render on and make is so. Client server is out and client with cloud assist is in. This is not a new concept I know, but its finally on the verge of becoming mainstream in a big way and Azure will be a huge part of that future. Second, Azure will be nearly impossible to ignore by developers and companies moving forward. Their unique PaaS offerings, most of which I've been using for some time, are first class are are only getting better with each iteration. Websites and Mobile Services alone could power your entire business on any screen with any platform. That's any client with any back end using any storage mechanism all powered by Azure. If you ever needed proof that Microsoft loves developers, then spend a day on the azure portal and try it for yourself. Finally, SMB private clouds beware because there is little need for you anymore. At this point, Azure has support for just about any IaaS management scenario that is both price competitive and often superior in terms of features at the private level. What small company do you know that can afford to have private racks in 3 geo locations all replicating in near real time with automatic network load balance and failover? Even for companies that are doing that today, I can't imagine a scenario where they couldn't save a significant amount of money with a much better story using Azure or others. For better or worse, the enterprise internet takeover has begun and Azure is right there on the front lines.