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.
Baffling!
Microsoft has actually released open-source software.
The CPL was developed by IBM and is OSI approved.
OSI approved
more info
John Hancock
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.
No, use doxygen. (And make sure to link in the ATL code too)
There are a couple websites that have some examples. I have been using WTL for about 6 months or so and it's pretty neat for porting old straight windows C code with new C++ code. Way more usable than MFC. The downside is there are no real wizards to use once a project is started.
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.
Wasn't WTL available a long time ago? I thought microsoft didn't *support* it at all. it was use as you wish and the source was available.
did you forget to take your meds?
You have never seen 'Return of the Jedi'?
You must be new here...
If I point out that you are incorrect, making me a foe does not make you any more correct.
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!
Excellent. It's about time Microsoft started making lasting contributions to the computing culture at large. Rather than releasing huge blobby tur(n)key "solutions" which become obsolete every few years they're beginning to actually release well-designed, extensible stuff with decent shelf-life, and they're actually working with other people to do so (ECMA, now SourceForge...). Bravo Microsoft, welcome to the party! Maybe in 5 to 10 years time the Windows developer culture will be as rich and interesting as the GNU/Linux and *NIX cultures.
It's a free library, which is only useful to you if you're writing code for the Windows operating system.
Which, I believe, that Justice Department lawsuit requires them to release (i.e., make it easier for 3rd parties to interface to the OS).
It does allow 3rd parties to be better able to program for Windows (so it could negatively impact M$'s ability to protect their own software aps for their OS), but one could also argue that making it easier for 3rd parties to write software for your OS is a disincentive for people to migrate to other OS's. (An extention of the game console arguement - he with the most games wins.)
paintball
Worf: Captain, it's the Borg, again. They want us to integrate their technology.
Riker: They've already assimilated 90% of our allies. This will make it easier to interface with their systems, and if there are any problems, we can just tell them to restart their warp cores.
Picard: On mainscreen.
paintball
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.)
they will almost certainly NOT accept source from other people; (although they may take suggestions, i'm sure).
It doesn't work like this. To get a project hosted at sourceforge, you have to choose a license from a variety of FOSS models (GPL is one, there are many others).
There is nothing stopping someone taking this code and forking it, if the (presumably Microsoft-based) project admins won't take their patches.
Since then my computer has rebooted 6 times and I now have a BSOD! I think it's working! :-)
Cwm, fjord-bank glyphs vext quiz
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
I just want to say this is great news regarding MSFT. Let's encourage this behavior, just in case a Microserf is browsing Slashdot.
Microsoft still has a long way to go in my book before I can even consider trusting them as a company, but clearly some of its individuals "get it" and are taking steps. If it's OSI compatible, I feel much less wary. One thing that could really sway me is making certain critical file formats (like Word/Excel) open. And oh yeah, stop trying to hijack the Internet. That would be nice.
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! :)
Remember the days when the MS C++ compilers were horrid? After a revs, it got decent, then it got good. Now it's everywhere and their IDEs set the standard that all others are measured against.
Maybe they are getting the hang of sharing the source to get the community benefit?
Agile Artisans
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'm sure you will find a lot of other projects on SourceForge that won't accept outside contributions. Some because they want to hold the copyright and thus be able to do other things besides GPL their code, some because they are arrogant and don't believe anybody else's ideas are good enough, and some for the very realistic reason that they have no time to figure out if the contributed code really is good and worth adding, and some for a combination of all these reasons.
The thing with OSS code is that the user can fork it if the original authors are not interested in accepting their changes. That is the big difference.
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?
Wrong.
:)
WTL wont work with Visual C++ Compiler Toolkit because WTL requires the Active Template Library which is (unless something has changed) only available with full versions of Visual C++.
Therefore, the WTL is only useable with visual C++.
Now if they open sourced the Active Template Library as well...
Fetch an axe.
If you were blocking sigs, you wouldn't have to read this.
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
My Gut feeling is that M$ is just using the opensource community as developers. Hey someone wrote a cool app. and in the next release there it is. Or the opensource starts to develop apps that cross platforms then the developers at M$ use the code to stop it in the next patch. then follow up with a software package that will let you cross platforms for a Price......I wouldn't touch this with a 100ft pole.
Never underestimate the power of stupid people in large numbers.
I greatly welcome this news.
Don't get me wrong, I dislike Microsoft intensely, and find it a pain to develop for at work (am a big Linux fan both for development and general use), but am using WTL on both home and work projects to great effect.
It's a good project and I'm finally glad that
Nenad and the team have been able to get the suits to make it more open than it was before.
After all, most ATL applications (probably most modern Win32 apps!) are actually using WTL in some form, even if they don't know it....
ATLControls.h (part of a code sample back in 1996
from MS is widely used in commercial apps, but is actually from Nenad, (the WTL author) and eventually migrated into atlctrls.h in WTL(!)
Mike
Linux fan and Win32 developer
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.