Microsoft's developer crusade

Microsoft's developer crusade

Summary: If you're measuring Microsoft's developer success by the number of apps on Windows 8 or Windows Phone, you're missing most of the story. Microsoft's got a fight on its hands, but is doing very well with developers.

SHARE:

From the early days of its C compilers and Visual Basic to the introduction of the .NET Framework and on to Windows Azure, Microsoft has obsessed about developers, their languages, and tools. And fresh off Microsoft's //build/ developer conference last week, it's clear that developers remain a huge priority for Redmond.

Granted, rapid platform changes, secrecy around Windows 8 and Windows Phone, and a sometimes tone deafness to what the rest of the developer world is doing have left egg on Microsoft's developer face at times.

But the company has adapted to the new developer world, embracing the cloud and open source and contributing important new technologies to the developer community. Few give the company credit for such moves, because it's much easier to stick to the old stereotype of the evil "M$" that's hopelessly behind the times. In reality, it's that very narrative that's become obsolete.

It may not be popular to say so, but Microsoft is winning the battle for developers, especially in the enterprise, and increasingly in the cloud and consumer worlds.

Superior tools

Microsoft's popularity with developers is not due to Windows' incumbency as much as people think. Redmond's developer popularity began when its tools became competitive in features and productivity. This started with Visual Basic (VB) and then Visual C++ (VC++) in the early 1990s. Prior to the VB/VC++ era, companies like Borland (with Turbo C++ and Turbo Pascal), Nantucket (with Clipper), Fox Software (with FoxPro — a product that Microsoft eventually bought) and Ashton Tate (with dBase) were kings of the hill.

Read this

What's behind Microsoft's pending reorg?

What's behind Microsoft's pending reorg?

The whys behind Microsoft's coming reorg are clearer than the hows, at this point.

The key to Microsoft winning developer hearts and minds was creating good tools with high productivity and superior debugging capabilities, especially for the Windows environment, whose native C application programming interface (API) was very difficult to develop for.

More than one angle

A shift from Windows applications to the web has, contrary to popular belief, not hurt Microsoft's developer story. Understanding an important nuance is necessary to appreciate why. Any discussion of Microsoft's popularity with developers needs to consider the question from two angles: That of the Windows Division, and that of the Developer Division (which is within the Server and Tools Business).

In other words, Microsoft can curry favor with developers in terms of its client platforms or in terms of its developer stack. Sometimes the two are in full alignment, but at other times, they're not correlated. As the web has gained in popularity as an application development standard, Microsoft's developer stack has gained in popularity, too, even if Windows itself has encountered challenges.

Microsoft's web development tools, going all the way back to the Active Server Pages (ASP) platform, introduced in the 1990s, and continuing with the .NET Framework and ASP.NET Web Forms, introduced in 2002, were extremely popular. ASP allowed the intermixing of HTML markup and VB or JavaScript code, laying the groundwork for competing platforms like PHP today. ASP.NET removed the need to emit HTML explicitly and enabled a forms metaphor much like that of VB for Windows.

The forms metaphor lost favor with developers, though, and .NET development was much more complex than ASP. This did create a backlash and gave rise to the popularity of PHP, Ruby on Rails, and other, newer web development platforms. Microsoft's answer to the forms-eschewing aesthetic is ASP.NET MVC, which has seen growing adoption and has been completely open sourced. ASP.NET MVC easily integrates with jQuery and a host of other open JavaScript development frameworks, putting the Microsoft web platform back in the web development mainstream. A third model, called ASP.NET Web Pages (also open sourced), was introduced a few years ago, and closely resembles the original ASP development approach.

Tools and productivity

Microsoft has succeeded in this past decade as it did in the one preceding it: By delivering solid tools. Visual Studio is a comprehensive integrated development environment (IDE) that pioneered the syntax color-coded editor, statement completion in the form of IntelliSense, comprehensive design-time data binding, integrated debugging, and a host of other industry standards that have been copied handsomely by the open-source Eclipse project.

