Why copy Microsoft?

Why copy Microsoft?

Summary: In a previous blog entry, I talked about why I thought Microsoft wouldn't have trouble convincing Windows users to upgrade to Longhorn. As I also claimed that older versions of Windows are the biggest competitor to Longhorn, the Talkbacks started discussing Linux, believed by many to be a credible alternative to Windows.

SHARE:
167

In a previous blog entry, I talked about why I thought Microsoft wouldn't have trouble convincing Windows users to upgrade to Longhorn. As I also claimed that older versions of Windows are the biggest competitor to Longhorn, the Talkbacks started discussing Linux, believed by many to be a credible alternative to Windows.

I argued in the Talkbacks that the only way that Linux would have a chance of being a credible alternative was if they worked harder at co-opting Windows technology. For ideological reasons, however, there was no interest in doing that, so I doubted Linux would make much of a dent. As someone rightly asked, though, why would Linux want to emulate Windows?

It's not a matter of whether Linux, or the Mac for that matter, should emulate Windows. They don't have to be Windows to compete.

Rather, they should endeavor as much as possible to make it easy for Windows developers to target their platform. The reason is simple: Windows is a standard, however de facto, and asking all those Windows programmers to reorient themselves around a Unix-based platform (or a hybrid one like the Mac) is like asking French people to start speaking English.

In fact, that's a good analogy, because think about all the support infrastructure that centers around the language spoken by the inhabitants of a particular region. If the French were to suddenly give up the language of their ancestors in favor of English, all the road signs would have to change, all the documentation on packaging would have to change, all official documents would have to be translated, bookstores would have to throw out all their old books and replace them with English ones, etc., etc., etc. In short, it would be a massive, and extremely costly, undertaking.

The same applies to shifting from Windows to Linux. Windows and Unix-family OSes live in two different programming domains. Granted, they have similarities, as do English and French, but I would hesitate to say that a Windows programmer could shift into the Unix world without any difficulties (and vice-versa). There's plenty of evidence of that difficulty. Though Linux fans hate to admit it, it's fairly clear that Linux growth on the server side has mostly been at the expense of the traditional Unices. I would argue that this is because it is so much easier to shift from Unix to Linux, and harder to shift from Windows to a Unix-family operating system.

This isn't about which platform is better or worse for development. I have my opinions, and so do you. It's about cold, hard cash, and the fact that whole industries spend billions on a particular standard (however de facto) and there is expense in shifting from that.

Of course, some will point out that there are large swathes of the world just starting to dip their toe into the IT waters. Developing economies have less of an installed base, and thus incur less costs in choosing an alternative platform. What's to prevent them from choosing Linux?

More on that to come.

Topic: Operating Systems

John Carroll

About John Carroll

John Carroll has delivered his opinion on ZDNet since the last millennium. Since May 2008, he is no longer a Microsoft employee. He is currently working at a unified messaging-related startup.

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

Talkback

