Tuesday, September 13, 2011

Windows 8 and Build Day 1 Keynote Thoughts

Yesterday I shared my predictions for Windows 8 at the Build conference. Today I can say that the keynote exceeded my expectations. There were a lot of amazing announcements that I'm excited to share with you. First, let's recap my predictions:

  • Microsoft will focus on Windows 8 as the platform for multiple devices and specifically address the tablet/slate competition space. To be convincing they'll need to address speed and responsiveness, but likely they'll focus on:
    • The richness of the OS - it's not just a big phone, but the full Windows enchilada
    • Security and policies that are lacking in iPad
    • The new HTML5+JavaScript option for development to draw in the developers who traditionally don't work with the Microsoft stack
    • Some lip service to writing it once and running it everywhere whether it's the desktop, laptop, or slate
    • The touch-first features of the new OS
  • Microsoft will emphasize that managed code and Silverlight are not dead and will be fully supported on Windows 8. I don't see the death of Silverlight any time soon (again, these are my predictions ... it will be interesting to see what really happens)
  • They almost have to address the community of developers concerned about managed code and emphasize that it is not going away. I'm guessing they'll talk about how managed code will work with Windows 8 and perhaps reveal some details about Xaml and C# either as Silverlight or something new for developing apps that target Windows 8
  • Microsoft will also address the unmanaged coders and focus on how C++ is coming back to front and center on the new platform, and likely cite some performance examples of why native code is important

I would say I hit the mark fairly close, in fact I underestimated what would be revealed. The main theme for the keynote was bold and re-imagined. While these words were repeated so many times they became a bit cliché, I would say they accomplished both.

The key points the keynote focused on were form factors, mobility, connectivity and sharing, and that services are intrinsic in modern applications. The keynote was divided into four distinct areas, and I'll cover those each.

The Windows 8 Experience

The new experience boasts a smaller memory foot print "up front" and small goodies like a gesture-based login. The main screen is touch-centric but not touch-specific and works fine with the keyboard and mouse. There is a new format that I'll call "clipboard plus" for integration between applications. This is incredible because a "photo chooser" can easily take you into Facebook for example to select social media pictures, without you coding a line of integration. The integration points are called "charms" and are consistent between apps. An example of a charm is integrated search that allows you to pass the single search phrase to multiple applications and get results based on Bing, social media, your file system or whatever else you like.

Building the Applications

I was worried we might not hear about the framework today, but I was wrong. The shell has been re-organized to feature a WinRT layer that supplies object-based APIs that are exposed to any language of your choice - C, C++, C#, VB, and of course the much-hyped JavaScript. A Visual Studio 2011 demo showed a photo application built with a few dozen lines of code using a new JavaScript, HTML5-based project. The project was then opened in Expression Blend which has been extended to support HTML5 just as well as it handles XAML. For those who thought it all would become HTML5, they then pulled down a Silverlight application and built it for the new platform. Just a few tweaks turned it into a native Metro application with full integration. XAML is right on top of the stack proving that the core Silverlight technologies are still very much a part of Windows 8.

The new application store is integrated directly into the development platform and allows direct publishing of applications. Sinofsky described as being as simple as "ordering a pizza." There is a visualization of the steps within the process and developers will have full access to the tools used to analyze and validate the applications that are published.

The most impressive feature I saw was the ability to take one code base and very easily and quickly build to the desktop, to Silverlight, and to the Windows Phone. This is exactly what people have been looking for and what addresses the unfounded fears that Silverlight technology would go away.

Hardware

I mentioned that one thing Build would need to address is the iPad. I think they did that well by not only showcasing some amazing UI features that make the iPad feel old, but by showcasing the hardware as well. The boot is ultra fast, taking only seconds. The bootstrapper includes malware detection and they showed an infected USB boot drive get halted because it contained a virus. A new "connected standby" mode wakes up periodically to process timer and network based addressed and then idles the power. All applications are hardware accelerated out of the box for the richest possible experience. Devices can be extended with miniature applets that integrate directly into your existing applications - for example, a print dialog that doesn't require you to "go somewhere else" to set up the printer settings. We saw super-thin laptops that were actually thinner than the legacy CAT-5 and USB connectors.

