Uses Open Source Microsoft code

When Google released its Chrome web browser not too long ago, it of course emphasised that the browser was an open source product. The browser contains 24 parts originating from 3rd parties, and to some surprise, one of those parts comes from one of Google’s biggest enemies – Microsoft.

Scott Hanselman dove into Chromium’s source code, and found out what Microsoft open source code is tucked away, deep inside the warmly welcomed browser. As it turns out, Google’s Chrome makes use of the WTL, the Windows Template Library, which was released as open source in 2004. WTL is licensed under the MS-PL, which is more or less Microsoft’s equivalent of the MIT license. What is WTL?

WTL is a C++ library for Win32 development and is kind of like MFC (Microsoft Foundation Classes), but a lot more lightweight. WTL embraces ATL (Active Template Library) which is a series of C++ template classes made to make COM development easier. It was more or less patterned after the STL (Standard Template Library).

May 2004 is a long time ago in Computerland (heck, John Kerry still thought he would become the next president of the United States), and as it turns out, the Windows Template Library was one of the first open source Microsoft projects.

[WTL] was one of the first if not the first OSS things from Microsoft and it was a tough sell. There was a meeting with some bosses where we were presenting 3 potential OSS items. I guess it was the first “real OSS” with joint MS/Community involvement as opposed to just us posting something externally. WTL was the only one that got approved.

It’s always interesting to see open source at work. Hanselman’s article is an interesting read, as it takes a closer look at how, exactly, the WTL code is being used by Chrome.

54 Comments

  1. 2008-09-16 2:20 pm
    • 2008-09-16 2:22 pm
      • 2008-09-16 2:26 pm
      • 2008-09-16 2:33 pm
        • 2008-09-16 3:51 pm
          • 2008-09-16 3:55 pm
          • 2008-09-16 4:05 pm
          • 2008-09-16 6:14 pm
          • 2008-09-16 7:10 pm
          • 2008-09-16 7:41 pm
          • 2008-09-17 5:37 am
          • 2008-09-16 6:09 pm
        • 2008-09-16 3:54 pm
          • 2008-09-16 4:36 pm
          • 2008-09-16 6:17 pm
          • 2008-09-16 6:37 pm
          • 2008-09-16 6:48 pm
          • 2008-09-16 11:11 pm
          • 2008-09-17 11:08 am
        • 2008-09-17 7:04 am
      • 2008-09-16 2:37 pm
        • 2008-09-16 6:50 pm
      • 2008-09-16 6:14 pm
      • 2008-09-18 2:55 am
      • 2008-09-19 1:36 pm
  2. 2008-09-16 3:50 pm
    • 2008-09-16 3:58 pm
      • 2008-09-16 4:16 pm
      • 2008-09-17 11:06 am
  3. 2008-09-16 4:10 pm
    • 2008-09-16 7:38 pm
  4. 2008-09-16 4:18 pm
    • 2008-09-16 4:34 pm
      • 2008-09-16 4:46 pm
        • 2008-09-16 4:50 pm
          • 2008-09-16 4:53 pm
          • 2008-09-16 4:57 pm
          • 2008-09-16 5:05 pm
  5. 2008-09-16 4:37 pm
    • 2008-09-16 5:45 pm
      • 2008-09-17 3:24 am
  6. 2008-09-16 6:06 pm
  7. 2008-09-16 6:32 pm
    • 2008-09-16 7:08 pm
      • 2008-09-16 8:32 pm
        • 2008-09-16 8:52 pm
          • 2008-09-16 11:43 pm
          • 2008-09-17 12:54 am
          • 2008-09-17 12:30 pm
          • 2008-09-17 12:56 pm
          • 2008-09-17 4:36 pm
          • 2008-09-17 9:10 pm
          • 2008-09-16 11:49 pm
  8. 2008-09-16 11:02 pm