Microsoft Still Has the Best Development Platform

As many readers of my blog have come to know, for the past couple of years, I’ve been extremely impressed by Apple, both in hardware and software. They simply make the best hardware on the planet and while everybody seems to think their hardware is “overpriced” nobody comes remotely close to Apple’s prices when they attempt to make similar quality products. Likewise, Apple’s software has been top notch. After being a Windows user for more than 17 years, I made the switch to OS X about 18 months ago. Since then, I’ve been floored by how smoothly OS X handles everything. Things run noticeably better than XP or Vista. Everything from simple animations, to switching between programs, to connecting a projector or 2nd monitor, to managing 20 open windows and playing audio/video files. When it comes to home-productivity software, such as Photo and Movie management, nothing comes remotely close to iLife, which is included free with every Mac.

But there is an area where Apple falls short in a significant way. With Axosoft now having experience developing for Windows, Web and iPhone, I can authoritatively say that Apple’s developer platfrom has some major shortcomings. While X-Code and Objective-C provide a reasonable environment for creating OS X and iPhone apps, Apple has virtually no tools for web development and largely relies on the open source (LAMP) world for web-based apps on its platform. That is a big surprise considering NeXT’s WebObjects was considered one of the premier web development tools when Apple purchased NeXT. In fact, back in 1996 when Apple bought NeXT, Dell operated it’s ecommerce site, Dell.com, using Apple’s WebObjects development platform, something Apple seems to have abandoned. But it gets even worse. Objective-C is an extremely verbose language which forces software developers to worry about a lot more things that modern languages, such as Java and C#, automatically take care of for developers. Memory management is tedious and frustrating, especially for those who come from a modern language background. And if you want to develop a database driven application, fo-get ’bout it! Apple’s Core Data APIs are designed for single-user local data storage. There is no Apple-based APIs for interacting with any client-server database systems like MySQL, SQL Server or Oracle.