167 comments
Log in or register to join the discussion
  • Windows programmers would have to learn how to code

    So what if Microsoft are a "de facto" standard? The rest of the coding world - especially in projects that matter - prefer to adhere to world wide technical standards. ANSI C. for, example. The biggest task faced by Windows programmers stems from the fact that Microsoft programming language syntaxes have been deliberately corrupted by Redmond into Microsoft-only dialects. If you want to see looks of pure confusion, hang around any team porting Windows apps to any other platform. It's a shock to Microsoft programmes when bloated, inefficient code isn't acceptable. It's a shock when standard library functions in properly standardised language don't behave like bastardised Windows functions. The one and only time I had to write code that was compiled with a Microsoft compiler, said non-standard Microsoft compiler "optimised" away an essential right shift operation with an "equivalent" and the embedded system crashed and crashed and crashed. When the source code is correct and its a non-standard compiler which is introducing the errors, you KNOW you're using a noddy Operating System.
    whisperycat
    • We know which language is correct.

      You wrote:
      It's a shock when standard library functions in properly standardised language don't behave like bastardised Windows functions.

      Yes, and it's a shock when a French person arrives in the US and finds that... almost no one speaks French! French is perfectly standard, and anyone who does not speak French has a lifetime habit of error to break.

      When someone from the US arrives in France, he almost invariably has a moment when he realizes that someone has listened to what he said in English and not been understood. So he speaks LOUDER and slowly. Then finishes speaking looking at his auditeur with concern and doubt.

      Suddenly, a whole new world has opened up, and it is not entirely a pleasant place. People do so many things just plain wrongly.

      Sounds like you've been the discomfitted tourist in the land of Windows.
      Anton Philidor
      • I'd picture it more like english slang

        Slang in the english language can get so bad that you can't make heads or tails of it. There's a good comercial that illustrates this. The one with the green shoes and the excutive saying the kids are calling it "Sick" and they think that means good. So Microsoft slang is making the language problematic.

        Or we could look at the other side of the argument. Maybe Microsoft is just today language and the standard is like old english, the type you see when you read Shakespear. Shakespear is difficult to read at best though it do use the proper language.
        voska
        • What is the "proper language"?

          If Unix is the "proper language", then any difference is other than proper. If Microsoft provides the "proper language", then any deviation is other than proper.

          If each provides the proper language in its realm, then both are proper languages.

          Is Unix a realm? Yes. Has Microsoft created a realm? Yes.

          When in Rome...
          Anton Philidor
          • I think you nailed it

            When in Rome...

            That suits it well.
            voska
          • Windows isn't a realm.

            It's a banana republic run by a bunch of crooked, corrupt, petty dictators. They have no respect for quality or security standards or laws regulating fair business practices. They don't think they need to answer to anyone. It's not a place I would like to visit, let alone live or work there. If you need to spend time there on business, buy a round trip ticket, get out as soon as possible, and don't drink the water.
            Immanuel Tranz-Mischen
      • I don't think a Frenchman would be surprised...

        I don't think a Frenchman would be surprised that people in other countries speak other languages.

        Americans, on the other hand, usually are. Most of them are convinced that somehow the rest of the world speaks English.
        figgle
        • That may be because...

          ...the rest of the world DOES speak english. English is the most widely spoken language in the world. America practically runs the world, so the rest of the world needs to get up to speed and learn english. The only people who seem to have a problem with the english language are american students.
          Spoon Jabber
    • And all of that matters in what way?

      Not even going to bother arguing right or wrong with you, the fact remains Windows is the standard in the PC world. Saying there are things wrong with it does nothing to change the facts.
      No_Ax_to_Grind
      • Windows is NOT a standard!

        What crap! Why does JC keep saying this?! IT drives me nuts!
        So Bit: where is active directory or the mmc on linux? Why can't I run ms defrag on OSX? Where is IE for OSX, or Solaris? Can I run WMP on BSD? But doesn't a standard apply to *ALL* computing environments, say, like something such as TCP/IP, instead of Microsoft-only or mostly Microsoft-only environments?

        [i]"Windows is the standard in the [b]dsesktop[/b] PC world.[/i]

        Now THAT'S more like it! Microsoft is only [i]slightly more standardized[/i] on the desktop client side of the PC world. Nothing more. If Microsoft is the standard, then why is the internet run off mostly *nix/*nux boxes??? Why are more than 70% of all websites run off of Apache if IIS is the supposed standard? So the internet has been proprietary all along, and various engineers worldwide have all somehow worked together on proprietary formats to jointly create the Net as we have it today, even though it was really Microsoft all along that was the standard??? Pleeeeez. If Windows were any kind of a standard, then no coder would EVER encounter brick walls when trying to interface with it. There'd be no reason whatsoever for the EU to force Microsoft to open up their protocols, being that they're all standardized...right?
        And why doesn't Microsoft run the big iron then? Why are company backends never pillared on Windows?
        Jeff Spicoli
        • Windows is substandard. (nt)

          -
          Immanuel Tranz-Mischen
        • Different Standards

          I suggest you look up the phrases "de facto" and "de jure". And desktops outnumber servers by a long shot.
          JimSatterfieldW
          • Desktops....

            Desktops may outnumber the servers, but isn't it those servers that are responsible for the desktops even being able to be on the Internet consistently?
            More does not imply better.
            sbarringer@...
    • You completely miss the point

      >> The rest of the coding world - especially in projects that matter - prefer to adhere to world wide technical standards. ANSI C. for, example <<

      Sure, you can write your hello world's in completely standard, cross-platform C/C++. But you CANNOT write a graphical Windows application of any usefulness using only standard, cross-platform code. You need to use Microsoft APIs (Windows, MFC, ATL, .NET, etc.) that, to my knowledge, have not been ported (even as wrappers to equivalent Linux API calls) to any flavour of Linux.

      Java is simply not an option in many cases (esp. when you have hundreds of thousands of lines of perfectly good C++ code..)
      d_jedi
      • Re: You completely miss the point

        >>But you CANNOT write a graphical Windows application of any usefulness using only standard, cross-platform code. You need to use Microsoft APIs (Windows, MFC, ATL, .NET, etc.) that, to my knowledge, have not been ported (even as wrappers to equivalent Linux API calls) to any flavour of Linux.

        I think you don't have any idea what are you talking about... I hope you are not a programmer...
        frrossk
        • Why don't you tell us why you say that?

          Please do.
          Joeman57
          • There are other libraries to draw from

            if you want Windows apps, which have the added benefit of working on other platforms. For instance, there is GTK. If you program for that, it will work on any platform so long as you have a GTK library for that platform. And GTK does have Linux and Windows libraries (as well as many others) that you can freely distribute so long as you abide by the rules of the LGPL (and there is no reason why those rules should be a barrier to proprietary software in this case, since in general you would not want to change the GTK library's source code anyway). QT would require a bit more overhead than GTK to get its programs working on Windows, but that is certainly possible as well (although you would either have to abide by the GPL in this case, or purchase a license from Trolltech). Also there is Kylix from Borland.

            I am not a programmer, yet even I know this.
            Michael Kelly
          • Good answer

            I wanted to hear the reasons since there was no reason the post, only a jab at the previous poster.
            Joeman57
    • Proof

      Thank you for providing the proof of Carroll's article. You gripe on purely ideological points and ignore the real world. "The rest of the coding world.." is a minority, in case you haven't noticed.
      JimSatterfieldW
  • It's about the most compelling platform

    With Windows and other platforms, it is not just a matter of programming for platform A vs. programming for platform B: it is a matter of programming for overall the most compelling platform. Many of you will notice that MS is busy trying to appeal to and garner feedback from programmers ? not end users at this point. Why? Because programmers are the ones who create applications, and applications are what (above everything else) drives users to choose an OS. MS is therefore pulling out all the stops (within the limits of time constraints and quality) to provide a whopper of development platform in the way of Longhorn. It really irritates me when Mac proponents say that Avalon is roughly on par with the OS X graphics system, when even the Win 2000 graphics system is slightly better than the current OS X graphics system ? except maybe in the area of hardware acceleration. Quite simply [url=http://www.ondotnet.com/pub/a/dotnet/2004/03/08/winfs_detail_3.html?page=1]Avalon goes way beyond the graphics system of OS X[/url] and that of any other OS. (Note: Mac proponents confuse spiffy GUI design with graphics system capabilities ? where the Mac is admittedly better in the first department, but not in the second depart. On this point, I hope MS gets great designers to put a lot of polish on Longhorn ? if for no other reason than to shut Mac fans up over this issue.)

    It is already very hard for other OSs to compete against Windows due to Windows? great support of legacy Windows applications. But aside from this, MS is structuring Longhorn to be a next generation OS platform in which [url=http://msdn.microsoft.com/Longhorn/productinfo/conceptvid/default.aspx]developers will not only be able to create new eye popping, highly capable applications[/url]: MS also wants to ensure it can allow developers to do so relatively easily. It is very important to MS that developers can create very capable applications with relative ease on Longhorn: because if MS is successful at this, it will significantly decrease many of the economic reasons to even consider developing for other platforms. Why take 12 months to develop an application Linux or the Mac, when you can do more compelling work in about 3 months on Windows?
    P. Douglas