I know that I struck a nerve with a comment about Windows Phone apps, Windows 8, and Microsoft Windows President Steven Sinofsky. I wanted to explore this topic further on two fronts. First of course is the entire Windows Phone app question, and then a little on the Start menu. And I’ll include some general SteveSi related comments along the way.
There are basically three ways that Windows 8 could have supported Windows Phone 7.x apps directly. In increasing order of desirability they are:
1) Packaged a WP7.x emulator in Windows 8, basically allowing apps to run but keeping them completely isolated from Windows 8. Just say no and leave it at that.
2) Created a parallel WP7.x stack and allowed the Windows Store to carry those applications. Handled some of the more common Windows 8 Contracts via system provided defaults. Perhaps even have extended the WP7.x programming model, in conjunction with the WP team, to support the newer Windows 8 concepts (again, like contracts).
3) Started with the Windows Phone 7.0 app model as the basis for the Windows 8 app model. Evolve it substantially, but in an upward compatible fashion.
We already ruled out #1, so let’s address #3. While there are over 100K apps now available for WP7.x, that wasn’t the case at the start of the Windows 8 project. Basically when decisions about Windows 8 were being made there were NO WP7 apps. Moreover, the overall app plat approach taken by WP was in conflict with a couple of the key beliefs driving the Windows 8 app platform.
Windows Phone 7 was done under the most severe time pressure I’ve ever seen for a project of its size. To ship on schedule it had to rely on quite a few pre-existing pieces of technology. For example, the .NET Compact Framework, Silverlight, Visual Studio and Expression Blend had to be used with at most modest changes. Likewise many other parts of the product were taken from earlier Windows Mobile 7, XNA, Zune, and other efforts. An overall app model was defined and implemented around and incorporating all these pieces. I think the team did an outstanding job.
Charlie Kindel (who ran the Windows Phone app platform Program Management team at the time) has commented via Twitter that Steven Sinofsky chose to bet against Windows Phone. I think that is certainly one of the answers. If you evaluate Sinofsky’s bet against two criteria you get radically different views of if he was right or wrong. Based on the size of the app library he was wrong. Based on the number of Windows Phones sold he was right. But why bet against Windows Phone rather than build on their work?
You may recall from other sources that Steven Sinofsky has never been known to be a .NET fan. While others within Microsoft, and even senior people in the (pre-Windows 8) Windows organization, wanted to move to an entirely .NET app model for Windows Steven did not. He (and others fyi) wanted to re-engage the native code C++ developers that Microsoft had been neglecting. And they wanted to co-opt the huge base of web developers to create apps for the Windows platform. Well, what had the Windows Phone guys done? They’d implemented a .NET only app platform. Could the Windows Phone app platform evolve to address the native and web developers? Sure. But with no existing library of apps and a desire not to have .NET-centric platform at the core of Windows Sinofsky apparently felt pretty comfortable ignoring the Windows Phone team’s work.
Of course deciding not to the base the Windows 8 app model on Windows Phone could just be a case of NIH, and there was probably a little of that at play. But at the same time I think the notion of a true reboot of Windows was growing. And evolving the Windows 8 app model from the Windows Phone 7.x app model, particularly in a way that allowed Windows Phone 7.x apps to run unchanged, meant bringing along a lot of legacy that didn’t belong in what was supposed to be a nice clean new app model.
Which brings me to option #2. Why not have included the ability to run Windows Phone 7.x apps on Windows 8 as a parallel stack? This seems easy from a technology standpoint as both the CLR and Silverlight can run on the platform. Most of the work would have been in porting the WP7.x-specific librares. And deciding how to integrate with Windows 8 concepts that were foreign to WP7.x like Contracts. And provide a virtual Back “button”. Its use could have been restricted in such ways that it wouldn’t really be an alternative to the new Windows Runtime app model. You’d get an instant large library of apps, most of which felt alien running on a Windows 8 system.
Take the early days of the iPad, where most apps were actually iPhone apps that the iPad would run at 2x size. In that case, even with an identical app model, many apps really felt ill-suited for use on a tablet. The benefit of sharing the app model came later, when many (perhaps most) apps were able to have a single executable that adapted its experience for the iPhone or iPad. Or take Android tablets, where they’ve had trouble gaining traction at least partially because they had so few apps that really were tablet-aware. While it may be changing now, the first generations of Android-based tablets suffered mightily because all they had to run on them were smartphone apps. And again, that is with a shared app model. So it is reasonable to question how well WP 7.x apps, with a different app model, user model, etc. would be accepted on a Windows 8 system.
In my earlier post today I took the position that having the large library of suboptimal apps, basically WP 7.x apps running on Windows 8, would have significantly helped the platform. I might be right, I might not. Having the large library would have been a marketing message coup that helped the Windows 8/RT tablet business get off to a quick start. But, if it turned into another excuse for developers to delay writing to the new (“Windows Store”) app platform then it would have hurt the Windows 8/RT effort more than it would help. And then there is that pesky problem of not wanting to create this new legacy that you could almost never remove from Windows.
So was this a well reasoned decision by Sinofsky or one driven by arrogance? It is both. I just layed out an argument that says Steven made the right choice. But its also true that he bet against another of the company’s key efforts, drove away a number of his senior people, and believed he knew better than the Developer Division what developers wanted. We’ll soon know if he was right or wrong. If he was right, then Windows has a nice shiny new app model that will live on for many years and evolutions, including ones in which the legacy Win32 app model dissapears completely.
You can extend this thinking to the controversy around removing the Start menu. The Start menu, and indeed the entire desktop, are legacies that will have to be removed from Windows over time. While the desktop itself is probably with us for a couple of additional major Windows releases (though there may be truly desktop-free editions sooner than that) the start menu was something that Steven has bet he could get away with not bringing forward into Windows 8. By doing so he forces users to start living in the new usage paradigm rather than totally avoiding it. Yes you can still set up a system to avoid leaving the desktop most of the time. But you can’t avoid the new world completely. In doing so he sets people up to eventually accept systems without the desktop at all (or at least Windows RT systems for personal use even if they need the desktop at work, for example).
Is Sinofsky’s unwavering stance on dropping the Start menu arrogant? Perhaps. Steven is alienating a lot of Windows users, but they are primarily not the users he’s expecting to adopt Windows 8 anyway. He can worry about how to bring those people on board as part of a “Windows 9” two or three years down the road.
For me the most interesting part of the decisions that Sinofsky has been making is that they often favor a long term strategic direction over short term more pragmatic ways of enhancing the success of Windows 8. This flies in the face of his history, which is to focus on the current release and its requirements rather than the future (because, for example, you really can’t predict what the requirements for future releases will be). If he’d kept an option for the Start menu Windows 8 would be a far less controversial release. If he’d included a way to run Windows Phone 7.5 apps on Windows 8 then a big chunk of the developer community wouldn’t feel like they’re being abandoned. But he’d also have tied his hands at moving the reimagined Windows forward in ways that Apple and Google have made absolutely critical.
So is Steven Sinofsky arrogant? I suspect that anyone who has tried to partner with him or his organization over the years thinks so. But his decisions aren’t stupid ones. And he’s been right more often than he’s been wrong. While I worry about it, I think he’ll be proven right on the decision not to support Windows Phone 7.x apps. At least if developers don’t take too long to jump on the Windows Store app bandwagon. The Start menu decision? That is the one that still could prove his, and Windows 8’s, undoing. I don’t miss the Start menu, but many desktop power users (and analysts who talk to them) think its absense is the kiss of death. In a few months we’ll know where on the spectrum, from brilliant move to the horrid mistake, the decision really was.
While I could care less about the Phone issue I do think there should have been the option of having a Start menu, perhaps only in Enterprise versions of the OS. I totally get the desire on Microsoft’s part to pimp and encourage WinRT development (and I am thrilled by their rediscovering native code as part of this) but from the perspective of the desktop user using keyboard and mouse removing the Start menu feels very Apple-ish in the sense that while its bold and brave, it’s going to generate an awful lot of hot air in the short term. That said I don’t think change adverse users will go elsewhere, other than maybe to cling to their Windows 7 branch for longer.
And there is nothing wrong with clinging to Windows 7 for quite some time. It’s what Microsoft expects of enterprises! They have just finished, or are just finishing, their migration to Windows 7 and they usually skip a release before going through that expense again.
My personal expectation is that many enterprises will be hybrid Windows 7/8 shops. They will retain Windows 7 for the bulk of their operation and approve the use of Windows 8 for specific use cases (e.g., where tablets are required, or where security concerns are paramount such as employees traveling to China).
> The Start menu, and indeed the entire desktop, are legacies that will have to be removed from Windows over time
So when do we get non-desktop version of Visual Studio?
It will be a while. First we need another major rev of Windows to address MoSH/WinRT limitations. A non-desktop version of Visual Studio might come at the same time, or might come the release after that (since doing the two things in parallel is challenging). So, 3-5 years seems like a good window. In the meantime I suspect that DevDiv will release some point non-desktop tools.
Pingback: A glimpse into the internal battles that set the future of Windows and .NET « Tim Anderson's ITWriting
Yes, it is annoying that I cannot simply drag-and-drop my code from WP to Windows 8 – but I try to think about the alternatives.
I am a Windows Phone developer from day one and I can say that over the two years me working on the platform – I felt it was not going anywhere from a developer standpoint. I loved working with the mark-up language (called Silverlight). I don’t care about the implementation but that I can easily design apps. So, WP7 at that time felt like good fit. At that time already, it was known that Silverlight was on the downturn:
– as a Browser-addon: Could not compete with Flash. The Flash market is going away more and more with HTML5 and Apps.
– out-of-browser: Look at MetroTwit, one of the best showcases of a good Silverlight app. But performance wise, it is still really bad.
Even today (“Mango”), there is no support for Native Code (atleast not for the majority of devs) although the underlying platform (WinCE) supports it. Saying Native Code is just bad for security reasons is a insult against every native developer, expecially, if all Applications are certified anyway. Biggest mistake in WP7 imho (porting to WP7 was basically a rewrite).
Don’t get me wrong, I like the Idea of having a managed Runtime with a rich library set – there is NO way to totally abandon Native Code (efficient and fast for games and apps that do more than just show lists). There is enough place for native and managed to live side by side. Use the tools that make most sense. Don’t make everyting to work with the tool.
If you have ever used a Windows Phone you can agree that there was a substantial difference (7.5 didn’t change that) between first party apps and 3rd Party apps. The reason for this is not that most app devs are stupid or poor developers but the Windows Phone team uses a completly different UI stack than what 3rd Party devs get.
We also know that “Silverlight” is only maintained mostly by the WP group – a very small group that cannot fix all those problems. The underlying problems are the same as in WPF – it was broken and the effort to clean the mess is enormous.
Windows 8 with WinRT has a new UI platform that has fixed some of the major performance issues of WPF and Silverlight (in a way, it is Silverlight 6). Yes, the UI stack has a reduced featureset but that can come resolved over time. In my opinion, this is the best UI stack ever made by Microsoft. If you are a Silverlight developer, the new XAML will mostly feel like Silverlight (ok, maybe faster 😉 ). For all these reasons, I believe that new WinRT XAML is the better technology and I think the decision of S.Sinofsky are for the better (on the long-term).
The only problem that baffels me is, why they did not provide the WinRT XAML platform to Windows Phone 8 and have Silverlight as a compatibilty layer for existing apps. This would have given a signal to Windows developers that once they port to WinRT, there dev story would be much more compelling (basically copy paste the application logic, bind to different styles, etc. and you are done). That’s the way it is on iOS and has proven to be attractive.
In a way, Microsoft did the worst they could do with Windows Phone 8. They had these options:
– Build WP8 on WinCE (WinCE supports dual-cores, NFC, all things they would need) and have a upgrade for ALL current customers. Keep Silverlight/XNA for one another year until they can fully port to the Win8 codebase.
– Build WP8 on Win8 and the new WinRT APIs; have Silverlight as a fallback. No updates for existing WP7 users but the dev story would inline with “big Windows”.
– What they did: Build WP8 on Win8 core (with some WinRT APIs) but using Silverlight. No updates for existing users AND broken dev story. The WP Team must have had substantial efforts to port the Silverlight stack on the Windows 8 core.
I am stil baffeld that they chose option 3. Can’t get my head around it.
Ok, that’s it for the Friday-rant.
Everybody have a nice weekend!
Jens
(sorry for the mistakes – english is not my native language)
I’m a dev with VC++/Web/.Net experience. From these I can say I prefer .Net because it has the best tools, best language – C#, hence the best productivity. And now with Xaml we can really build some nice rich interfaces. I’m having in fact a big deal of fun working with these compared to the Html, Js stuff.
From my point of view SteveSi took a bet he’s about to lose, it was in fact a bet against the .net developers. He doesn’t need use for the shiny new Win8, he has all those hordes of Html/Js devs who will jump ship and start delivering millions of great apps. Or maybe not… They won’ learn a proprietary framework – WinJS and all those platform specific things. And it seems the Html5 apps aren’t so great after all, it’s an overblown hype. I mean using an old tech for websites in creating APPS only because it’s the lowest denominator it will give the lowest user experience on a device. That WinJs was a waste of time, they should have ported and optimize Silverlight or make WinRt to Silverlight 4/5 parity. One big advantage MS had in a new smartphone/tablet market were the millions of .net developers which they chose to ignore and if they continue to do it they will remain the 3rd player for a long time.
Well they sure didn’t ignore the .NET developers in the smartphone market! The good news is that got them 100,000 apps. The bad news is that they had to fight tooth and nail to get the RIGHT apps, and they still don’t have them. Folks like Pandora are obviously not amused by .NET and neither are the key game developers. So a pure .NET gamble is likely as risky as the bet SteveSi made. PLUS, the place where .NET has really shined is on the server not on the client and this was a client decision. What it means for the server in the long run is unknown.
It’s very hard to get a right perspective on this. Each outcome, it will be a succes, it will not, it will but not in short term, can be argued. As a developer living off the microsoft platform, it’s critical, but not in the short term.
Is around 2000 apps in the store a problem? Is there no interest from app developers?
Why did the Build conference sold out in 45 minutes? The last time it was in Seattle (then PDC) you could buy tickets weeks after the opening of the registration page.
Or where there so little tickets available?
And it’s not very hard to recompile your Windows 7 Phone apps to Windows 8, you could even keep the same source files by conditional compilation.
I think part of the problem is that the WP8 sdk is still not available for everyone, and a lot of the Windows 8 app builders to be, are WP7 app builders.
The traditional Windows application builder suffer from the wait-and-see approach, which you described in your last blog.
Marcel
About the arrogance of Steve’s decisions? No I don’t think the decisions are. There where some hard choices to make. As a person he may be, but I think it’s very hard in his position to be not seen as arrogant.
Steven is well known for pushing away people away if they don’t totally agree with him.
SteveSi is the closest thing to Steve Jobs that Microsoft has today. He’s got a track record that makes it very hard to challenge him. Arguably he took a Windows team that blew it with Vista and created a success with them for Windows 7. And that is on top of the way he pushed, and largely won, with a serious change in the Office UI. So doing it his way rather than asking the user what they want seems to have worked for him.
An other similarity he has with Jobs is that he seems to think software development should be hard to keep the crap applications away. While DevDiv spent a lot of effort making it easier to develop applications (.Net, Windows Forms) they have been pushed to make it harder again. The move to C++ will make the developers who think it should be hard happy. I can see it holding back the pure number of applications but perhaps it will increase the quality of the ones that do make it into the store. Time will tell.
I’m fine with WP7 apps not running OOTB on Windows 8. Well I can live with it. The problem I see is that for the most part it takes complete rewrite to migrate from WP7 to Windows 8. There really should have been a fairly smooth path for migration. Clearly decisions were made and priorities were set that caused that not to happen. I know very many Microsoft employees who initially tried to migrate apps and gave up. Not a good sign. This will slow down apps entering the store for Windows 8.
I don’t think that sheer numbers of apps is what Windows 8 needs though. Rather they need the right apps and they need to be of high quality. I think the volume of Windows sales will be incentive enough for the companies who are capable of doing the work to generate apps. The question in my mind is will those apps appear soon enough to make Windows RT successful? Or will most people want to stick with their desktop applications for lack of great apps?
“An other similarity he has with Jobs is that he seems to think software development should be hard to keep the crap applications away.”
If I understand correctly that there are gazillions of “Flashlight” and “Fart” apps on ios, then I’d say Jobs failed in that respect.
You make it sound like Win8 is antagonistic to .NET. It isn’t. It is just treated on par with native and HTML / CSS / JavaScript development on Win8 (HTML is not usually considered “hard” like native code).
I think all that has happened with Win8 is that they have created a common layer that .NET, C++ and HTML/CSS/JS can use. That is BETTER than having isolated development silos that fire off in their own directions. There is an optimized (and fast) core that is used by the various development technologies Microsoft wants to support. .NET is still a critical and key part of that, even if it isn’t the ONLY option.
No “arguably” about it. He did a terrific job fixing Vista and producing W7. But did he win the battle only to lose the war? Shouldn’t Windows have been pivoting on touch and mobile years earlier? Did it really take much foresight to see iPhone and immediately grasp the potential to replace a good chunk of PCs if it were offered in a larger form factor? Should it have still taken three years post iPad for MS to field its first competitive response? I applaud Stevesi’s boldness in W8. I’m just not sure he couldn’t and shouldn’t have gotten in front of this tablet tsunami earlier. And I’m not at all convinced that what I seen in W8 so far is anywhere near sufficient to justify the three year delay or more important win in the market against competitors now that it’s so late.
It is hard to comprehend how messed up the Windows organization and processes were by Vista and how much effort it took to “re-learn how to write software”. SteveSi stuck to his guns on having a good process and building a great product, even as the tablet clouds could be sited on the horizon. In the end I think he was right. Had Microsoft screwed up Windows 7 in order to try to get tablet support in, or to do a parallel tablet OS, then it would likely have sunk the entire Windows franchise. At best the tablet support would have been a hack.
Microsoft did have some other efforts going on to address the tablet market earlier. Look back at my posting on the cancellation of Courier for hints on why I think they did the right thing in the end.
Lets face it. Development on the Windows platform is in chaos. It seems as if there are too damn many independent groups at MS all slinging (ah hem) mud against the wall to see what sticks. Please, bring Bill back to get things organized, back on track.
The .NET vs. Native bit is incredibly hard. I’ve done both, and .NET is great for developer productivity, but it has performance issues, both from the time to launch the runtime to the performance of the running application (the C++ optimizers are a million times better than the C# ones). I’m personally glad to see the move back to native. I think it in part happened because large segments of developers with legacy native code just were not interested in moving to managed code, whether for expense or performance reasons. WPF is neat, but without immediate mode graphics, there are just classes of applications is cannot possibly work for. I just hope they go back and give us better native code tools for desktop development. Just port the XAML/Direct2D/C++ stack that you did for Metro back to the Desktop, okay? Either that or they’re going to have to radically enhance Metro so that desktop apps make sense in that environment, which they don’t now.
Whether or not Sinofsky likes .NET, I would have a hard time saying he was antagonistic to it (agnostic would be a better adjective). WinRT as a common runtime model that underlies .NET, native code and HTML/CSS/JS Metro apps is a pretty smart way to have your cake and eat it, too. As you note, to base their UI system on the conventions used by Windows Phone three years ago (before anyone had built any apps) would have prejudiced the direction taken by Windows 8, and that would have been a bad idea…
…particularly as Windows 8 will be guiding the development direction the Windows Phone platform would take, a decision I have to think was known 3-4 years ago, as it only makes sense to merge the Windows platforms around a common core. Better to get the Windows 8 platform designed correctly so that it can serve as a consistent underpinning to the shell work being done for Windows Phone (that now supports native apps in WP8) than let WP7 guide the direction taken by WP8.
They aren’t completely incompatible. XAML is a first-class citizen on Windows Phone and WIndows 8. Silverlight is stripped-down WPF with peculiarities that have been rolled back into its bigger brother. The fact that, internally, calls boil down to an optimized core shared by native and web apps matters little from a development standpoint, if done correctly.
Personally, I don’t thing the Windows Phone people planned to make a .NET-only platform. That just made sense because they KNEW they were going to tear out the WIndows CE internals and replace it with a new common Windows core. You don’t want people programming against the idiosyncrasies of Windows CE when you know it will change in a few years.
Perhaps, rather than making this about personality explore the differences between the platforms and importantly the differences between the hardware (what is always there on a phone and what is likely not there on every PC from cameras to sensors to touch). Then consider why emulation doesn’t quite work the way it did for the iPad+iPhone where the hardware was essentially identical (except for screen size, which I think we can conclude post was widely disliked in terms of scaling 2x). It seems it is better to look at things from a product perspective rather than a personality perspective. Delivering a feature is akin to a promise to customers, and delivering that promise with more exceptions than rules weakens not only that one promise but the promise of the whole product.
In the long run I agree with your position. But in the short term what matters to me (and I assume many others) is I need to “do x” and I’ll take non-optimal “x” over nothing. If you can fill the “Windows Store” portfolio quickly enough then of course the point becomes mute. But if not….
I threw the personality angle in because it makes the story more interesting. Other leaders would have made a different set of tradeoffs than you did, so Windows 8 is very much a reflection of you. I’m not saying that’s a bad thing, though the jury is still out on the final result. Given I’m running Windows 8 on three machines and will be amongst the first in line for a Surface, a hybrid of some sort, and both new home and new office Windows 8 desktop systems you could say I’m betting you made the right set of decisions.
BTW, I’ve had the experience of being the leader who forced his product to live by your last sentence, watched Oracle take the opposite approach, and watched customers prefer Oracle’s maze of twisty little passages. So while I still believe the philosophy I always think twice before applying it religiously.
Windows needs short term thinking like I need more jet lag
If Microsoft is backing away from .NET, where does this all leave Azure? While the new programming model might be client focused for now, one can be certain that’s not how it is going to stay.
By this same rationale, you presumably think Android emulation on Windows 8 with Blue Stacks is a good thing rather than the awful idea I believe it to be? After that gets apps there in the short term…
I don’t think I want Android apps even on Android! But (Paul Allen and) I would like DEC-10 emulation please.
I already dissed the idea of emulation and pointed out that you don’t need emulation at all for Windows Phone apps to work on Windows 8/RT. They are no more foreign to Windows 8/RT than the Desktop is. In fact, from an end-user perspective they would seem less out of place there. I almost responded to Steven’s comment with a “WTF is Office 13 doing on Windows RT then?” From an end-user perspective Office 13 is as much a compromise of the integrity of the Windows RT promise as Android/Blue Stacks apps would be. For a purist, Office 13 on Windows RT is a bug not a feature.
But let me drill in on your Android/Blue Stacks example a bit. The Wall Street Journal made their app for Android tablets (or at least the Kindle Fire) have the identical look and feel to the one I use every day on the iPad. If you are telling me that, absent a “native’ Windows Store app for the WSJ, I could have that exact Android version of the WSJ app for my Windows 8/RT tablet using Blue Stacks then I’m answering your question “HELL, YES!”
I don’t believe offering the ability to run Android apps as a feature is a strategy that Microsoft should follow for all kinds of reasons. But for someone else in the same position it isn’t a completely rediculous idea.
You assume that run=run well, but I don’t see the kind of shimming or whatever mapping or emulation is required to kluge contract support as being a good experience. Lots of apps that run but give a poor experience? Doesn’t seem a good idea for launching a new platform. Look at the Android apps on Playbook – they still look and run like crappy Android apps and I’m not sure how much they enhance the platform. Encouraging devs to meet the lowest bar isn’t great for the user. If you really want an app and it’s not on the platform you’re considering; what are you choosing the platform for? 2k decent apps, 500 fantastic apps, 100k mediocre apps; which sell the platform best? And Office is there because A people will buy machines to get it B it can be a good app on the platform. If 8 & RT don’t prioritize user experience over quantity, they fail.
You can make three arguments, but by trying to focus on the techical one you weaken your position. You keep making the wrong technical assumptions. Windows is Windows. WP apps are Windows C#/.NET/Silverlight apps. The only thing that differentiates them from any other .NET app is some Class Libraries, all of which can be implemented (and probably were when they were originally developed) on Windows Client (7, 8) operating systems as they are on Windows CE. So please stop trying to burden this topic with notions of emulation or other heavyweight means being necessary to make them run on Windows. They aren’t. Further, the degree to which any of the technical arguments (Contracts, how to address the Back button, etc.) applies was something controllable by the Windows 8 team. They had the ability to consider if they wanted WP apps to run on Windows 8 or not and, if so, include some provisions in the new platform to make addressing the few difficult things fairly easy. Perhaps even elegant. They decided not to do that. Putting WP apps on Windows 8 today would be slightly more difficult and leave a few wierder artifacts than if the Windows 8 team had planned for them. And I’m not advocating they change plans, just pointing out this was a choice that was made. Yes the choice was a cleaner platform rather than to either adopt the WP7 work or to provide a means of running those apps on Windows 8.
You can argue that the user experience wouldn’t be great and thus it shouldn’t be done. Well, I come back to Office 13. It is a different user experience than the Windows Store apps. It is a Desktop app. It fits in just fine with Windows 8’s dual model of Desktop and Windows Store apps, but is the exception to the rule of Windows RT not supporting Desktop apps. You (and Microsoft) are saying it is ok to make an app available that has different (and compared to anything else on a Windows RT system, totally alien and only modestly touch friendly) user experience because of the number of people who will want and use it. So this isn’t about great user experience, it’s about popularity? Allowing a Desktop version of Office 13 on a Windows RT system is an expediency for boosting the initial sales of Windows RT systems during the period in which they otherwise are severely crippled by the lack of a compelling “Windows Store” app library. Again, the only difference here apparently is that tens to hundreds of millions of people would benefit from this violation of principle while violating the exact same principle to allow Windows Phone apps to run was deemed to be of benefit to a much smaller audience.
The third argument you make against doing this is exactly the one that I pointed out in the blog, it risks distracting developers from creating the native apps that will offer the best user experience. I think there are measures you can take to minimize that from happening, but strategically I agree with you. But then Microsoft has done a terrible job of figuring out how to move those Windows Phone app developers and their applications forward. While the blame for this might be put more at the feet of the Windows Phone team, whose failure to make a WP8 SDK available in advance has left their developer community pretty much frozen on how to proceed w.r.t. both Windows 8 and Windows Phone 8, it’s an overall corporate failure to have not addessed this clearly and forcefully from the beginning.
The bottom line here is that I’m not advocating for retroactively making Windows Phone apps work on Windows 8/RT. I’m not even saying that I would have made that part of the original Windows 8 plan. I wasn’t involved in those discussions so I can only evaluate the decisions as an outside, if educated, observer. I am saying it was a choice, there were other options, they weren’t necessarily hard or lead to a bad result, but those options were not the ones chosen. The implications of those choices right now is a small but cleaner app library. Time will tell if it was the right tradeoff.
BTW, if you had the exact right 2000 apps then life would be glorious. Well, other than the fact that your journalist peers would make the tiny size of the library an issue in the opening and closing paragraphs of every article written and every news report broadcast, about not just Windows 8/RT but the tablet market overall. Every story will effectively say “until the app library is the same size as IOS and Android you should not consider a Windows 8/RT tablet”. Every one of them. Well, except those that actually decide not to mention WIndows 8/RT tablets at all and when an interviewer asks why the app library size will get mentioned. So let me know when Walt Mossberg is ready to say “Don’t worry about the lack of apps in the Windows Store; It has the only 2000 apps you’ll ever want and they are terrific”.
I can’t reply below for some reason. I’m making multiple arguments because I disagree with you on multiple points. I don’t care how much you handwave, some work would be needed to make WP apps run properly, as if they were real windows store apps. If you don’t do that, you have so much confusion and different experiences that you handicap the platform. And yes, if there’s a popularity contest, Office wins; it’s probably an order of magnitude more popular than any other single application except the browser (and that’s there as desktop IE too).
Pingback: @WinObs Tweeted Links for September 28, 2012 WindowsObserver.com
“I threw the personality angle in because it makes the story more interesting. Other leaders would have made a different set of tradeoffs than you did, so Windows 8 is very much a reflection of you.”
I think this says something about how you approach blogging. What else was included in the post because “it makes the story more interesting”? The way features and choices are made in Windows is well-documented, and to state what you did (so as to make your post is more interesting) is not accurate. Since we never discussed anything about Windows (to my recollection we never even met each other) it is tough for me to understand how you can offer your readers insights on me, particularly as they relate to a product you didn’t work on.
Rather than talking about what a product does and what it might have done under various scenarios of constraints, you attempt to draw a causal relationship based on assumptions about personality or even how a team (you were not part of) goes about deciding things. That might be “more interesting” but it isn’t accurate.
Your comment about SQL shows a difference in approaches. With SQL, as a developer focused product your customers would find all these exceptions and nuances interesting and potentially useful. The same could be said for developer tools, but not the applications they produce. For Windows, the broad base of customers would simply be disappointed in the product if it had more exceptions than rules or if the base case was less optimal than expectations. What is a bug v. a feature is a view that needs to take into account the type of customer. For a technically informed person ‘I need to “do x” and I’ll take non-optimal “x” over nothing’ might make a rational choice, but for a customer of Windows given alternatives in the marketplace or even alternatives on Windows itself that is not the tradeoff he/she would make.
We met last century but had only a couple of direct interactions over the years. And none over Windows. If I’d been sitting in the room when these decisions were made and had first hand knowledge of them then I wouldn’t blog about it (without your ok) for obvious reasons. So I accept that I can’t be 100% accurate.
On the point about SQL…my reference actually wasn’t to SQL Server but to an earlier time in the database industry. And it included decisions on how you bring databases to a programming community (think the VB 1 class of developer) that was unfamiliar with database concepts and both unfamiliar with and ill-equpped for handling concurrency. So there are more similarities than you might think when talking about the audiences. But I do agree with you that the broad set of end-users is a different and tougher audience. Still, look at what they accept in the Android world.
I’m not advocating that you change direction or even saying that it was a mistake not to bring WP apps to Windows 8/RT. I was pointing out that if you can’t get enough of the right apps in the Windows Store quickly enough it may turn out that you made the wrong business choice by making the right end user experience choice. And while we’ve been interacting on this posting, it isn’t the important one of the “pair”. The important one (and the one with an order of magnitude more hits BTW) is the previous one where I explain to developers that they are nuts not to get moving on building Windows Store apps. Interacting on that topic might be productive. This one is just hashing out water under the bridge.
“I think this says something about how you approach blogging.”
Steven, that’s exactly what makes Hal’s blog really interesting, because many of us in this industry take it very personal what’s going on around Windows 8 and last changes in MS technology stack.
Please, don’t get me wrong.
10 years ago I had started a software company, and all this time Microsoft was our best partner. We are very interested in success of Windows 8, we already port our main products to WinRT, and I think that Windows 8 is absolutely the best OS I’ve ever worked with, and Windows Runtime is one of the best API’s in the world. But at the same time now we feel changes in Microsoft ‘s attitude towards developers.
Take, for example, Windows Store. We had one of our business solutions for Windows Store ready 1,5 months ago but it is still not listed in the Store. There are all kinds of delays and silly rules. (We were MS Gold Partner for many years – do you really need full month to check our identity? Do we really need mark graphics editor app as “16+” to pass certification?). I’ve never experienced anything like this from MS before.
Or take this story with Silverlight. Silverlight solutions was our most successful line of products and customers were very happy using them, and then – bum! – “Our strategy has changed”. The problem is not that you abandoned Silverlight technology – it’s happens every day for various reasons. The problem is that how you did this: MS representatives kept telling us that Silverlight has a bright future, and we kept throwing money on Silverlight projects, and now it’s clear, that by this time Silverlight was already dead. There was huge impact for my company both in terms of revenue and reputation.
Yes, I don’t really know what’s going on inside Microsoft, and maybe “it’s just business, nothing personal”, but I described how it’s perceived by many of developers. Sometimes it’s very hard to be objective in these conditions.
Just my 2 cents.
One of the reasons that this blog is interesting to me is that I can tell that Hal always puts a lot of thought into his posts. I may not agree with all of his conclusions, but I can’t say that he hasn’t thought through his position; there’s always some good insight. Steven, you’re right that decisions must be made based on platforms, hardware, and promises to customers in the form of features, but personality does play a part in decisions that are made and, thus, features that are delivered. The building Windows 8 blog helps us to get an insight into the technical considerations behind Windows 8. Hal’s posts, including this one, helps us to gain more insight into other factors and understand more about things that we see happening.
Of course, since we’re not you, there is going to be some speculation. However, I think that Hal (and we) can, from conversations with others and strategies that we see being implemented, connect the dots and come up with some insights into what is driving strategy at Microsoft. For example, I don’t know if arrogance is the right word, but the decisions made lately, especially surrounding the one modern interface to rule them all, point to a strong personality pushing things through. Perhaps a different type of personality might have seen all of the same factors and decided that, “while reimagining Windows from the top to the bottom, we’re going to make a way to have the same underlying system but also provide a way for Microsoft (and other developers perhaps) to have different interfaces for different usage paradigms, rather than telling people what interface will work best for them in all circumstances.” A different personality might decide, “well, since Apple is more authoritarian in its approach, let’s continue our strategy of competing on choice and freedom.” Of course many other factors play into this decision, but personality weights different factors more than others and definitely influences the direction that’s ultimately taken.
Why is this important to me (and, I suspect, others reading this blog)? I see big changes occurring in the landscape and culture at Microsoft. For a long time Microsoft has given me and many other developers a platform and an ecosystem which is stable and gives us the freedom to do things and customize things for our particular situations, whether they be our own personal situations, or those of our customers. This has been a great alternative to the authoritarian strategy of Apple. I personally don’t think that that sort of central planning ultimately works and, in my opinion, is one of the reasons that Microsoft has been so successful. Now that this is changing, we developers need to prepare ourselves and decide what our strategy is going to be going forward. Maybe instead of .NET, I’m going to focus more on open technologies like the web and Java that align more with what I perceive to be my needs and those of my customers. While not perfect, the insight that I get here from Hal’s blogs, and also in other places, helps me to make these decisions.
Arrogance, Pride , asslike – who cares ! He did the right thing , the future requires the code to be easily portable between platforms. C++ is a great step to the future. This trend promotes development of efficient software. Being an WP developer for a long time. I do feel the pain when I know that my apps don’t work directly on Win8 we should not forget that the software development industry thrives on always having to construct new software. Maybe now we can see the rise of libraries and programming practices that pave a way to the future with better computing.
Pingback: Windows 8 Store Outlook « Kynosarges Weblog
“The Start menu, and indeed the entire desktop, are legacies that will have to be removed from Windows over time.”
Absolutely agree, even though I think the changes in Windows 8 are a mistake..
The mistake is not in removing the start menu but (imho) in failing to adequately replace it. I’ve been running Windows 8 for a while and the new start screen and changes like ‘charms’ just feel like a retrograde step to me, even on the final release.
I think that by combining touch and desktop, Microsoft might just have given us the worst of both worlds; it seems like some things in ‘metro’ are just a lot harder to reach as a desktop user, compared to Windows 7, and I can’t help thinking that while the new interface is a good fit for touch use, being dropped out of that to the traditional desktop will be very jarring for touch users.
“The mistake is not in removing the start menu but (imho) in failing to adequately replace it.”
What do you do with the Start menu that is not possible with the Start screen?
I’m not sure that there’s anything I could do in the start menu that I can no longer do in the start screen. That’s not what I’m saying. My experience is that the start screen is less effective (more scrolling required) and despite everyone raving about the search in the start screen, my experiences with it have not been positive ones.
Sinofsky’s poison will ruin MS.
Native code is good, but Sinofsky thinks that the only way to FORCE people to use it is to kill .Net. Sinofsky poisoned WPF, Silverlight, XNA, WP7, Expression Studio and now .Net. He want’s to force everyone use C++ only. He hates the cross-platform dynamic nature of many .Net languages ranging from F# to Python to Scheme to Javascript.
If you llok at his actions, he is openly hostile to .Net and despises .Net developers.
While the Mono team managed to ceate CXXI – a fast seamless integration between C++ and C# (where you can inherit C++ classes from C# and vice versa, override members and so on.), Sinofsky’s 1990s-era COM-based WinRT doesn’t even allow generics and inheritance.
It doesn’t matter to Sinofsky, though. Poisoning his better competitor – .Net is more important for him than WinRT quality.
Certainly bad times for people not too thrilled about C++.
While I believe you overstate your case, many .NET developers probably share your view.
The start “screen” was a real pain until I discovered that, in fact, the simple reality that the winRT “start space” is in fact just an interactive, executable start button — a “start button executable universe” if you will. Mostly, the marketing that the new space is the brand new OS is mistaken; the OS is win7, sitting on the desktop, just like always. Once I realized that, and THEN could focus on how much faster I can get to various applications once nested deeply within the Start Menu toc, from either the Start Space or the Desktop, I was good to go. The Start Menu thing is a distraction; the goal is, “how fast can you navigate a bunch of apps to do what you want to do from where you are?” And I’ve decided that they’ve largely done the right thing. If there’s any real problem with the design, it’s that because you can’t see how to do it, there’ll be a lot of training before you realize how smooth it is.
My comment was an aside to the WinRT/WP7/WP8 issues in these last two posts. On those, you’ve done a nice job explaining the decisions required, and also illustrating why personalities do and also do not matter. If the right decision has been made, we’re free to speculate why it was made correctly, but it’s irrelevant. The same thing is true if it’s the wrong one.