Right now, Microsoft’s exceptional development tools is the best thing it has going for it. From top-notch integrated development environment (Visual Studio) to modern development languages (C#), to a great Web development story (ASP.NET, web services, IIS) and database development (SQL Server & APIs to access other systems). Microsoft is still the only company with the complete development package. Using Visual Studio and .NET APIs you can build desktop apps, web apps, database driven apps (regardless of which DB system you connect to) and web services. This development advantage is the biggest thing that is keeping Microsoft very relavent and in the game at a time when most of the product innovations are coming from Apple and Google.

With Windows 7 addressing much of the minor usability problems that plagued XP and Vista, Microsoft is still in a pretty good position. Unfortunately, the same can’t be said about Dell, HP or other WinPC hardware makers, as it still makes more sense to buy a Mac, even if you plan to run Windows. And while Microsoft is in a pretty good position for now, they still have to remain paranoid, because you never know if somebody in one of those super-secret rooms at 1 Infinite Loop might be working to complete Apple’s development story. After all, the iPhone caught everybody by surprise!

It’s exciting to see the tech industry dominated by 3 major players now, each giving the others lots of reasons to stay on their toes. If it wasn’t for OS X, we’d all be stuck with Vista for another 5 years.


Categorised as: Development, Tools


  • http://computeristsolutions.com josh

    Absolutely agree! ..and I’ve tried to find close or better alternatives. The VS/.Net stack just outclasses everyone even alternatives I like a lot.

  • Russell

    Ahem. Try Ruby on Rails.

    • http://www.axosoft.com Hamid Shojaee

      You are surely not suggesting that Ruby on Rails provides a more complete development solution than .net?

      • http://youngbloods.org/ Carl Youngblood

        I would absolutely agree that Ruby on Rails provides a more complete development solution than .NET. But this really is a religious war/cathedral vs. bazaar kind of an argument, and I don’t think I’m going to persuade you. I have met many .NET developers who were absolutely floored by the productivity boost they achieved with Rails, but it’s like switching from working in an assembly line to a woodshop. Things aren’t quite as unified and dictated but the tools are very powerful and flexible.

  • http://rocksolid.gibraltarsoftware.com Kendall Miller

    I think you’re dead on about the power of the development stack. I find that people just don’t “cross shop” between open source and Microsoft offerings, to the detriment of OSS. Coming from the Microsoft world I had a lot of trouble on a recent project we did that was on the LAMP stack because of the lack of cohesive tools. It wasn’t that you couldn’t get a tool that did X – there were probably 20 of them, along with five sites arguing about which exact one had the right philosophy. The problem was that none of the tools integrated. Far from the world where I had an IDE that would let a developer go through everything from requirements to push to test and production. All of these things available on the Microsoft platform reduce the friction of creating repeating processes that produce good results for real people.

    And the best part is that there really is a vibrant ecosystem within the Microsoft ecosystem: Axosoft is a good example of that where you both compete with Microsoft and enhance the platform at the same time. Microsoft makes Visual Studio highly extensible and extraordinarily documented so you and 100 other players can extend and compete both with them and with each other to make sure the environment is solid.

    That all said, I am heartened that Microsoft has appeared to put the engineers in the back seat for a while and asked some UX folks to drive the OS forward with Windows 7. The results are an impressive amount of polish that may not have any objective engineering value but has the subjective value like feeling a door handle made out of billet aluminum: It’s still just a door handle, but it feels like quality through and through.

  • http://compactcode.com Shanon

    If your looking for Apple to lay everything out on a silver platter then yeah you are going to be dissapointed.

    Having said that I think that you underestimate the power of open source web frameworks out there. Go look at grails, it’s a full stack web framework that runs on top of the java virtual machine. It leverages all of the cutting edge java technologies like spring and hibernate and even comes bundled with an embedded database and webserver. Compliment it with an IDE like Netbeans or IntelliJ and I guarantee it will blow your mind.

  • http://www.loxal.org Alexander Orlov

    …have upgraded to Snow Leopard yesterday. Apple’s OS crashes permanently when trying to access my UMTS Internet stick. So I have to start Windows 7 under VMware to use my Mac…! I bet Apple has known about this problem before releasing their crappy OS as everybody has problems with G3/UMTS sticks :(

    …just a comment regarding Apple’s productivity, maturity, and reliability.

  • http://gochev.blogspot.com JOKe

    “Microsoft is still the only company with the complete development package ” ?? WTF ? what about SUN Microsystems? :)

  • John

    Apple certainly doesn’t feature a home-grown language, development environment, and server infrastructure for its products. I’m not sure that is necessarily a problem, however. I spent 8 years developing large scale Java web applications on OSX with an Eclipse Tomcat/Java environment for deployment under both Solaris and Linux. OSX actually worked in my favor, offering tools that wouldn’t be in a base windows install (unix shells, scripting languages, etc) that better matched my deployment infrastructure.

    Obviously, if you are looking for a runtime, development environment, database, production server OS, framework, web server, and same language between desktop apps and web apps, you’re going to choose a microsoft stack. I don’t fault Apple for not reinventing the wheel for server development environments, especially with all the good alternatives out there.

  • John

    SSH+Screen+Vim and Perl… who needs anything more??

  • Mark

    “Obviously, if you are looking for a runtime, development environment, database, production server OS, framework, web server, and same language between desktop apps and web apps, you’re going to choose a microsoft stack.” Nope. Gonna still choose Java.

  • Mark

    VS.Net top notch? No. Good. Sure
    ASP.Net, IIS great? Nooo. Goo?. More like ok.
    SQL Server? The latest version is better.
    You didn’t mention TFS (I wouldn’t either).

    Who cares if it has a complete stack. My “complete” stack is better. AND I get to choose. Microsoft has no development advantage. They do have an advantage in that, just like you, many people THINK it is better.

  • http://www.jondavis.net/techblog/ Jon Davis

    Welcome back to the dark side. It’s refreshing to hear you say all this because I didn’t have time to get into Xcode. You and your team (hearsay from my friend David Higgins) were one of a handful of influences that made me really very curious about OS X. I still am, but I’m glad I didn’t abandon my roots on the Microsoft stack.

  • http://solitarygeek.com James

    The world is much more than “Microsoft” and “Windows” my dear friend.
    I hate using applications nowadays if they are not “cross-platform”.
    (Yes, you are right, I do all my development on “Ubuntu”)
    You know who rules the application server market? It’s Websphere & Weblogic and not IIS!
    Even in the web server space, Apache is the undisputed leader.
    And you know what most people prefer when it comes to the server operating system to host mission critical apps? It’s Linux and Unix (Solaris).
    And that’s why most enterprise applications are developed using Java.
    And that’s why most web applications are developed using PHP, Python, Ruby etc.
    We cannot blindly ignore all these great technologies for the sake of Microsoft.
    Unless Microsoft creates softwares that can be used on any platform, I wouldn’t go for their stack.

  • http://www.simpleprojectz.com Alberto

    Are you sure your article title its about the Development Platform? I disagree with you a lot. Maybe, if you change the title to “Microsoft Still Has the Best Integrated Development Environment” it will get closer to what you points out. But however it is a fact that the .NET platform isn’t the best at all. About Apple, ok, that’s the greatest thing about Mac, it is not about development, it is about use. So yes the development tools for Apple platforms aren’t the best, but it doesn’t mean platform doesn’t work, otherwise the cutest OSX should not be better than the greatest Vista -but it is not the case right?

  • http://www.brainbankinc.com Karell Ste-Marie

    Respectfully,

    If the Microsoft Platform is so great, why didn’t you do a Windows Mobile Phone app instead? Why go iPhone?

    • http://www.axosoft.com Hamid Shojaee

      Karell, that’s easy…that’s because the Microsoft Mobile platform blows. Still, MS is the only company with the full spectrum of dev tools.

      Hamid

      • http://www.brainbankinc.com Karell Ste-Marie

        Meaning that the .NET Mobile Platform is not good?

        I don’t have any experience there so I can’t disagree but I know for a fact that no platform is perfect.

        I’d go Linux with some of our products but then I wouldn’t have anyone to call at 3am when it crashes.

  • foobar

    Late to the party, but oh well :)

    Objective C is verbose because, well, it needs to be. Memory matters on mobile devices still.

    As for the ludicrous assertions from some of the replies here, it’s obvious who here only does web development.

  • Pingback: Microsoft Still has the best development platform « Chicago Mac/PC Support

  • Guy

    Some fair points, but how does it make mores sense to buy mac hardware when you factor in initial cost and replacement parts/upgrades?

  • http://www.e-rafal.com Rafal

    Why waste time, effort, and money trying to create your own development platform if there are great tools that are available out there already?

    I used to be a .net, asp.net developer. Now I use open source solutions. Why? Because they make my life easier and work better than the .NET platform.

    Plus, putting Microsoft’s tools aside, one will realize what is actually available to help them out, instead of using a tool that was given to them on a platter, and not knowing better.

    • Anonymous

      Rafal, What open source solutions do you use?

  • http://www.facebook.com/karell.stemarie Karell Ste-Marie

    There is no perfect development stack, they all have their flaws. Just like every culture has flaws, every person has flaws, etc…

    However, my advice would be – pick the flaws you know and are comfortable working with that will bring you the results you need.

    Picking a stack is like making other choices in life – do your homework and then make your choice.

    In the middle of the desert, a hairdryer will be useless…

Switch to our mobile site