Integrated into the OS are options to refresh the system and remove malware and adware, as well as a command-line option to create a snapshot of the baseline and use that to restore the machine. There is an improved task manager, improved multi-monitor support, and Hyper-V built into the client. The onscreen keyboard is also very welcome and enables you to use a tablet to remote into a development machine and work (and no, I doubt I would be doing that very often).

Windows Live Integration

I did not expect them to address the iCloud but they did that through Windows LIve. There are settings to automatically synchronize between PCs and cloud-base email that automatically integrates across all devices. There are shared calendars, shared photos, and other repositories that synchronize to the cloud seamlessly from applications. A share charm allows you to integrate all of these items including between applications and to the cloud. You can also use the cloud to remote back to your devices. The key here is using the Live id to integrate all of the devices from your desktop and laptop to your Windows Phone and slate devices. This comes with a new API to make it very easy to integrate into your applications.

Conclusions

I am very excited about what I heard today. We can finally move on with the conversations about Silverlight. We will be able to use our investment in C# and XAML technology moving forward while allowing HTML5 and JavaScript developers to join the platform as well. The new platform looks exciting and responsive with a lot of features that put the customer experience first. I think these new devices and the new OS can absolutely compete with the likes of iPad because they provide an enhanced touch experience while carrying forward all of the security policies and features as well as supporting all of the legacy applications that came with Windows 7 and the 450 million people who have installed it. I believe this is a very exciting time and there is incredible opportunity now to build the next generation of applications using our existing knowledge and investment in Microsoft technologies.

Don't Forget to Download the Preview!

The preview, including the OS for both 32-bit and 64-bit, along with development tools will be available after 8pm PST on Tuesday, 9/13 at this link: http://dev.windows.com/.

Jeremy Likness