Again, it's extremely important to distinguish between the Microsoft developer stack and Windows itself. Challenges to the latter do not automatically erode the popularity of the former. In fact, Microsoft's enterprise strength has, arguably, been due more to the productivity of its web development tools than anything else.

Where Microsoft has faltered has been in the turbulence of its client development stack. The shift from classic VB to .NET Windows Forms was a tricky one ... but it worked. However, the subsequent transition to Windows Presentation Foundation (WPF), followed by the crowning and dethroning of Silverlight, and the dual-track (HTML and .NET) development platform for "Windows Store" touch-centric apps, for Windows 8 and Windows RT, has caused dissonance and compromised developers' trust in Microsoft.

For this reason, as well as the general riskiness of multiple coexisting native platforms and the evolution of HTML 5, the Microsoft Web development platform is probably Redmond's most popular at this point, and that ties in very nicely to the company's push toward the cloud with Windows Azure.

Windows Phone sleeper

The advent of mobile "apps" versus enterprise applications has attracted new developers who have skipped past the enterprise market, but plenty of enterprises have native mobile app requirements, too.

Without question, Apple has been the winner on the native mobile enterprise app front, with Android in second place and gaining. Windows (including Windows Phone) has been the big loser.

But here again, the dev stack can succeed even if Windows is threatened. With the Microsoft web stack, and its cloud platform (especially Windows Azure Mobile Services), Microsoft is wooing developers who have multiple platform targets on the client side.

Another phenomenon to watch is the growing popularity of Xamarin, which allows native Android and iOS apps to be developed using .NET and Visual Studio, with a substantial amount of code reuse across platforms. The MonoGame and Unity game engines offer similar cross-platform capabilities from .NET code. The cross-platform C# play is like a sleeper cell for Microsoft .NET platform adoption; keep an eye on it.

Another sleeper cell is Windows Phone itself. More and more apps are landing there, and even if market share has been abysmal, critical acclaim has been high.

Heavy competition

Mobile apps, for the most part, monetize rather differently than conventional software has in years past. App stores level the playing field in terms of the distribution channel, giving small developers a platform that was previously unavailable. On the other hand, the prospect of being financially successful in the consumer app market is akin to making it big in Rock & Roll or professional sports: The reward is potentially big, but very few will make it.

Contrast this with the more grounded, though well-paid, profession of custom software development, where revenue is often derived on a salaried or time-and-materials basis, and it's a whole different ball game. For the enterprise, it's all about productivity and features. On the consumer side, it's all about placement in the store and platform adoption. Enterprise developers care about the development experience and its efficiencies; consumer app developers care about the customer experience and number of copies sold.

The sweet spot, though, is the intersection between the two: Enterprise apps running on consumer smartphone and tablet device platforms. This combines new form factors with the pre-existing monetization models. Ultimately, I think this scenario will be the most important. Microsoft has good chances here, but it needs to maintain a cross-platform strategy. Tying its tools too closely to Windows devices probably won't be a winning formula.

Better strategies

Apple was the first in-market to shift focus from features, on the one hand, to fit, finish, and experience on the other. Windows Mobile devices pre-dated the iPhone by many years, but the iPhone was really the first mobile device that made it easy and fun to take advantage of smartphone technology. Android wooed OEMs with the prospect of free operating system licenses and, ironically, beat Microsoft at the multi-OEM, multi-device approach to the market.

BlackBerry suffered from extreme hubris, and refused to modernize until it was too late. Palm was a one-trick pony that found its own Palm V act too hard to follow. Amazon is doing just fine with its goal of selling Prime subscriptions (devices are quite secondary).

Microsoft's prior failings in the mobile market have been due to groupthink and the resulting misread of the market. The company corrected this with Windows Phone, but now it can only succeed by playing the long game. I'd argue that Microsoft has done better than anyone in addressing the iOS-Android duopoly. It's just that Microsoft and Windows Phone will look unsuccessful until the day when all the contrarian effort pays off, and Redmond has to have the patience to get there.

Paying developers for apps: Why not?

