Microsoft vs. Standards

Here is a fun game for long car rides: One person names a respected standard implemented by dozens of IT companies, and the other person names Microsoft’s competing technology. Example: MPEG Audio (MP3/AAC) – Windows Media Audio.

(When you have run out of examples, you can try this game with other major players in the IT business.)

Let’s play this game in the comments to this blog entry: Just add as many of these pairs that you can think of – extra points if Microsoft’s technology has a closed specification.

34 thoughts on “Microsoft vs. Standards”

  1. Why stop at Microsoft?

    OpenID
    -Microsoft Passport
    -Facebook Connect
    -Google Account

    LDAP
    -Microsoft Active Directory

    RADIUS
    -Microsoft Active Directory

    ECMAScript
    -VBScript

    DNS
    -WINS

    IMAP
    -MSAPI (I might have the acronym wrong there)

    HTML
    -Internet Explorer (Admittedly getting better once you’re past IE6)

    XMPP
    -MSN Chat
    -ICQ
    -Yahoo Instant Messenger
    -Ok, so Jabber/XMPP came around after they were already in the market.

    Java
    -ActiveX (Ok, I’m cheating a bit by crossing Java’s “applet” functionality with their serlet functionality; as applets, Java doesn’t work that well, either.)
    -J#

    C
    -C#

    MPEG2 program stream
    -AVI (I think; I’m a little unclear there.)

    MPEG2 transport stream
    -ASF (I think; I’m a little unclear on that one)

    MP4 container
    -AVI/ASF

    MPEG/MPEG2/ video
    -WMV(whichever revision you care to consider)

    TIFF
    -DIB/BMP

    ISO9660 Rock Ridge(?) extensions
    -Microsoft Joliet extensions to ISO9660

    POSIX
    -NT (Yes, they ship a POSIX layer that connects to CSRSS, but have you looked at the programmatic restrictions and limitations involved in using it? Bleh! These aren’t problems with POSIX; they more or less walled it off from a fair bit of the rest of the system.)

    I’m out. I’m trying to think of what portable vector graphics formats might have existed prior to Metafile, but I’m drawing a blank.

  2. From the videoconferencing world:

    MPEG-4 AVC a.k.a. H.264 -> RTVideo a.k.a. VC1 a.k.a. Windows Media Video 9.
    MPEG-4 AAC -> RTAudio a.k.a. Windows Media Audio.
    SIP/H.323 -> Microsoft Office Communicator.
    RTCP -> Microsoft’s version of RTCP.

  3. I’d like to have one to compare MS Office’s ubiquitous proprietary document formats against but the whole productivity market had always been about vendor lock. Open Office is the clone, but with evil/good polarity reversed.

    Guess there’s always those deeply obfuscated “open” XML ones they tried to force through standards. But that one’s dead, right? Let’s hope so.

  4. Windows does accept forward slashes in its filenames as long as you put quotes around them in the command line so it doesn’t mistake them for switches, and you can work around the A-Z: drive crap with the alias command. I still think Windows itself is mostly crap though.

  5. Lots of the posts here are only “legacy” pieces that date back to CPM/DOS and have been superseeded by something else.
    Example:
    Backward slashes. Windows accepts forward slashes in almost every program (cmd.exe being one notable exception that doesn not accept them everywhere) and of course in every API.

    A: ..Z: vs mount-it-anywhere: Mountpoints (aka. Reparse points) are supported since Windows 2000 I think…

    Direct3D came to life because at that time, OpenGL was very limited in what it could do and it did target the professional 3D market, not home computer systems.

    NFS vs SMB: At the time SMB was developed, NFS was at Version 2 I think, which couldn’t do anything like ACLs, security descriptors or alternate streams. So, again, MS had to develop something else.

    I sometimes wonder what people would do if they didn’t have Microsoft to bash. Sure, not everything MS does is good, but most of the “incompatible” standards came to life because the existing standards didn’t meet all the requirements that were needed. The “evil intentions” are certainly a minority

    • “MS had to develop something else.” … Wrong! They had the option to extend it, to improve on it, to push the development forward. They didn’t, they had to invent their own wheel.
      Only forced by other heavyweights like for example Google and their development speed for example on Chrome/Chromium forced them to reconsider.

      I can still recall Steve Ballmer & Co. shouting “Linux is a cancer”.

  6. LF vs. CRLF is a funny one: ASCII says CRLF, so Microsoft (and many RFCs, eg. SMTP, HTTP) get that right.

    It’s just that both UNIX and Mac preferred to strip one of the two characters to save some (back then precious) space

  7. About CRLF v.s. LF… there are systems that use only CR instead of CRLF or LF…

    About drive letters v.s. mount points:

    The elegant solution is to do it like OpenVMS and AmigaOS does, i.e. allow any combination of characters instead of just one single letter. Combine that with AmigaOS assigns or OpenVMS logicals and you have a better solution than using envirement variables for various paths… Add a few special assigns that the system automatically generates and you don’t need api’s to do stuff like knowing where the running program is stored on disk (on AmigaOS >= 2.0 progdir: points to where the binary is)…

  8. Darkstar: The NT kernel actually does not accept forward slashes. Forward slashes are changed to backslashes by kernel32.dll and ntdll.dll when interpreting your passed filename. (Another thing it does is handle current directories, which don’t exist in NT. The NT file API acts like Linux’s openat, chmodat, etc.)

    This is why you can’t open filenames longer than MAX_PATH characters if you have forward slashes. Using the \? prefix to allow up to 32767 characters bypasses kernel32.dll and ntdll.dll filename translation, so it more or less gets passed to the NT kernel directory. The NT kernel and/or the file system driver will reject the forward slashes.

  9. @mount vs. drive letters:
    – volume ids work in place of them (FOO:)
    – dos up to 6.22-or-so can mount (the command is called ‘join’)

  10. @Terry:

    The ACL thing is more or less inherited from VMS, like most other stuff that first apperad in NT (i.e. didn’t exist in Win 3.x).

    I assume VMS wasn’t first with ACL’s…

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.