So where do we go from here?

Well, Microsoft has finally unveiled what is commonly known as Windows 8. If you have been learning Kung Fu in a secret Tibetan monastery or yak fishing off the coast of Antarctica, you may have missed the announcements this week and the blizzard of opinion and talking heads pronouncements. To some it’s the death knell of Windows, to others it’s a brave and bold move. Whatever your take, one thing is clear, the Metro UI represents a dramatic step forward for Windows applications.

First of all, let me make it clear that the Metro UI is not the only UI that you can use in Windows. It’s a great choice for Tablets, and if you’ve used a Windows Phone, you’ll know just how useful it really is (I love my Live Tiles), but if you want to use a non touch UI you still have the Aero interface to provide that familiar gooey goodness. What the new version of Windows represents is a step out to other processors and technologies; a move beyond Wintel, and this has to be good news for all concerned. As a developer, the exciting thing is that I should be able to write software that targets tablets, phones and PCs all from the same environment.

Let me clear something else up. Despite what you may think you have heard, Microsoft is not abandoning all other languages and technologies in favour of HTML 5 and JavaScript. Yes, this represents an important plank in Microsoft’s strategy to write once run-anywhere, and have applications run in the cloud. I was one heck of an HTML 5 sceptic, but having looked into HTML 5 and WCF vNext, I can’t believe just how good developing for it can be in the MS stack – I will be writing more on this in the future; take it from me, you’re going to love it. The thing is, though, while this is great in webby, cloudy environments, HTML apps just don’t mut the custard in desktop environments, or in applications where you really don’t want your IP exposed. This is why I’m excited about the future of technologies like .NET, Silverlight, WPF and C++. Microsoft has made a huge investment in .NET and XAML, and it seems incredibly unlikely that they will alienate virtually their entire developer ecosystem – and rumour has it that Win C++ is going to have a big impact in Windows 8.

Indeed, Microsoft’s biggest problem still seems to be that it isn’t communicating this information effectively. They get so excited about all the new stuff that’s coming, they don’t mention the existing stuff; after all, why should they? They assume that people realise that they aren’t cutting their own noses off, and forget that people remember the history of failed tech. Let me assure you, from conversations I’ve had, and from talking to those in the know, your technological investment is safe. Your apps may look different in the future, and respond to different inputs, so you may need to learn some new APIs, but that should excite you, not frighten you.

Finally, let me quote the great Jeremiah Morrill:

“Anyways, why is everyone so surprised about the annoucement?  People have been saying this was going to be a feature of Win8 for at least 5 or 6 months 😉

I think it’s important to remember what Ballmer said in his Swiss keynote.  That Win8 applications can be written using, C++, C# and JS.  He was very careful to NOT mention a framework, only languages.  Now there are is a lot of “Will it run Silverlight?” or “Will it run WPF?”.  Microsoft will respond with “Yeah, its Windows”.  This is true.  They did demo Win8 also running “traditional” applications.

I think we should be asking:  What technologies can I use to make these new immersive Win8 applications?

The other question I would ask, mostly to devs is, “Does this new thing perform better than Silverlight/WPF at making fluid user interfaces?”  If so, besides backwards compatibility, what advantages does Silverlight/WPF have over this new thing?  Will Silverlight (or WPF) still be an island of richness, or an island of relative choppiness and CPU tax?

One thing I can say for certain, is XAML is part of Microsoft DNA.  They have promised us our investment in XAML is safe, over and over.  What I’m not certain about is, what is our investment defined as?  Knowledge/familiarity or our actual code?  Will there be a solid upgrade path, or will we be left dumping old code?  My advice is we should all be patient until Sept.  There’s just too many questions that cannot be answered with a Win8 demo that wasn’t geared for devs.”

Possibly the wisest words you’ll hear on the subject.