The only thing that surprises me about these reports is that people find them to be scandalous. If Microsoft is in a distant third place, then developers can't hope for any substantial revenue developing for Microsoft devices. Microsoft may argue that this will change once the critical mass is there, but even if developers could help Microsoft turn the tide, what would be in it for them? Microsoft needs to put its money where its mouth is and invest, or the app developers will pass it by. It's the monetary penalty Microsoft pays for being late to the game with a viable platform.

Is the strategy working? Important apps, like Instagram, Sonos, and a host from Google, are still not available. But in the last several months, Windows Phone has added banner apps like ABC News, Hulu Plus, Pandora, Chase Mobile, United Airlines, TeamViewer, Temple Run, various Disney games (like Where's My Water and its derivatives), multiple Angry Birds titles, and others to its platform.

Windows Phone has also seen important refreshes to apps it already had, like Foursquare, OpenTable, Twitter, Rhapsody, Shazam, and Yelp. Then there are the newly added "discretionary" apps, as I call them. These are the apps that are not crucial, but are nice to have — and they may be the best indicator of platform importance. New apps in this category include Walgreens, Fidelity Investments, E Online, Sony Pictures' MyDailyClip, and Domino's Pizza.

Ironically, the best story around Windows 8 has been its apparent influence on momentum for Windows Phone. Window 8's own momentum (and that of Windows RT) has been more modest.

Are web apps the answer?

The popularity of web apps helps, because it addresses the gap in native apps for Windows Phone and Windows 8/RT. But I don't see that it's fully taken root yet. Worse, most web developers seem to target WebKit browsers (and I would include Google Chrome's Blink engine in that grouping), leaving Microsoft's Internet Explorer 10 unable to render certain sites correctly. Since IE10 is the exclusive browser on Windows Phone and Windows RT, and is the default on Windows 8, Microsoft is still at a big disadvantage here.

Chase the cloud

Microsoft is certainly the cloud underdog at this point, with Amazon Web Services (AWS) dominating, but Redmond is making all the right investments and policy decisions here. The Windows Azure cloud platform supports both infrastructure-as-a-service (IaaS) and platform-as-a-service (PaaS) models. It's also platform agnostic, with official support for Linux virtual machines, and applications developed not just in .NET, but also in Java, PHP, Ruby, Node.js, and Python. Microsoft said that it has 250,000 customers on Azure, and is adding 1000 new ones each day.

Office 365 supports using the Office desktop clients on a subscription basis, and offers Exchange, SharePoint, and Lync on the cheap. Microsoft's acquisitions of Skype and Yammer, while far from cheap, are adding significant value to these offerings. And the Office Web apps, available to both Office 365 and SkyDrive users, extend the reach of Office to all sorts of devices, including Google Chromebooks, where they are surprisingly usable.

The new Office Apps model provides an HTML- and JavaScript-based platform for apps that can can be developer or cloud hosted and run in the conventional desktop apps, the Office Web Apps, and SharePoint.

Honestly, Microsoft's got so many post-PC plays in motion, the biggest problem the company has is that most people aren't aware of half of them.

Microsoft's got the ammo

All the dust flying around on the developer battleground has a tendency to hide the winner, and the company that's winning today could still lose tomorrow. But in my opinion, that winning company is, in fact, Microsoft. Apple's low on ammo, if not out of bullets completely. Android is fragmented and in any case dominated by Samsung, which threatens the other OEMs in the ecosystem. BlackBerry, Mozilla, and others will have a tough time gaining critical mass in the smartphone and tablet space.

Microsoft has a good strategy and a good game, and its own defeats of late have in some ways helped by giving the company a badly needed dose of humility. If Redmond could just tone down its own internal politics and the corresponding turnover and drain in morale, it could win big. Without that transformation, its success is a little bit more a matter of chance. But its investments have been smart and its chances are good. So Redmond is winning. For now.

The only reasonable strategy

Microsoft faces existential threats on multiple fronts. iOS and Android threaten Windows and the PC market in general. Open-source NoSQL databases threaten SQL Server. Copycat, "good enough" productivity suites threaten Office. And mobile devices in general threaten game consoles, most definitely including the Xbox.

Microsoft's response — whether you call it "Devices and Services" or "Three Screens and the Cloud" — is about providing a consistent developer platform that works in multiple scenarios: Cloud and on-premises; PC, tablet, phone, and soon TV; web and native; enterprise and consumer.

Some would argue that this hybrid approach yields too many compromises. My take is that it makes training and development efforts approachable, even in a world of sprawling, heterogeneous, indeterminate devices. My belief is that this is the only reasonable strategy, and that's the biggest reason why I see Microsoft is winning the battle for developers.

As Microsoft addresses attendees of its Worldwide Partner Conference next week, and is likely implementing a reorg for its new fiscal year that started this week, we'll know better whether it's continuing on the right path, or if it's losing its nerve.

Related story:

Topics: Microsoft, Software Development

Andrew Brust

About Andrew Brust

Andrew J. Brust has worked in the software industry for 25 years as a developer, consultant, entrepreneur and CTO, specializing in application development, databases and business intelligence technology.

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

Talkback

66 comments
Log in or register to join the discussion
  • Winning... Wrong

    Andrew, you were on the losing side of this debate: http://www.zdnet.com/debate/is-microsoft-winning-or-losing-the-war-for-developers/10122538/.

    Have you written a single app for Windows Phone or Windows 8? If so, what is the name of your app?

    As an actual developer, I can say, Microsoft is losing. You don't have to believe me, you just have to look at the results and comments of the poll: http://www.zdnet.com/debate/is-microsoft-winning-or-losing-the-war-for-developers/10122538/.

    They have jerked around the dev community for far too long. The fact that they bailed on Silverlight after it was gaining interest was a BAD move. That, coupled with the fact that developers aren't making money on Windows Phone or Windows 8 is another reason not to participte.

    Did Microsoft pay you to write this article?
    bill.jones
    • You have no idea....

      You do realise nearly all enterprise and business software is written for windows yea, A good bit for Linux but that's even more specialised... that's a lot of money you never see going to dev's that you never see (as a consumer)... They'll have to update their software so theres no bugs in w8... Just because its no in the store don't mean its no there....
      As for Silverlight... I remember the ENTIRE WEB saying dump it.... now that they have everyones complaining...
      You missed the point as well... its not about apps for wp8 or w8... its their tools for coding on anything from OSX to Android to windows xp and so on... Did you even read the article? As a Dev you should know this...
      Skunkwurx
      • Re Silverlight

        No one cares about the web dumping it. What it had become was a fantastic way to distribute code on Intranet portals. Gone now... just like Web forms before it.
        Mac_PC_FenceSitter
        • Silverlight Lives On (and WPF)

          The old model of automated code generation in Windows Forms Application will be history soon. The next model for writing an application is to use a markup language (HTML, HTML5, XML) for the user interface. Data is manipulated in another language (Java, VB, C++, C#), the code behind. I see Silverlight was an evolutionary step in this direction. WPF is another step. Nothing has really died it has just evolved. Not sure of the next step but the skills gained will not be lost.

          Microsoft should be given credit for evolving and not just beating the same old horse.
          MichaelInMA
          • This will not happen

            No way does primitive old Javascript get a mainstream seat at the table for anything other than web development. HTML5 is in its infancy as a presentation layer, and is certainly not appropriate to creating enterprise grade applications.
            Mac_PC_FenceSitter
          • XAML

            I left this out on purpose before but since you question it, XAML by some is considered a mature HTML5. Not sure if I agree but the idea has merits.

            I also left out MVVM. I wonder how many people reading this really know what that means.
            MichaelInMA
          • Highest paid programmers are Javascript programmers.

            Everybody is migrating to HTML5 because it's THE standard. The world loves standards because standard make things predictable. How would you like to drive a car which has the gas peddle to the left of the brake!

            As far as back-end programming goes, if speed is required, C or C++ is the standard.
            Tim Jordan
          • Right . . .

            Everyone now writes their back-office systems using C and C++ because they're the standard.

            What strange island do you live on sir?
            dinomutt
          • Re: Microsoft should be given credit for evolving

            Backward-incompatibility is not "evolving", it's "abandonment".
            ldo17
          • Star Trek Quote

            "the needs of the many outweigh the needs of the few" Leonard Nimoy's Spock in Star Trek II: The Wrath of Khan.

            Unfortunately that is what evolution is about and abandonment is part of it.
            MichaelInMA
    • 100% correct

      To release this puff PR piece about MS dev tools in the SAME WEEK that MS cancels the technet subscriptions? Perhaps Ballmer is paying more than developers, eh?
      solomonrex
      • Microsoft CANCELS technet subscriptions for ALL developers.

        EXTRA EXTRA READ ALL ABOUT IT.

        Microsoft has cancelled the technet subscription program for all developers worldwide. Microsoft really irks my with the way they treat us developers. FU Microsoft!
        Tim Jordan
        • technet was never targeted at developers

          MSDN, the subscription for developers, is not going anywhere
          vpupkin
        • Sir, you are obviously a mole

          And I really dig the glamour photo shot!
          dinomutt
    • Developers! Developers! Developers! Developers! Developers! Developers!...

      I'm sorry, I couldn't help but to think of Ballmer when I read this article, ahhh...

      Seriously though,

      I didn't understand why Brust was so full of praise for Microsoft's efforts at wooing developers at the beginning and then gave them a total pass at the end. Yahoo Email is currently the most used app for Windows Phone 8 and it doesn't even follow MS's rules.

      Apparently you aren't allowed to have additional command buttons on the screen, they are supposed to be hidden, but if you look at the top of the app there are 4 buttons. The number 2 most frequently used app was also in violation of MS's rules for apps.

      It sounds to me like MS's rules for WP8 apps are really strict and are really rankling some devs, especially the ones who want their apps to be an extension of the website, and they can't accomplish this without violating MS's TOS.
      Maha888
      • I have a Windows Phone

        And I can assure you, there is no Yahoo! mail application.

        And even if there was, this is totally irrelevant. MS design language is not forced on anyone by their development tools. MS has ways they would like apps to look, but they don't actually force anyone to make their apps look that way.
        x I'm tc
    • When will Microsoft start caring about the devs?

      As a Windows Phone developer, I'm constantly irritated at the "workarounds" I have to implement in order to get something working half-a$$. Microsoft pretty much abandons WP7, but still expects the developers to support it. With WP8, Microsoft brings a miniscule part of the WinRT API over and still screws us with implementation and memory restraints on background tasks (15 MB is NOT enough). We tell them what we need and it seems that they don't really care. If Microsoft actually catered to the developers that are taking the time to write these apps and attract people to to the Windows platform, then maybe more people wouldn't go searching for alternatives.
      sinclairinat0r
      • Microsoft's corporate mission seems more important to developers

        Microsoft changes so many things so frequently, it's actually quite annoying. I learned programming on the MS platform but right now I'm an Android developer.

        I wanted to write for Windows Phone but MS turned me off when it was clear that they were only concerned about the big outfits. Apple and Google made it easy for the indi developer to write for them. And their app stores are evidence of that.

        Even Blackberry makes it easy for developers which is why their store swelled to 75,000 apps so quickly. Say what you want about 75% of them being Android. Bottom line is a "developer" regardless of the language chose to port to Blackberry (which I must admit is stupid easy if you're an Android dev).
        tallbruva
        • That should have read...

          Microsoft's corporate mission seems more important "than" developers
          tallbruva
  • Superior tools my a$$

    MS tools have historically been behind what Borland provided. Both Visual C and Visual Basic were horrid environments up until at least mid 90s. MS has never been about quality, just quantity. Quality and change only came about after plagiarizing the competition, or forming strategic alliances, getting all the IP you can out of it, then bringing out a good product (Sybase --> SQL Server). And changing all the APIs every couple years to screw your competition.
    Non-Euclidean