Sunday, April 01, 2007

I Am Not A Lawyer

You've seen it all over the forums. Folks type IANAL (I Am Not A Lawyer) and then proceed to give their own legal interpretation of an event anyway. It appears a lot around folks arguing over what the GPL means. I'm not hear to argue the merits of the GLP 3 (not right yet, anyway). I am here to ask that if lawyers want us non-lawyers to not practice law, then they should return the favor and not practice software engineering. I offer as an example Lewis A. Mettler and his website lamlaw.

Never Assume Malice When Stupidity Will Suffice*

Mr. Mettler has commented on another posting by one Thomas R. Nicely. Mr. Nicely posts that Microsoft's "Vista arbitrarily restricts the memory space for the GCC executable to 32 MB (33,554,432 bytes)." Mr. Nicely's development environment is composed of the following:
  • GCC 3.0.4, which was first released in February 2002.
  • DJGPP, which was likely updated April 2001.
  • Vista Home Basic
So. Based on two very old development tools (GCC and DJGPP) and a known limited version of Vista, Nicely spins yet another massive conspiracy in which Microsoft is deliberately limiting applications not built with "any compiler and linker not employing Microsoft's proprietary Win32 API." Nicely says it works just fine for him on every release of Windows up through Windows XP, but fails on this known limited version of Vista.

The age of Nicely's tools is limiting. GCC is currently at version 4.1.2 for example. I can work with the latest releases of gcc only on Solaris (if I bootstrap build it) or current distributions, such as Ubuntu 7.04. Even less leading-edge releases (such as Suse 10.1 and 10.2 for example) use gcc 4 and 4.1. Yet, when I try to use up-to-date development tools on Windows, I find they're a major generation back (some release of 3). This is true for MinGW and Cigwin. There's a reason why new versions of any complex tool are released, and if you choose to not step up to those releases, then you should be willing to accept the consequences of that choice and not whine about it when something breaks.

And as for Vista itself, there are already innumerable stories about incompatibilities with existing applications running perfectly fine on Windows XP, but failing to install or run on Windows Vista. We've been hearing about this for over a year. And now Nicely pops up with his grand conspiracy because he can't use his very old tools on the cheapest version of the latest OS.

Before Nicely continues down this path he needs to perform more testing. Run those same tools on a more capable version of Windows (he only documents Basic Home). If the tools continue to fail in the same way, then update those tools and run the same tests again. If there is a real memory (malloc) limitation, then somebody needs to make very sure that it's not a bug with either GCC or DJGPP, especially DJGPP. I find it peculiar that the maximum is $1FFFFFF (33,554,432 bytes). It looks more like a masking problem than a deliberate test (although I don't have access to the code so I can't speak with any authority). The APIs changed a bit between XP and Vista. When somebody can actually look at the Windows interfaces in DJGPP and can say that they are correctly used with regards to Vista, then and only then can you can move on to stage two of this sorry story: point the finger of blame at Microsoft.

You Are Not An Engineer

Mr. Mettler would have us believe that Nicely's problem is yet another example of "using [artificial] restrictions to frustrate developers who do not support only the Microsoft platform." Mr. Mettler would be well advised to find good technical council with regards to Nicely's problems. Nicely's complaint is sloppy at best, and Mr. Mettler's comment that he smells "a law suit against Microsoft for unfair competition" smacks a bit of ambulance chasing. I've followed Mr. Mettler for a long time, starting back when he was following and commenting on the Microsoft antitrust trial, and I've never had a problem with any of this posts before now. But right now, on this post, he needs to back off and make sure his technical facts are straight before charging ahead. Comments and charges like Mr. Mettler's are a good way to loose credibility. And Nicely would do the community a whole lot of good if he dug down into DJCPP and traced what was happening. Nicely needs to get his facts straight as well. Especially if he's a developer.

*Hanlon's Razor

Update 25 Sept 2011

On 31 May 2007 I wrote another post in which I proved my assertion that the age of the tools were the root of the problem, not Microsoft or Vista.


  1. I find it peculiar that the maximum is $1FFFFFF (33,554,432 bytes).
    I find it suspiciously like the memory limitations of EMS, XMS, and VCPI. Thing is those would be for 16-bit DOS programs and he's running a 32-bit DOS program.

  2. I do agree that it probably isn't malice, but Mr. Nicely's original post says:
    "The operating environment exhibiting this incompatibility in Vista includes GNU GCC C 4.12, DJ Delorie's DJGPP 2.04 beta (11/30/2003), and Vista Home Basic 6.0.6000 running on a Dell E520 with a Pentium D 915 2.8GHz dual core processor, 1 GB of 533 MHz DDR memory, 800 MHz front side bus, and SATA drives."

    That's GCC 4.12, not 3.0.4

  3. I wish I'd kept a screen shot of his original post now. First, it's gcc 4.1.2, not 4.12. And looking at his page he's added a lot more information. It looks like he's attempted to clean up mistakes and omissions in the original page, which is fine. I just wish he'd kept a change log of some description. But I will say this. When I first read the page I would swear that it was gcc 3.0.2.

    Regardless, I stick by my comments as they applied to the original page on the date I wrote my entry. Note my date (April 1) is earlier than his latest changes towards the bottom of the page (one dated April 10). I suspect convenient revisionism at work to better support his position.

  4. even though arguments like "it's free don't whine if it doesn't work" are unquestionable I think that a program that only processes a file that works flawlessly on windows cp and older versions SHOULD run in compatability mode with windows xp with administrator rights. I use vista ultimate and I have the same problem. I only do small programs anyway to calculate things or fix things so its no big deal doing it in unix or windows 2k anyway, but I really can't see WHY it shouldn't run on vista. It's such a basic app.


All comments are checked. Comment SPAM will be blocked and deleted.

Note: Only a member of this blog may post a comment.