Microsoft Releases WTL To SourceForge
prostoalex writes "Microsoft's WTL (Windows Template Library) toolkit source code has been released to SourceForge.net [also part of OSDN, like Slashdot.] InternetNews explains that the toolkit allows a Windows developer to create quick GUIs in C++. According to the project page, WTL extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more. WTL is licensed under CPL, which is the license Microsoft chose for the SourceForge release of the WiX installer."
Microsoft denounces OS yet they contribute... Odd.
Props to GNAA!
Microsoft buys OSDN (and Sourceforge, Slashdot, etc)?
I can't wait to find out how microsoft is screwing me today (tm).
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Guys, i'm scared, really scared.
I mean, do I download it? Do I use it? Do I trust it?
All of a sudden nothing makes sense anymore!
Error 407 - No creative sig found
First Windows 2000, now this.
Oh the angst! Thousands of geeks struggle valiantly for a way to spin this so as to make Microsoft's release of this software for free look bad... hmmm... criticize the license terms? chant "embrace and extend"?
Oh, fuck it.
"Bill gate is a poopyhead, neener neener neener!"
WTL, which is basically a one-person project at microsoft, doesn't really get enough attention of developers.
It's a great lightweight wrapper around Win32 API, does not depend on any external DLLs (like MFC etc).
The only problem with WTL, up to including this release, is that there is absolutely no documentation - there
are a few projects documenting WTL3.0 or older exist, but they are not maintained anymore. Hopefully once this
project is on sourceforge, people will be fixing bugs *and* writing documentation. I'm very looking forward
to this.
The WTL proves that there are some *very* good people at MS: They basically took MFC and redesigned it around templates and the STL; no MFC runtime dlls and even VC6 produces tiny exes that run wickedly fast. They even wrote a VC6/7 addin so you can use the project wizard to create a boilerplate project as a starting point. And to top it off, the two developers were (are?) very active on the ATL mailing list and responded to questions/complaints/bug reports. Way to go guys!
... has the same interface. Go figure.
That all said, Microsoft did practically everything they could to squash this project; it was originally installed as an "oh, by the way" in their SDK package (and not enabled by default...you had to go hunting for it) and then they removed it entirely. Official communcations always seemed to revolve around the message that "We acknowledge that it exists, we would prefer you not use it, and no we're not going to tell you why." I guess they had some fear that everyone was going to dump the millions of lines of existing MFC code for much better written code that
Trust me from one who has used this library in apps that reached production: this is a true gem amist all the cubic zirconia that MS puts out.
WTL was always open source. It was distributed as a bunch of header files (along with some sample apps and visual studio wizards). The big test here will be if Nenad will accept (direct) contributions from the community, or whether the community will keep track of bugs and document stuff while Nenad will code.
Nenad is amazing and has really been the core developer of the project (he is now the project admin at sourceforge), but it will be interesting to see the OSS process at work here.
Microsoft + Sourceforge = The End Of The World
-Imidazole2
Really. MFC works okay if you want stay on the path, but get off the beaten track a bit - say to implement something in OLE like an OLE message filter - and it becomes a nightmare. Half the methods are not virtual compelling you to cut and paste whole classes to change a few lines. I've literally copied huge chunks of MFC to change a function that I could not override.
And MS in their wisdom have tried to merge MFC & ATL into atlmfc with duplicate classes galore. Now they're trashing ATL by deprecating some of the tried and trusted conventions such as object maps in favour of meta info that ties ATL tightly to VC++7.x. Still, ATL is fast and produces very tight code compared to MFC.
WTL works much like ATL, and neither is particularly hard to learn assuming you've seen any STL, MFC, wxWindows etc. in your life.
Interestingly, no one has pointed out that WTL depends on ATL. The CPL'd WTL depends on the proprietary ATL. So its use is rather limited. It would be great to see MS open up MFC, ATL and WTL since it would make porting apps to Wine a lot easier. Perhaps that's why it is unlikely to ever happen.
I started Win32 programming with WTL. No MFC experience at all.
.NET seeps deeper into the Windows Platform, I am afraid that MS is going to try to root out such a quick and painless way to whip out applications in unmanaged code. There's life in C++ yet, I just don't know if MS believes that.
For those of you who may be curious about this technology, here are a couple of points:
WTL is a collection of header files with the source inlined in. Personally I find the source reasonably understandable. I have had not much trouble stepping through and debugging WTL calls.
It's a light wrapper around the Win32 API. Some people commented on the lack of documentation regarding the WTL. The truth is, MSDN's API and common controls documentation pretty much covers what you need to know. For most cases the library does little fudging between your app and the API behavior.
For the application I am coding, I use strictly STL strings, containers, and various Boost libraries. With WTL, I don't feel that I am paying for things I am not using like CStrings and such. For non-UI OS calls, I use ATL. In short, WTL, STL, & ATL let me produce efficient code without worrying about reinventing solutions.
One thing I am worried about is the future of WTL. Open-sourcing is great, but I don't know what direction the Windows API is heading. As
I assume that Microsoft has twice chosen Sourceforge to host their OSS projects because of the visibility and credibility it lends their open source steps. However, MS certainly doesn't need SF's resources. Does anyone know if MS has made any donation -- monetary or otherwise -- to SF?