For Windows developers, Sinofsky's legacy is fragmentation and frustration

For Windows developers, Sinofsky's legacy is fragmentation and frustration

Summary: This last year, being a Windows developer on Microsoft's mobility platform has been frustrating at best.

SHARE:
TOPICS: Windows
25

The statement "Windows will lose its dominance and the PC will become irrelevant" always gets people riled up, but logically has to be a time when that statement becomes a concrete fact.

The problem with that statement is it's missing a qualifier. Look 200 years in the future and it's obviously true. The sort of computing platforms we use today will look like quaint clockwork curiosities decades just decades from now. Windows and the PC will ultimately wither and die -- it's just a matter of when.

Some people in our little technology universe have the ability to affect when that happens. Sinofsky was one of those, and his departure gives us chance to reflect on his legacy. Some parts are good -- I'm a big fan of Windows 8. It does a good job of negotiating the inventor's dilemma, on paper.

But some parts are bad. Particularly the damage he managed to do to the developer story within Microsoft.

Being open is better

I've always felt that specialising in Microsoft development was like staying in, alone, every Saturday night whilst everyone else you know went our clubbing 'til 4am at the most happening joint in town.

Read this

How Steven Sinofsky changed Microsoft, for better and for worse

How Steven Sinofsky changed Microsoft, for better and for worse

When Steven Sinofsky moved to the Windows division in 2006, it was fundamentally broken. He leaves behind an engineering process that runs smoothly. But he also leaves a legacy of cutthroat politics and feuding between divisions.

I first started getting into web stuff in the mid-90s. This movement started outside of Microsoft's influence in the "open web" community based on technology like Linux, Apache, PHP, MySQL, and so on. It's stayed that way ever since. Think of any large, retail web properties -- Amazon, eBay, Facebook, Twitter, Yahoo!, the list just goes on and on, you'll find it rare that they engineer their solutions on Microsoft products. Private, proprietary enterprise development tends to take a different approach where Microsoft's stuff gets more play.

Ten years ago Microsoft released .NET. Ostensibly a strategy to head off Java, within the Microsoft community this has become the de facto standard way of building software on the Microsoft stack. Whilst .NET was created as closed, even in the early days Microsoft would make noises about being more open. Submitting C# as an ECMA standard along with a shared source CLI implementation (Rotor) in 2006 was an early one. This story has been getting much better recently. TypeScript -- although not a .NET technology -- isn't just having its source released open source project, it's being run in a way that's highly sympathetic with the open web community. And how about Entity Framework where the Microsoft developers will even accept pull requests from the wider developer community.

Open source isn't important because it's hip, groovy, and a cool thing to do. It's important because it marks a developmental shift in our industry. We're becoming more mature. We started as an industry where everything was private and hidden. As we develop we expose out our ideas to peers and share, collectively, the process of becoming better at engineering as a whole. Imagine the industry of building a bridge where structural engineers didn't share what they learned in the process of bridge building. The idea that a group of structural engineers who discover that building a bridge in a certain way causes it to collapse would keep that a secret and not share it is ridiculous. It's clearly a more logical approach to share that knowledge. Although "open source" is typically used to describe licenses, it's much more about the philosophy of driving advancements in technology through collaboration.

The individual software engineers and management staff within Microsoft gets this. This is why the "DevDiv" team -- those that build the tools like Visual Studio, platforms like .NET, and libraries like Entity Framework -- are much more accommodating to the ideas of open source. You can test this out yourself. Find any Microsoft developer on Twitter and ask them about their job and their work. I've yet to meet one that didn't love to share their passion for what they do -- but when they do that they're doing that in a very "open source" way. The products they're developing may be closed, but their personal philosophy will most likely be very open.

(This by the way is why I like to think of this stuff as "open web" rather than "open source". It's not about licenses and business models -- it's a philosophy.)

WinRT

Much has been written about how in the reimagined Windows 8 and Windows RT we have a new development model called "Windows Store apps" which are based on a new library called Windows Runtime, or WinRT. (Peter Bright did a fantastic job of explaining all this in great detail.)

