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.'"
WTL up to this point, has been done by a single guy at MS. It's a lot nicer to use compared to MFC, and regular ATL, in that it follows the "KISS" aphorism
HOW'S MY POSTING? CALL 1-800-POSTING
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
Its so hard to hate them sometimes! On one hand they kill competition with shady tactics. On the other, they have some damn good products. Curse you Microsoft!!!
First Windows 2000, now this.
Evidence that pigs do fly has surfaced, new interpretations of the bible by scholars indicate that Hell is actually a frozen wasteland, and RMS backs a decision by Sun not to open Solaris.
By "single" I mean't that he worked on it alone. He's happily married (chicks dig coders!) ;-)
HOW'S MY POSTING? CALL 1-800-POSTING
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.
I've tried WTL. It seems great for small, stand-alone executables. However the learning curve is sort of high and you really need to know a bit about ATL. The documentation also isn't near as complete as MFC (even though MFC is ugly).
That being said, the best way to create GUIs in Windows nowadays is to use Windows Forms either in C# or C++. Compared to MFC/WTL/whatever, its a dream come true.
Microsoft + Sourceforge = The End Of The World
-Imidazole2
there's no configure,
there's no makefile,
I don't think this stuff is compatible with Linux!
OSI CPL
GPL compatiable
Common Public License Version 1.0
This is a free software license but it is incompatible with the GPL.
The Common Public License is incompatible with the GPL because it has various specific requirements that are not in the GPL.
For example, it requires certain patent licenses be given that the GPL does not require. (We don't think those patent license requirements are inherently a bad idea, but nonetheless they are incompatible with the GNU GPL.)
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)
GPL: If there is something in this software that is patented, by you or someone else, you can't distribute this software unless a free license to use that patent is available for all. (If a patent prevents anyone you give this to or they give this to from freely distributing this software, you can't distribute it either.)
CPL: If there is something in this software that is patented, and was patented at the time of contribution to the software, this software may still be distributed even if a patent is required to use it.
So it depends on your definition of "free". CPL says you're allowed to distribute the software whether it's patent encumberred or not, GPL says that if it's patent encumberred, you can't redistribute it. So CPL is more BSD-like free. Free as in "Here it is, do what you want", not free as in "Here it is, anything you add has to be free too."
Maybe that wasn't all that short.
paintball
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
Does anyone else find it interesting that they'd host their "open" projects on sourceforge instead of on one of the many microsoft.com sites? What's to gain?
* wider open source community acceptance of MS (for releasing something "open source" which was argueably already open source - hello, header files, anyone?)
* strain on the open source community (ie, sourceforge) to further/improve the Win32/MS ballpark (granted, its a negligible strain, but it's pennies which add up to dollars, and so forth, nonetheless)
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
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
So I hope the response from this PR stunt that registers on their radar is that we appreciate OSS-esque gestures (that's really all they've been, really: gestures) but need something substantial before their image truly changes. Open sourcing IE or explorer to community improvements would be absolutely immense. IE could rocket past even Firefox and the ignorant masses of AOL types out there would have a real web browser by default. Microsoft seems as interested in fixing IE themselves as they were with WTL. Maybe this IE thing CAN happen! :)
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?
Can you say Platform SDK?
.NET Framework SDK - another free (as in beer) download.
The VC++ toolkit is missing a number of things that are typically needed to make it usefull - no lib.exe, nmake.exe or cvtres.exe and no msvcrt.lib being the main stumbling points. Also no MFC (good) and no ATL (less good).
On the other hand you can find free (as in beer) versions of all these. The platform SDK has versions of the missing exe's in the Win64 compatability testing area and these work fine for Win32 compilation.
It also has a copy of ATL 3.0 in include\win64\atl
msvcrt.lib can be obtained from the
(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
WTL code has been avialible out on web sights and in Windows documentation for at least 3 years now ( I know because I used it in one of my apps) and the liscense for it was pretty much open source ( ie freely distributable / downloadedable ) all that time. Actually they tried to squash the thing for a while. It has been mostly user supported all that time because it is code that "accidentally" escaped from thier labs. Also, WTL is a alternative to using MFC's which is the technology they were pushing at the time. I think what they are doing is tring to get some free publicity in the OSS world by publishing something as OSS that already was. Either that or someone in microsoft who likes WTL wants to see it kept alive and sees this as the best way.
âoeTolerance applies only to persons, but never to truth. Intolerance applies only to truth, but never to persons.