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.'"
for some reason, i don't think it's a coincidence that both their sf projects are under a non GPL-compatible license.
Marge, get me your address book, 4 beers, and my conversation hat.
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 has been a bit of an embarrassment for Microsoft.
It started life as an MSDN sample app, but (to the surprise of everyone), people started actually using it. It fits nicely between the niches of MFC and ATL, supports a nice big chunk of what you need to do to get a desktop app running, and does it in a very clean, STL-friendly way. I read in an interview that some folks at MS thought it was a major mistake to release it; fortunately for them (at the time) it was pretty obscure.
There's some history of WTL at WikiWiki.
I remember way back then there were a couple of calls for Microsoft to "give it away" (in terms of control, not price--it's always been gratis), but I suppose the time hasn't been politically right within Microsoft until the recent popularity of their installer program release.
Sulu: Captain, it's the Borg, again. they want us to integrate their technology.
Spock: Captain, I expect they are doing this so they can still feel relevant in the future open-source, linux-dominated software world.
Kirk: Mr Sulu, set phasers to "ignore"
Sulu: Aye, Captain.
I don't know the meaning of the word 'don't' - J
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.
http://mediagoblin.org/
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
chicks dig coders!
Well now we KNOW you're lying.
paintball
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.
The bad thing is that this library is visual C++ only (by virtue of the fact that ATL is required and that ATL is visual C++ only)
Also, this is the exact same code that was available from MS for WTL before, its just a change of licence to the CPL
Unless microsoft opens ATL to the world also, this doesnt help anyone developing on non-MS compilers
Personally, I think they could gain a LOT of PR by open-sourcing more stuff.
Specificly, releasing (under the CPL for example) more code which is not important to M$ money making machine.
For example, open sourcing their C Runtime (the source code does come with Visual C++ but its missing some bits that only come in binary form)
Or open source the Active Template Library or MFC.
Or "open-source" the Platform SDK (i.e. all the headers and libraries)
Although I suspect that Open Sourcing things like CRT, ATL or MFC would probobly hurt MS since people would be able to use instead of to develop for those libaries.
On the other hand, there is no reason why someone cant come up with a free version of ATL or MFC or whatever that matches the published interface (there are already at least 2 free versions of the MSVCRT.DLL file, unsure exactly how complete they are, there are also free versions of the headers and libraries for talking to MSVCRT.DLL)
I finished school just before the tech bubble burst, and had occasion to travel out to the Silicon Valley on business to our corporate headquaters.
There have been few times in my life where I have been more amazed than I was at the number of ways a girl could work some variation of "How much money do you make?" into the first three sentences of a conversation.
I'm happy to report, however, that these women are no longer there.
In retrospect, however, I probably should have just said "A Googillion".
paintball
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
Also, just like the last OSS release from MS, this is not what I would call an important piece of software. In MS's new world .Net is king. So the WTL can go away. However, it is pretty clever to get a little PR out of this release instead of just letting the WTL fade away.
All MS needs to do to make a big positive change of their image, is release ONE important piece of their software as OSS and actaully let the community contribute. I am not talking about a bread-n-butter app like MS Office. Some non-revenue generating app like IE or even explorer.exe. Those two apps could use some serious fixin.
If Tyranny and Oppression come to this land,
it will be in the guise of fighting a foreign enemy. -James Madison
I've written a few WTL programs, and am rather fond of this lightweight wrapper over ATL. WTL allowed me to create small, tight programs without the overhead (and poor design) of MFC (which was created before templates were added to Visual C++).
WTL has always been something of a dirty little secret: it wasn't installed by default by Visual Studio, and the README files suggested that it was an internal project unsupported by management. Yet those of us who disliked MFC found WTL to be quite useful, despite Microsoft's "official" attitude.
As for Microsoft releasing this as Open Source -- MS management never valued WTL in the first place, so "giving it away" is merely a public relations move.
All about me
Microsoft denounces Linux, which is a competing operating system. They don't necessarily denounce open source software in general (at least, not that I've heard of.) That would be sort of foolish...I mean, you have to denounce a rival's products, that's obvious. But to denounce the way he makes them when other world class software vendors are considering them would be shooting yourself in the foot.
c net
From http://news.com.com/2100-1001-270684.html?legacy=
Earlier in the year, that feature led Microsoft Chief Executive Steve Ballmer to call open-source software a "cancer" and Windows leader Jim Allchin to call it "an intellectual-property destroyer."
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?
(this is not a troll: Slashdot editors mod anything with the word 'sucks' as a troll).
.NET platform.
Although it is nice to see the software giant contribute to open source, WTL sucks. It is really no different than MFC, carrying with it all the disadvantages of it:
a) the window creation process: first you create the C++ object, then you call 'create', and then 'preCreate', 'postCreate' and other silly stuff is being called. Contrast that with QT where you simply create a C++ object...
b) message maps: it violates object-oriented programming; introduces macro hell; makes code very sensitive to changes, to the point where if something goes wrong the IDE can not parse the code any more.
c) menus and commands based on numeric ids: maintaining the list of ids is easy at first, but it grows exponentially harder as the project grows, and after a while it becomes unmanageable to the point that it needs serious manual intervention.
d) the stupid UI updating architecture: your UI elements will be updated only when there is no other message in the message loop. You don't know when your UI will be updated.
e) the classes don't make any sense. For example, there is a CMessageLoop class. For crying out loud, who would have thought to make a class out of a message loop ? only MS twisted minds.
f) more string classes.
To me, it seems that releasing WTL is all about making themselves more innocent to the open source world. They now can say "look, we are contributing to OSS, you can't blame us!".
I would have much respect for them if they released anything serious to open source...for example the