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."
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.
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.