Fog Creek Software
Discussion Board

Welcome! and rules

Joel on Software

The future of Win32

Microsoft is trying to abandon VB Classic. What do you think will happen to Win32's C based API?

Even without upgraded versions Visual C++ product, we can compile C programs with GNU C compiler or other compilers. But maybe someday Microsoft will come and say that "Windows 2008 won't use Win32 APIs at all. Our .NET classes will use some other thing as their basis."

Savas Alparslan
Monday, March 28, 2005

We can only hope so.  ;) 

I'm ready to pitch the whole Win32 mess in the trash. I was really sad to see that WinForms is so heavily rooted in the Win32 world. With all of that said, it will be hard to get rid of Win32 and not also impact many other things.

Monday, March 28, 2005

Oh and by the way, the ability to ditch Win32 in the future because of .NET will be the exact payoff Microsoft has been building up for during these past few years.

I don't want to start a Linux vs. Windows debate, but I have often wondered where Linux will be in 20 years if they don't do something similar.

Monday, March 28, 2005

They've been supporting the API in some form for about 20 years now so it's hard to imagine that they're going to suddenly decide to completely dump it any time soon.  Microsoft understands the importance of backwards compatible (see Raymond Chen's blog) -- they aren't going to abandon the upgrade revenues from all of the businesses that rely on legacy apps.  .NET is built largely on top of Win32 (take a look at the decompiled source with Reflector) so they couldn't decide to remove all Win32 from .NET without taking at least a few years to reimplement everything.  Also consider all of the major Microsoft apps that are built on top of Win32 that would have to be rewritten for .NET (Office, SQL Server, IIS, etc.).  What you are likely to see are more and more new features in Windows that are only exposed through .NET (such as new GUI stuff) but the Win32 API as it is today isn't going away any time soon. 

Monday, March 28, 2005

They may choose to do Win32 as an interop layer, like they did with Win16 when they moved to Win32. Although, in truth, the size of Win32 vs. the size of Win16 probably means that such a monumental undertaking might never be worth the effort.

Brad Wilson [MSFT]
Monday, March 28, 2005

20 years from now Win32 will be a memory. 10 years from now it will probably be depreciated to the point where no new apps would ever be written with it. The .NET alternatives will be too compelling to waste any time calling into Win32 directly. And the security requirements to call directly into native code will be very high. OS's that are post Longhorn will probably require kernel level permissions to even run code that is not managed.

Just my opinion. I could be VERY wrong...

Monday, March 28, 2005

I think MS would *like* Win32 to gradually wither away as developers and apps move to a .NET world. This is what happened with Win16 apps on Windows 95 - they worked fine but they had an older look and feel, so the pressure was there to make developers move to Win32. The same thing happened with pre-XP apps on XP - they look 'older' (Windows 2000 style) unless you use the newer development tools (or at least until Win32 programmers discovered XP manifests). I think MS plan to support Win32 on future versions of Windows, but you will need to use .NET to use the newer features or the new style of interface. Gradually Win32 will look older until it withers away - that's the plan.

However I see obstacles to MS's plan for .NET world domination:

1. At its core Win32 is an API combined with the i86 instruction set. Any visual effects / new functions etc added to .NET will ultimately be exposed as callable DLLs, and there is no reason this API can't be used from a Win32 app. So Win32 will exist for as long as user32.dll and kernel32.dll exist.

2. Win32 is starting to acquire a future outside Microsoft, as a viable port to Linux. Eg which shows it is becoming a viable cross-platform technique.

3. MS Office exists as Win32 apps so Win32 apps will look up-to-date for as long as MS Office exists.

4. All previous migrations happened when the pace of PC adoption was increasing. Eg the number of Win16 apps was outweighed by purchases of new PCs running Win95 etc. However the rate of adoption is now probably lessening (in the sense that most people likely to buy a PC already have one) so the planned MS migration will have to move the bulk of installed users / apps to a new platform, instead of simply being a new platform and waiting for everyone to buy it.

Anyway it's an interesting topic!

William Rayer
Wednesday, March 30, 2005

As .NET is built on top of Win32, I don´t see MS abandoning Win32 in any near future.

Sunday, April 10, 2005

MS Office is zillions of lines of code on Win 32. Office is a major cash cow for MS.

I don't see them completely rewriting it in the next 5 or 10 years.

Mr. Analogy {ISV owner}
Saturday, April 23, 2005

Win32 may be a good development platform for Windows (if by good you mean fast and low-level), but it's a ridiculous choice for a cross platform product.  I've been aware of the Wine project for at least 7 years now, and even the commercial versions cannot run Dreamweaver smoothly.  It may be cost effective for porting a large enterprise app but for most applications a port to a real cross platform API, like Qt or wxWidgets, would be a saner option.

Dan V.
Wednesday, May 11, 2005

*  Recent Topics

*  Fog Creek Home