Lambda the Ultimate

inactiveTopic Critique of the Windows API
started 8/29/2002; 3:06:04 PM - last post 8/29/2002; 9:21:06 PM
Ehud Lamm - Critique of the Windows API  blueArrow
8/29/2002; 3:06:04 PM (reads: 1595, responses: 2)
Critique of the Windows API
Diomidis Spinellis. A critique of the Windows application programming interface. Computer Standards & Interfaces, 20:1-8, November 1998.

This is not a language critique, but many of the issues raised are programming language dependent.

I always said Windows is a programmer hostile environment; this paper gives ample evidence in support of this conclusion.

To quote Petzold, In a sense, the whole history of new programming languages and class libraries for Windows has involved the struggle to reduce the windows hello-world program down to something small, sleek, and elegant. (Programming Microsoft Windows with C#, Microsoft Press, 2002, p. 47).


Posted to critiques by Ehud Lamm on 8/29/02; 3:06:59 PM

Chris - Re: Critique of the Windows API  blueArrow
8/29/2002; 7:00:18 PM (reads: 1052, responses: 0)
Is the URL correct? The server aegean.gr does not seem to be responding. Another case of an LtU'd web server? ;-)

Anton van Straaten - Re: Critique of the Windows API  blueArrow
8/29/2002; 9:21:06 PM (reads: 1037, responses: 0)
Lambda the Ultimate Denial of Service?

A Google search for "Spinellis critique" found the PDF at: http://www.dmst.aueb.gr/dds/pubs/jrnl/1997-CSI-WinApi/html/win.pdf

I skimmed it quickly, being interested since I've spent much of my professional career trying to avoid the Windows API as much as possible while at the same time consulting to clients who use Windows almost exclusively.

I didn't find it an enormously compelling paper, though. A lot of it seems to be nitpicks, or self-evident (e.g. the API is large therefore difficult to formally proof). Not that they aren't valid criticisms, but I suspect it would be possible to mount a much more scathing attack.

One example would be version management. The paper touches on what Microsoft itself has referred to as DLL hell, but doesn't really point out how simple it could have been for Microsoft itself to create standards for sensible versioning. No new technology would have been required. This was not a technological issue, but rather one of sheer strategic incompetence and shortsightedness [or possibly the opposite: evil genius in recognizing how such unmanageable software might actually help them in the marketplace, creating a demand for upgrades, for example.]

Near the end, the paper says, "Microsoft should recognise its responsibility in the market place and — breaking away with the past — invest effort in the design of a high-level, orthogonal, intuitive, structured, complete, and extendable API that will cover its own and the industry’s current and future needs." Since the paper was written, in 1997, Microsoft has taken a stab at exactly that, with its .NET effort.

So, while I'm sympathetic to the intent of the paper, it seems like too little, too late (although it might have seemed a little more relevant in 1997).