When designing the new APIs for the new platform, Microsoft -- well, Sinofsky -- had two options. Base it on .NET or do something different. He should have based the new platform on .NET -- but for various reasons he chose to reboot the entire developer story on WinRT. The most likely reason is that .NET was blamed in part for the failure of Vista. When you're running the Windows team, the last thing you want is "another Vista". 

Sinofsky's decision to base the new developer story on an untried and closed technology is not only risky, but it obviously fragments the Microsoft developer platform story along two axis.

On the first axis, it's not .NET. Sure, you can use .NET to build Windows Store apps, but it's just a baseline technology within a much larger stack. Generally developers find working on Windows Store apps hard. (I've been working on .NET since before it was released. Trust me -- it's much more difficult to build apps with WinRT.) At its core, WinRT is not .NET -- it's more like the APIs used for building Windows and megalithic applications like Office and PhotoShop than the more easy going and forgiving experience that .NET provides. (DevDiv designed .NET to be easy, and so it's easy and a bit slow. WinDiv -- Sinofsky's team -- designed WinRT to be fast, and so it's fast, but hard to develop for. In fact, it's not even very fast when you actually try and use it.)

And on the second axis we have the problem that WinRT and Windows Store apps are fundamentally closed. In this instance, the WinDiv team are both out of kilter with their own developers (Microsoft's engineers want to be more open) and with the community at large.

Again, this isn't about "open source" and licenses. This is about philosophy. We now know that the Windows Phone 8 APIs are different to the Windows Store app APIs. Yet logically these two platforms must converge. Where's the clear messages that it will or won't? Nothing -- all developer get from Microsoft is stony silence.

There's a rule about being open: if you're first, be closed, but if you're following, be open. Apple can afford to be closed with iOS because it runs that whole market of that whole market. Android started out as open, and for simplicity lets just say that it is. Microsoft are way, way in the back. A closed strategy with Windows Store apps (and with the Windows Phone platform) is just crazy in that context.

Conclusion

Let's come back to my point about how Sinofsky has the power to extend or reduce the working life of Windows. Wait. I meant "had" the power.

Sinofsky's choices with regards to the developer story in the new world of the ridiculously named "Windows Store apps" have been nothing short of disastrous. Effectively deprecating .NET for native Windows 8 and Windows RT development, obfuscating the message throughout on Windows Phone, obsessing over running Office on tablet, and by stopping the "open web" philosophy bubbling up from the Microsoft developer rank and file has devastated Microsoft's chances in the post-PC market.

What's my rationale? Apple's stuff is incredibly difficult to work with from a technical perspective. Culturally, they are closed and secretive. Even to build software for it you need to drop thousands of dollars on hardware. Yet developers flock to them in droves. Why? Follow the money. There's actually a market for the iPad. The only way that the "Windows-on-a-tablet" story can survive Sinofsky's missteps is if it sells in vast numbers and developers start following the money to Windows.

That's a chicken and egg problem. Developers have to have the mood and inclination to build Windows Store apps despite the poor APIs, a culture that's tended to being overly-secretive and out of kilter with the general "care and share" mood of the industry, and assume that sales of Windows tablets are going to hit all sorts of crazy big numbers as opposed to just being "modest".

It looks like Julie Larson-Green has her work cut out for her.

What do you think? Post a comment, or talk to me on Twitter: @mbrit.

Topic: Windows

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

25 comments
Log in or register to join the discussion
  • For Windows developers, Sinofsky's legacy is fragmentation and frustration

    Bitter much? There is nothing stopping you from continuing your development on Microsoft Windows. Development languages come and go just like APIs. This is for all platforms. Sure you could follow the money and go to Apple's platform but its saturated and that will be a short money trail. Stick with Microsoft Windows development as there is a huge potential customer base and due to Windows 8 and Surface RT being new if you get your apps out there now you can get the most sales before it becomes saturated.
    Loverock Davidson-
    • Sinofsky was a bully to the other divisions

      The most notorious recent victim was SilverLight. SL was fantastic and popular among .Net developers until Sinofsky and his WinDiv ran in there demanding a halt for the greater good of Windows 8. Half of the SL team elite developers were pissed off and left for competition firms. The entire .Net was stunned by such pure political BS. Sinofsky was good for his own division but hurt the company as a whole.
      LBiege
      • Ermmm ...

        ... You do realize that XAML and the core Silverlight engine was moved to Windows and is the UI engine for all metro apps, right?

        Sure, Silverlight as a plugin browser tech competing with Flash is (was?) dead, but with the advent of HTML5, it's value as a browser plugin was decreasing precipitously.

        Perhaps the post-Sinofsky Windows, Phone and DevDiv will now start to work better together and build an app platform that REALLY shines.

        One note though - @mbrit is not being honest when he claims that WinRT is hard to use - its just a little different, that's all.
        bitcrazed
    • How many development languages are you proficient working with?

      Why force a learning curve on people arbitrarily? Sinofsky is an arrogant jerk and you lost a lot of shareholder equity because of his inability to play nicely with the other kids in the sandbox.

      Care to disclose your Microsoft positions? I have 650 shares and consider it a very modest, but highly intersting position. I picked them up in August because I am sick of Android and notice that Android developers are frustrated, because I like what they are doing, in general, and because I think MSFT is undervalued. I'd like to think I have too much dignity to go pumping for them.

      Want to help out your positions? Develop some RT apps or port them from Android, if it's so easy to learn development languages as you say. You would make money in two ways then.
      rp518
  • I didn't find WinRT to be difficult at all

    Coming from the "WebDev" world, I had only done a few projects using WPF. However, I found Metro dev using C# and Xaml to be relatively easy. The only strange part was the "tombstoning" part, which any mobile app on any platform needs to deal with.

    Now iOS is simply hard. Its unlike any other language. Sure its C-like, but there is a reason they made C++. C is hard, its hard to keep track of what you're doing and hard to create new controls quickly. Everything is boring blocks or a fully animated view. Dropping down to use animation for a textbox is just difficult. So its left to those willing to work 80 hour weeks to build the simplest of controls. And people who love animation, don't love building textboxes.

    I agree that Microsoft needs a new face who understands people and what people want to do. Their failures come in trying to be "cool" instead of trying to "deliver." That's how you get a Windows 8 phone that is awesome at voice recognition but can't make a simple playlist with your music.

    If iOS was easier to develop for everyday devs who need to solve complex business problems not complex animation problems, Microsoft would perish in about 18 months.
    A Gray
    • That I agree

      I have no idea what the author was talking about WinRT being difficult. If he thinks RT is difficult then try some of the FOSS alternative out there. Open source is disastrous when it comes to creating a nice and easy to code platform. It does not matter for RT to be closed. Every mature platform is inherently closed be it open source or not.
      LBiege
    • Too easy

      I third this. Win8 development is a breeze compared to IOS, and a seamless transition for a .NET developer.

      Look at the code, and it's hard to tell a Silverlight/WPF .NET project apart from a WinRT (Windows Store) app.

      The biggest changes I've seen revolve around common sense improvements --- the complete avoidance of any 'blocking' calls, for example. So, developers will have to learn how to use Async/Await......which is the simplest implementation of async programming possible, and a key part of the .NET framework anyway.
      Tojuro
      • Apparently iOS isn't as hard as you make out

        With the amoeba-like hordes of apps produced for it by all and sundry. Perhaps the concept of ease or difficulty is one that some people struggle with.
        ego.sum.stig
  • It's time to move on!

    We can sit here and moan and groan about this for the next few hours, or we can get to work and make things happen. Despite all the negative press by the pundits, I'm finding that everyone I've introduced to Windows 8 is either lovin' it or getting there because they're finding that everything that's been written is mostly BS...learn and learn we can, lets cut the crap, get to work and make this platform a success. Hey, it's the only way forward.
    jcmolette@...
  • While I disagree with some of the details, you have it mostly right.

    .Net was never a 'web only' system - but what happened seems to be that it got co-opted by the web oriented group. WPF bears an uncanny resemblance to HTML with many of the the same weaknesses.

    For those of us who prefer desktop apps to web apps, this shift in direction was frustrating as core functionality we relied on got dumped and replaced with fancy visuals and eye-candy that, while looking nice, didn't really make for better applications.

    But that aside, yes, the whole Metro/WinRT fiasco and the way it was handled - telling us that the preferred development system for Metro was going to be HTML/Javascript, then being VERY quiet aboout .Net and Silverlight - left programmers scrambling to figure out what they should do. Then splitting Windows into 'old' and 'new' and putting a wall between them marginalised WinRT even further. Telling everyone who bought a Win Phone 7 phone that their phones were instantly obsolete BY INTENT made developers even more nervous. And this ideal of trying to stomp Windows 7 and all pre-existing software out of existence just feels idiotic - if you can't win kill the competition even if it's yourself.

    So, now we sit here waiting to see how it all rolls out. It's looking like Win8 IS going to be the next Vista. WinRT tablets are selling 'moderately well'. It's feeling like Microsoft tried to hard to be Apple - with Sinofsky being a combo Jobs and Ives - but then completely forgetting the whole 'manufacture and distribution' part of the game - and that Apple spends tons of money in carefully constructed advertising and buying into retail so their products are EVERYWHERE - not just in little popup kiosks in a few shopping malls.

    Maybe the new head of Windows can learn from his mistakes and be a little humbler and a little more willing to look at the real world - listen to the developers because without us - Windows (or any OS) is useless.
    The Werewolf!
  • There's a fine difference

    Kodak is gone because they resisted changed.

    Microsoft is pushing change and is getting resisted by some people in tech while getting embraced by others. That's how you survive. Be just ahead of the curve, but not so much everyone resists your change. The companies that make electric cars and cities that have charging stations are just like your Microsoft (touch-friendly OS) and OEMS (promoting touch-screen devices). Google has done this with ad-based revenue (look at the huge portion of apps that make money on apps) while Apple takes a weak market and turns around demand based on its advertising genius.

    Google, Microsoft, and Apple will be around decades from now. For the same reason we'll never have various diseases completely eradicated nor cured, FOSS will suffer the same fate. There is no money in free. There is plenty of money with finding ways that people live just as long and comfortably with a disease than without one. That said, *nix will still be around, too, in roughly the same position it is now.

    Onto the subject of compatibility... if you live within the same exact laws written decades and even centuries ago you will be way behind. At some point in time, yesterday's methods are just too inefficient, large, lack features, etc. and must be killed off. Many tech pundits tend to criticize the fact that Microsoft had for years tried to make everything compatible with legacy wares. Tell me... how would a command line work with future Google Goggle-like devices where the input is either based on eye movement or voice?

    The reality is that touch, voice, etc. are the way of the future. There is a reason why command lines and UIs with small areas you can click on are going away. If it wasn't Windows 8, it would have been Windows 9. If it wasn't Sinofsky, it would have been someone else. These are realities. Look at Canada where everything has to be hands free while driving. Now just imagine if the US had those laws nationwide how fast speech recognition would grow. When you can naturally speak to your computer and have the correct actions happen, your entire OS, UI, apps, etc. will get flipped on its head once again. You'll write the same article and I'll say the same thing (literally then, too).
    ikissfutebol
    • Change is not always good.

      Remember the new Coke? That's an example of embracing change. Decisions have to be made on their own merits without regard to the labels of "legacy" or "change". As far as WinRT is concerned, will the theoretical improvement in performance outweigh the damage done in the Windows developer community? I don't know, but given the vague and convoluted developer story around Windows 8 it doesn't seem that MS spent much time thinking about it. It seems to me that MS has gone from "Developers, Developers, Developers" to "our way or the highway".
      Skane2600
  • New but Excited

    I'm new to WinRT development, but I can say this article reads as if Matt has some ax to grind. .NET can't be suitable forever - maybe a fresh approach is exactly what Windows needs. In the marketing arena it seems to be working great!
    Holodyn
  • Requirements vs Desiredments

    Strikes me that Win8 and WinPhone8 are complex, heavy-duty environments because they MUST be for the core constituency.

    Maintaining multiple OS versions is expensive and a challenge to keep competitive (viz: Windows Mobile, which HAD to be tossed).

    Let's be fair or at least realistic: Microsoft had two choices: create a separate company that did Mobile, while optimizing Legacy Windows for the desktop, servers and the Enterprise generally. Or, make the cumbersome combo that they did, risking that indie developers wouldn't come to the platform and existing desktop developers wouldn't be incented to, or especially know how to, build great mobile apps.

    Your complaints were essentially inevitable a couple of years back, but frankly, I think it somewhat astonishing that the Win8/WP8 story came together as forcefully as it did.
    WaltFrench@...
  • This just doesn't ring true

    We all know Steve's reputation now, he was a hard ass, He made tough decisions and apparently rode roughshod over the opposition. Almost certainly a man for the time.
    I was at the first \\Build and took the opportunity to speak with a couple his Lieutenants, HTML5, Javascript Win 8 apps was one of his things, but in reality we got a great platform out of this with .Net fully supported, and in no way handicapped and C++ also promoted to first class citizen.
    Lack of XNA on the windows Phone 8 seemed like a strange decision but we can see now this is all about business, making it easy to port android games onto the WP8 platform because the platform was missing to many games.
    Finally I don't really see your point about being open or closed, and I don't agree with your analogy at all about sharing knowledge. Open source is not about knowledge sharing its about making things appear free/cheap so that you can gain market share and make money with an alternative business model. Support contracts or advertising have both proven lucrative. In some cases it just seems to be about weakening your competition in key markets and creating market share with little regard for making money.
    nanderto
    • open source and licensing

      Open Source as a concept has nothing to do with licensing. Various licensing models for open source are side effect of how it is developed, bug fact is some of the open source licenses are not that open, at all.

      Open Source is all about the culture to expose your code and concepts to peer review. This is how quality is achieved in many areas of human knowledge, software development included.
      Any company that sticks to closed source concepts is bound to have the same trouble Microsoft has: lots of bugs, that are never fixed, impossible promises etc.
      Even Apple are way more into Open Source: their OS, Darwin is essentially open sourced and available to everyone to review and improve.
      danbi
  • should have adopted Linux

    in order to keep his job!
    The Linux Geek
  • .NET

    wouldn't cut it for a unified OS to scale from mobile devices to powerful computers. The WinRT API's is what addresses this.
    Xenon8
  • .NET is an enterprise developer tool

    Microsoft would never say this out loud, but the reality is that .NET is a tool for enterprise developers, not ISV's. It's too slow to be an ISV tool. Microsoft got this feedback when they shipped WPF. ISV's have billions of lines of native C++ code they are maintaining. Moving it to managed code would cost lots of money and result in slower-running applications. Applications are slower not just because they are running managed, but also because the optimizers in C++ are light years ahead of the optimizers in C#.

    Microsoft is "going native" in large part because game engines that all the applications they need to be ported to Win8/WP8 are native.

    But Microsoft has fully enabled both the .NET stack and the native stack for Metro apps. The ability to write applications that use XAML for the UI and DirectX for the graphics is development nirvana. It's something MSFT should have done for desktop development, and I'm really hoping that's what they go do now. It is on the desktop where Microsoft's development story is hopelessly lost, at least for ISV's. The speed/safety tradeoff in .NET works for enterprise developers but not for ISVs.

    And, by the way, how is C++ less open than C#? With C++, I can (and do) write applications that can run on both Mac and Windows. C# can't do that, unless you want to deal with mono.

    Also, your engineering analogy falls flat. Engineers share principles of sound engineering, but they do not "open source" their actual building plans. Closed-source software developers similarly share best practices and sample code. That's really the same thing. There is some software that makes sense as open-source. Other software does not.

    I have no idea who played what role in the tooling stacks for WinRT, but for me, the fact that I can choose to be native is a massive win, and the fact that enterprise developers can keep on using C# is a massive win for them.
    FDanconia