46 thoughts on “So where do we go from here?

  1. Hi Pete,

    I’m with you regarding SL / WPF in Win8, lots of panic and hot air out there.

    Anyway, I am interested to know what MS will be offering for HTML5/JS development. I have done a small amount of JavaScript in the past, but typically switch to other tools, Eclipse, FireFox + FireBug, for JS development. From a brief bit of googling, all I have found about Visual Studio HTML5 support is Intellisense.

    I really, *really* dislike the Microsoft Ajax Library (or ASP.NET AJAX client-side library, or whatever it is called).

    Anyhow, would be interested to know what MS brings to HTML5.

    Colin E.

    1. peteohanlon

      Thanks Colin. Actually MS has done some pretty good stuff in regards to this. Would an article on the tooling and next gen WCF help?

  2. johnny

    My big problem with JS in the MS Stack is, that the tooling is really non existant. I mean, ever written any html5 js app, that is not full of hacks and inconsistences? Js doesn’t have those basic important things like namespaces/dependency tracking/file including, you know, required for large applications. Google has it’s answer called Google Closure Tools. My hope for .Net lies in Script# or Websharper(I really like hacking code out of nowhere with js, but for something real, I prefer .Net)

  3. Bill Woodruff

    Thanks, Pete, a most carefully crafted “weather-report” on the strange cloud formations in the skies above Redmond.

    At this point, I wonder what my investment in WinForms is worth in the future, or now 🙂

    Look forward to your future commentary in this period leading up to BUILD !

    best, Bill

    1. peteohanlon

      Bill – your investment should be safe. They aren’t going to drop WinForms. It’s a mature technology, so I would expect that there won’t be much innovation there but your skills won’t be invalidated.

  4. Hans Dietrich

    Hi Pete,

    You make some good points. Except the one about “Microsoft’s biggest problem”. That is, and has been for a few years, Steve Ballmer. To the extent that he is involved in the critical decisions concerning Weight, well, can you say “Vista 2”?

  5. “Would an article on the tooling and next gen WCF help?”, it would.

    Like any sensible developer I am looking quite seriously at HTML5 / JavaScript. The technology has potential, with GPU accelerated CSS3 becoming a serious threat to XAML / Storyboards. However there is still this big gapping hole with the lack of language / API maturity and tooling.

    For HTML5 to become a viable alternative it needs a sophisticated layer ontop of it (As Flex is to Flash). Google Closure + Closure Compiler has gone a long way to create such a layer, but lacks tooling.

    So, will MS add such a layer? will it be better than their previous (and horrific!) attempt to turn JavaScript into .NET?

    If they do produce such a thing, it will be a Silverlight + Flex killer.

    However, my hunch is that it will be nothing so ambitious. Leaving HTML5 a suitable technology for moderately interactive applications, but not for complex LOB.

    (And Bill, yes, WinForms is very safe!)

    Colin E.

    1. peteohanlon

      Sorry Colin. For some reason, despite you having posted many comments, bloody WordPress decided your post was spam. Sorry about that.

  6. I’m glad to finally see some good blog posts on why the Windows sky isn’t falling. Still, the concern over the abandonment of “classic” Windows by developers is legitimate. After all, that’s EXACTLY what Microsoft did to Windows Mobile developers. Of course, WM was a shrinking fraction of the mobile ecosystem and the entire mobile ecosystem is a fraction of the desktop ecosystem. Which is why the Windows sky isn’t falling… with Windows 8. But don’t forget history. Microsoft will abandon a core of users and developers as soon as it no longer makes financial sense.

    Also, Metro UI is ugly. I can’t state that enough. I will admit that some of the ideas about eliminating unnecessary chrome and “simplifying” the UI are good ideas. The chrome in Aero can get distracting at times. But Aero is still a vastly superior UI. Metro has an edge on usability in phone and tablet markets (compared to Aero), but Aero slaughters Metro in the desktop space. And make no mistake, Microsoft is treating Aero as a second class citizen in Windows 8. I think Aero and Metro should be peers. I may not love Metro, but I understand the need for it and the need to target tablets. But desktop users should never, ever, feel like The One True Desktop OS is treating the desktop as a second class citizen.

    1. So agree with what your comment.

      First and foremost, as one commenter said on another forum: Casual programmers all are taking a “chillax” (chill out) approach to this situation. They say: “Don’t worry MS is not that short sighted to have forgotten their most valuable (.net) programmers, they have a plan, I’ve seen the footprints, it’s all good and sweet as heaven. The rivers flow north to south and east to west and there’s plenty of food for everyone… just don’t eat from the forbidden fruit (pun intended)…blah blah blah…”

      But for us in the line of business, that’s not even enough. No official announcement, means no support at all. As one guy said, should I lay 3 months in vile waiting to see if this is all real (the fact that WPF and Silverlight are in for good) or should I start recoding in C++ and/or Objective C so I can target Android and iPhone/iPad. Should I jump the gun and change all my client side code to HTML5 and target the full audience (iPad, Win8, Android, etc.) But, wouldn’t that break my site for the 50+% IE6 users and all current WP7 users. Wait. MS said it’s HTML5 on the client, not on the server, like Vista’s Gadget, right?! Get the picture.

      The problem’s not Metro UI, or classic mode being second class in Win 8, but rather the vagueness of the announcement. Seems they don’t have all the pieces ready and are just giving sound bites so people expect for more. In the end, it hurts all sides. It hurts not to be able to plan. Of course, Win8 is 1.5 years away, so who’d care. Exactly. That’s the attitude we MS side programmers must have. We shouldn’t care about Win8 until September, and then we shouldn’t care about Win8 until 2012. Else we risk investing in something that might change, just as it is going to in September. Who know, in January they will tell us that we must stop WinForms programming because it won’t be touch oriented, or that we should not use VisualBasic6 components ’cause those will not run on ARM.

      So my advice: turn your radar to the forbidden fruit and the forbidden humanoid. They aren’t shy of what they want and how to get there. The other side, we’ll that’s ridden with riddles and knights and knaves and we don’t know who’s telling the truth and who’s lying. If at any time, they change their mind, no problem, we can just catch up where they left.

  7. RAK5

    ” and it seems incredibly unlikely that they will alienate virtually their entire developer ecosystem ”

    With MS you never know, they have done it before and I’m sure they will do it again sometime.

    1. RAK5 :
      ” and it seems incredibly unlikely that they will alienate virtually their entire developer ecosystem ”
      With MS you never know, they have done it before and I’m sure they will do it again sometime.

      They could never afford to do that. With WinMobile their user base was dead. They had to totally reinvent themselves with WinPhone 7. The desktop is different. OS X may have made inroads, but no where near enough. If they did drop all support (which the demo appeared to shows they haven’t) then they would level the entire playing field and eliminate every single advantage they have. Even Microsoft- even Bonkers Balmer, isn’t stupid enough to do that!

      Also, has everyone forgotten Windows Gadgets? They also use HTML. This isn’t the first time that MS has toyed with HTML inside Windows, although it may be the most significant. What I would like to see, and kind of expect, is that applications will actually make gadgets for the Metro UI, and then launch full Windows apps in Aero when you hit the button, much like Gadgets can talk to Windows today.

      1. CGC

        Microsoft alienated the VB6 developer base – the largest in history – they will do it agin.
        I have looked at the Windows 8 demo video.
        I think that MS management has lost the plot.
        They are not leading anymore and don’t know how to follow.
        Anyone who thinks the future of devopment is a scripting language (or worse, 2 scripting languages which have to work together – but don’t) should look fo an industry where they can contribute – cos it aint software.

  8. Speaking from a developer perspective, someone who has pushed out a few apps already. I was floored when they said js and html5 will be the core dev ground for win 8. I was confused cause I thought I could use VS and Blend with SL and XAML to develop apps for Win 8. I really don’t know where this is going but I will be pissed if they go a complete different route. Logically, I should be able to develop an app for WP7 and if I choose, scale that out to win 8 tablet form.

    1. I think XAML and the development tools (Blend) are the way to go. Learn it now, because the same tools will be used to build HTML5 apps.

  9. JohnC

    So in other words we should feel free to question Microsoft’s commitment to wpf and silverlight going forward and you presented no points to think otherwise and in fact quoted someone who also doubts the future of them.

    1. peteohanlon

      If you choose to be pessimistic John, then feel free. I, on the other hand, am fairly confident that they aren’t going to upset a whole slew of developers. Even if I am not doing WPF in five years time, I am confident I will still be doing .NET.

      1. JohnC

        I’m just trying to determine if you have any actual new or inside information here or are just putting on your rose coloured glasses and writing a personal opinion piece.

      2. Hans Dietrich

        I agree. There have been a lot of misleading comments coming from the lower echelons of Microsoft in the past (like the C# guy who said there would never be default parameters). The only reasonable thing to do is keep an eye on the W8 betas.

        BTW Pete: When will you be released from the NDAs on W8 stuff?

  10. wammabe

    I’ve seen lots of other posts about Windows 8 that make me face-palm really hard. Some people seem to look at a picture of tiles in Windows and immediately post several paragraphs on how windows will fail because of this. Anyways, thanks for the post. : )

  11. Bob

    Why would we be so naïve as to believe anything that MS tells us will be?

    They are big on pie-in-the-sky promises, but in the end – the only thing that really matters is what gets RTM’d…

  12. Jim Lonero

    Good encouraging article Pete. Why HTML5 and Javascript? They are faster at producing an application than C#/VB/XAML, since the latter items need to be compiled. Also, since W8 is expected to run on mobile devices, there will be more languages available than Apple’s allowances. (I would rather develop in C# than in Objective-C.) And, I suspect that most mobile devices are fast enough to run scripts. But, I do not think that Microsoft will place a JIT on the mobile devices. If they do, then the compiled output from their .NET languages is in script form and the JITter will compile it when it is run.

    The only way for Windows 8 to take off is for mobile device makers to use it and developers to code (useful) applications for it. Since Apple’s mobile OS is only for the IPhone and IPad, there is only one platform to develop for and life is easy for an Apple developer. For W8, there may be many hardware devices from different manufacturers with different capabilities. Developing a similar application for all the various platforms could be difficult. There may need to be a standards group that standardizes the interfaces to similar (hardware) capabilities among the various products. Just my thoughts.

  13. Frank

    I’m REALLY hoping in a way to use Blend, XAML +C# (you know,Silverlight) to build HTML5 applications (or games/ simple animations) for WEB.
    The same application then, with minor changes can be used for WP7 too in original mode.

    If Microsoft don’t do this, i see big problems in the dev community and competitors will get up many escaping developers.

  14. Colin S

    HTML5 and Javascript alone are not currently suited to writing complex applications. The performance of Javascript may be OK, but there are other considerations such as tooling, security and intellectual property protection for instance.

    Back in the old days VB3 (an interpreted language) was often used to create the User Interface view and then called into ActiveX DLLs written in C++ that did the heavy lifting.

    In the new Windows 8 programming model there is a strong possibility that Javascript can potentially call into a DLL written in native (or possibly managed) code.

    If something along these lines comes to fruition, then it will be up to the developer how much functionality they write in Javascript and how much they hand off to the native code DLL behind the scenes.

    This is similar to the ASP.NET model where the Javascript running in the browser makes AJAX calls back to the Web Server. This might even lead to the possibility of reusing code between Windows 8 “desktop” applications and web applications.

  15. Definitely there are uncertainties of the new Windows 8 UI. I have been working on enterprise application using C# .NET. I can see consumers would like the tile look, especially tiles work well on tablet. For enterprise application users, my guess is they will either stick with Windows XP, or 7 for a good time before switching to 8. Even going into Win 8, most users in the enterprise domain would probably want to stick with the traditional WinForm to be productive. Just like how Ribbon first came out in MS Office. Most new users like it, but most existing users reluctant to change because they afraid of losing productivity. I will have to see what inside Win 8 at BUILD conference to judge if this is wise move or not.

  16. Hi All,

    I have one major concern, which I think will be there with every .NET developer who carries just 4-5 years of web development experience.
    The concern is “Will still there be server side scripting languages like ASP.net/MVC (C# or VB) in Win8 for interaction with HTML/JS/CSS user interface”.
    In simple I am concerned about the following sketch. Will this flow be there in Win8 for developing web apps irrespective of which Win8 supported device it runs on.

    HTML/JS/CSS3 ASP.net/MVC(C# or VB)/WCF SQL Server/Oracle
    —-Request—> —-Request—>
    (UI Layer) (Logic Layer) (Data Layer)

    If it’s there then I need to learn HTML 5 and CSS3 with bit of advance Java Scripting.
    Please do reply to clear my doubt, I am concerned and that’s too very.

    1. peteohanlon

      There’s still going to be a demand for server side code in managed languages such as C#/VB.NET. Have a look into what’s coming with WCF vNext. It’s designed to play nicely with HTML 5 apps.

  17. Sam Hobbs

    As for “Microsoft’s biggest problem” being “it isn’t communicating this information effectively” I think there is a big difference in presentation of information between marketing and developers. Marketing people tend to be vague and misleading. It seems likely that the developers that are more likely to be clear and relevant to the concerns of developers are not yet allowed to say anything.

  18. Pingback: Top Posts — WordPress.com

  19. OSEI-AKOTO Emmanuel

    Microsoft has been our backbone for the years. Lets give Bill and the team benefit of the doubt. I hope they have something for Devs.

  20. The Fish

    CGC :
    Microsoft alienated the VB6 developer base – the largest in history – they will do it agin.
    I have looked at the Windows 8 demo video.
    I think that MS management has lost the plot.
    They are not leading anymore and don’t know how to follow.
    Anyone who thinks the future of devopment is a scripting language (or worse, 2 scripting languages which have to work together – but don’t) should look fo an industry where they can contribute – cos it aint software.

    CGC :
    Microsoft alienated the VB6 developer base – the largest in history – they will do it agin.
    I have looked at the Windows 8 demo video.
    I think that MS management has lost the plot.
    They are not leading anymore and don’t know how to follow.
    Anyone who thinks the future of devopment is a scripting language (or worse, 2 scripting languages which have to work together – but don’t) should look fo an industry where they can contribute – cos it aint software.

    Sorry but I have to call BS on this. I have been a professional VB developer for 15+ years. Microsoft provided upgrade tools to convert VB6 code to VB.NET and I have used them on some fairly large projects with great success. Microsoft didn’t abandon VB developers with .NET (despite all the F.U.D at that time). Much on the contrary they took VB along into the .NET world as a first class language. I am still programming in VB.

    1. The Fish

      Sorry but I have to call BS on this. I have been a professional VB developer for 15+ years. Microsoft provided upgrade tools to convert VB6 code to VB.NET and I have used them on some fairly large projects with great success. Microsoft didn’t abandon VB developers with .NET (despite all the F.U.D at that time). Much on the contrary they took VB along into the .NET world as a first class language. I am still programming in VB.

      Oh, and furthermore you only needed to even bother converting your VB6 code to VB.NET if you cared to keep your code current and wanted to move forward in .NET. You can still write VB6 apps today and they will run flawlessly on the 64-bit editions of Windows 7 and will even look like native apps. Oh and I bet those VB6 apps from 1996 will very likely run on Windows 8 too.

  21. The Fish

    I really have no idea why everyone was freaking out over the Windows 8 video. When people started saying “it’s the end of .NET” I was seriously wondering how they arrived at that.

    HTML5 is no more a .NET replacement then XHTML or even HTML4. That’s like saying you can’t have pizza and beer. These two things go together – they are far from mutually exclusive. Do we know nothing about multi-tied applications? HTML/CSS/JavaScript is *user interface* languages. They are not server-side programming languages. We SHOULD BE EXCITED about the fact that our favorite platform is going to be a first class HTML5 client.

    This isn’t the first time Microsoft has integrated web technologies directly into the UI of the OS. Anyone remember ActiveDesktop? For 1999 that was pretty cool and I wrote some nifty apps for it. My boss at the time loved his refreshable “live wallpaper” that showed daily sales statistics. Microsoft is simply continuing an already established strategy and is making the OS even more web-connected so that Windows is simply the *best* OS for any application weather web-based or otherwise.

  22. Sam Hobbs

    I listened to the Windows 8 video carefully. It says that there is a new platform based on HTML 5 and JavaScript. That was about one second of the entire video. It does not say that the all of Windows 8 will only use HTML 5 and JavaScript; it just says one platform. It also says that that new platform will exist along side Windows 8 applications. It does not say if Windows 8 will have anything more. The door is wide open to other possibilities.

    There will be major announcements about Mono and related projects in July at the Monospace conference (monospace.us) and I speculate that Microsoft’s September annoucement is dependent on what is said in the Monospace conference. I think Microsoft has left the door wide open for the possibility of drastic changes. I am probably wrong about that but it is possible. Microsoft supposedly needs to ensure the independence of Mono and such, and that is a possible partial explanation of why they are saying so little.

  23. Pingback: Immersive – WinC++ and System Language Runtime (SLR) « Tales from a Trading Desk

  24. The Fish

    JohnC :

    The Fish :
    I really have no idea why everyone was freaking out over the Windows 8 video.

    Perhaps you are not aware of the larger issues that precede it.

    Perhaps not. Can you elaborate or point me at some URLs I can read?

    What I got from this the Windows 8 video is that it will have two primary UI’s which will be pretty tightly integrated. One will be the “traditional” (for lack of a better word) desktop-style “explorer” UI we are all familiar with and the other will be a new touch-centric tile-based UI similar to Windows Phone. I expect that the tile-based UI will be primarily used on tablets and the desktop-style interface will be largely used by desktop/office workers who will very likely ignore the tile-based interface for the most part. I don’t expect to be running VisualStudio in a tile.

    It is expected that Windows 8 will also come in an ARM version that will run on tablets and it is unclear exactly how the ARM version will run (or if it will run) existing x86 desktop applications although if they are .NET applications I suspect there will be no problem.

    I really fail to see how any of this sounds the death knoll for C# or .NET or anything else so dramatic.

Leave a comment