10 comments:

  1. Well said!
    As principally a web developer i was waiting Blend for Html5 sooo long! I need my websites/apps to be cross platform

    But the first love will always be Silverlight!

    ReplyDelete
  2. Pretty much how I expected it.
    People who said Silverlight is dead or that old desktop is dead are simply hysterical or almost stupid for thinking MS is gonna dump all its lifetime of investments.

    ReplyDelete
  3. Jeremy,
    when you say that HTML5/javascript can leverage all the benefits of blend5 and can do all stuffs possible in silverlight, what is the potential justification that you would give for building Enterprise applications using silverlight.

    what cannot be done in HTML5 that is possible in silverlight and how about performance.

    Your views on this!!!

    ReplyDelete
  4. Let me clarify. Where is the .NET?
    What exactly C# and VB (note, not a VB.NET) means? Are those just languages with totally different underlying infrastructure, similar to Silverlight .NET?

    From what I see that's the case. Оf course there is always "legacy", "for work in the office" area, but if your application targeted common people (think Evernote-like apps) and it used .NET 3.5/4.0, you better start to rewrite it using Silverlight, or even better - HTML5.

    Am I right?

    ReplyDelete
  5. @bharath,

    I'd say knowing XAML and C# is the main reason to continue down that path. If you know HTML5 then go with it - I don't see any issues either way, but we need to also look at performance and assume that hopefully both rendering engines are comparable. It looks like with the new stack all of it is likely possible in HTML5.

    @dmitryvlasov,

    The .NET is there. The commitment was that all existing Windows 7 applications will run as is on Windows 8. Full, 100% backwards compatibility which means all of .NET and its glory - I didn't see any indication you'd need to rewrite it and in fact they showcased support for existing Win32 apps in the new application store.

    ReplyDelete
  6. I'm curious as to your perspective of Silverlight and Win8. I didn't see Silverlight in this demo other than how to take a code base from Silverlight ande move it to Win8. XAML will be a first class citizen with Win8, but the rendering engine will NOT be Silverlight. This means that we have lost the X-Browser capability of Silverlight, as well as the ability to move from device to device, regardless of the OS. The dependency has moved down the stack from a Silverlight plug-in being able to execute on a device (in whatever OS), to the device having to run Win8.

    I'm glad my skills in XAML will be used, but the entire WCF/Async/Messaging infrastructure is also gone or radically changed. An WinRT is an API interface, not a messaging interface.

    There is a lot more to be considered before announcing that SL is still alive and well. I think we have to be more technically correct, regardless of how many clients that will get worried when they hear that SL is going away.

    Regards,
    Richard

    ReplyDelete
  7. That's I understand. I am not questioning general .NET availability for development. I am talking about "Metro" mode that is ready to go in 5 seconds after the boot.

    As I understand, at this point there is no .NET running yet. (That's I guess true for Win7 too - .NET is started only for the first .NET application).

    Now, my question - I launch .NET 4.0 application from Metro UI. Does it mean that it will be significant "cold startup time" for that?

    If so, it would be kind of suck to have additional several seconds to startup after super-fast boot of Windows itself.

    If this is the case, I would probably avoid using .NET (full .NET, I mean) unless I write something really big, like Visual Studio's size, application.

    I am not saying it's bad - Silverlight is mostly capable enough for small apps, provided there will be full access to WinAPI.

    I just consider my options and try to define the correct place for full .NET in W8.

    ReplyDelete
  8. Ian Smith said...

    Did they say ANYTHING about battery life? I got the "instant on / instant off" stuff but heard nothing about battery life which will be key to success of any tablet form factor.

    I think you're overly optimistic about Silverlight. I didn't hear Silverlight, I just kept hearing "XAML" with no specifics as to compatibility with the WPF/Silverlight versions just reference to Windows Phone migration(so kludged Silverlight 3/4 XAML then?) In reality this was like when .NET was announced and they over-hyped it as using the "same" language (ie VB6) when the reality is that sensible people saw what was happening and learnt C#. Javascript, HTML5 and CSS3 are now above Silverlight 5 on my learning curve - they're the C# to Silverlight's VB6 :-(

    The "single line change" to a Silverlight app to run under Windows 8 (in the "Windows 7" variation on a DOS box?) was classic Microsoft smoke and mirrors - a very simple app. Show me the same thing with an Enterprise app using PRISM, MEF etc and I'll be a lot happier.

    I found the Twitterstream reaction to "Blend will support HTML 5" incredibly naive. The tool has very low take-up for very good reason. It's a clunky mess. I've worked on many Silverlight projects in different companies and despite being continually nagged by Microsoft to learn the tool most devs use it just for quick re-templating and animations in a "cut and paste the XAML" fashion for Visual Studio. The idea that this tool will magically transform itself into a wonderful HTML5/CSS3 IDE overnight when so many much more targeted tools are available for those technologies are frankly laughable.

    ReplyDelete
  9. @Richard,

    What is the ability to move device to device in Silverlight today? I only know of moving seamlessly from Windows to Mac, and I didn't see anything that would change that. It looks like an even more integrated experience between the Windows 8 and Windows Phone but that was too short a demo to tell. I don't lose cross browser, I keep my same skills to build for the new Metro experience. What have I lost?

    I do completely agree we have to agree on technology. We know that Silverlight is alive and well because it will be 100% compatible, nothing gets taken away, and we have a new version coming out later this year. So I don't see how we LOSE anything there.

    As for building in the future, right now saying WCF/etc. is changed is speculation - we need to grab the bits and look more closely before making a call there, no?

    @dmitry - I completely agree. If you want more of the same, code in the same and you'll get it. If you want to take advantage of the newer, faster, then program to the newer faster. It's a trade-off that makes sense to me.

    @ian - as always I appreciate your insights as well. The main thing I saw about battery life was the new mode that idles lower power.

    I didn't see anything that indicated that HTML5/CSS was the key choice or preferred. I saw the same experience available for C#, VB, and C++. There wasn't any indication going with any of these would limit you in any way.

    I've had a completely different experience with Blend. I don't see many developers taking up Blend, but the designers and XAML integrators I know who learn the tool absolutely love it and I've heard them saying for YEARS they would LOVE a tool like Blend that generated HTML5 - and it seems like they've got it.

    Finally - I agree we likely won't be flipping a switch to recompile an enterprise Silverlight application. The fact that they spoke specifically to Silverlight and called out the example tells me it's not being dismissed, that they've heard concerns, and that they are taking steps to ease that process as much as possible. Taking those steps and achieving them are two different things, I agree, only time will tell.

    ReplyDelete
  10. Jeremy, any idea on what are some nice big touch monitors that are Windows 8 compatible? Will anything multi-touch do? Any experience with these monitors?

    ReplyDelete