TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: All
from: Clem Clarke
date: 1997-01-29 07:01:48
subject: Why Life Stops at 64Kb

I read this article over a year ago, and I think it
it deserves wider discussion, particularly as we had a
number of bushfires recently in Victoria, Australia, and the
emergency system failed (the same one mentioned in the
article, as far as I can see).

   I started writing a note some years ago wondering where
all my producivity had gone over the last few years -
I must finish it.  However, an awful lot of my problems
are mentioned in this article.

   The article was published in an English magazine in July,
1995, and is reproduced with permission.

Cheers, Clem Clarke

	--------------- 000000000 -----------------

WHY LIFE STOPS AT 64-KB
I  OCCASIONALLY INDULGE WHAT IFS ABOUT THE COMPUTER INDUSTRY...

     Do you ever play the What if ... game? You know, "What
if Arch-duke Ferdinand had stayed in bed on 28 June, 1914',
'What if' Bill Clinton had inhaled'. 'What if Margaret
Thatcher's dad had been a doctor instead of a grocer'... I
occasionally indulge in What ifs about the computer
industry, and for some unfathomable reason I've found myself
doing it more and more often over the last year.
     Of course, the most obvious one is 'What if Gary
Kildall had been afraid of flying'. For those of you too
young to remember, Gary Kildall (who regrettably died in
June of last year) was one of the great pioneers of the
personal computer: he wrote PL/I, the first programming
language for the first microprocessor, Intel's 4004, and
then went on to write CP/M, which was the first grown up
operating system for personal computers.
     The urban myth (for such it is) has it that when IBM
was looking for an operating system to put onto its
soon-to-be-launched PC, it sent a party to visit Kildall's
company, Digital Research, but Gary was out flying his light
aeroplane. The IBMers left in a huff and so an almost
unknown hacker called Bill Gates got the contract and the
rest is...  (The truth is rather more boring; IBM did
initially offer CP/M-86 on the IBM PC as an alternative to
MS/DOS, but overpriced it so that it failed to catch on.)
     For me, a much better game is 'What if IBM had chosen
the Motorola  68000 instead of the Intel 8088', which isn't
that far-fetched since both chips must have been considered.
The effect on the relative stock market prices of Intel
versus Motorola isn't what interests me here. By choosing
lntel's 8088 with its horrible segmented memory
architecture, IBM consigned the PC industry to a fate
equivalent to that of those unfortunate Chinese girls who
had their feet bound at birth, and it's been hobbling ever
since.
     In our industry the number of the beast is not 666 but
64Kb. the size of an Intel processor's memory  segment and
hence the largest size that a single data structure can
efficiently take.
     It's because of 64Kb that you keep running out of
resources when you try to run more than one  component of
Microsoft Office; Windows only has room for 64Kb of resource
handles, which isn't enough for modern applications - our
estimable columnist Dave Jewel1 has reported on the
contortions that Microsoft is having to go through to fix
this for Windows 95, while maintaining backward
compatibility.
     It's those two innocent words 'backward computability'
that are the cripplers. Intel has long since fixed the
problem - all x86 processors since the 386 have been capable
of addressing a flat (that is, non-segmented] memory space
of many megabytes - but MS-DOS hasn't been able to exploit
this ability because it was spawned in that hobbled world of
64Kb, and rewriting it so drastically would break all the
existing DOS and Windows software.
     The segmented Intel architecture has corrupted two
whole generations of programmers, forcing them to dwell on
clever memory-mangling tricks rather than secure programming
practices (you can spot the one's; red-eyed, chewing
frantically  from caffeine abuse wearing red dwarf
t-shirts. hanging around on Cix corners).
     It hindered the introduction of GUIs to IBM hardware
for years.  and it blighted the chances for advanced
programming languages like LISP and Prolog. Worst of all, it
was almost certainly responsible for the commercial triumph
of the C programming language, a disaster from which the
software industry may never recover.
     There was a time in the early 1980s when, though it's
hard to believe now, PascaI and C were trying for a place as
the application programming language of choice (Windows
still contains an archaeological relic of those days in its
Pascal function calling convention). Macho programmers have
always preferred C because it allows them to roam unfettered
through the hardware, strewing their mallocs where they may
fall, whereas Pascal was designed to stop you doing foolish
things and help you to write correct programs.
     Nevertheless, Borland's Turbo version demonstrated that
you could do almost anything in Pascal that you could do in
C but note that 'almost'. The one thing that C had over
Pascal was that it supported bizarre memory models with
names like 'large', 'huge'  and  'incredibly vast',  that
allowed you to write programs larger than 64Kb on the
benighted Intel 8086 processor; end of contest.
     What prompted this particular outflow of spleen was
reading the 'Report of Inquiry Into the London Ambulance
Service (Feb 1993)'.  On 4 November 1992 London lost all
effective ambulance cover because of a catastrophic crash of
its new computerised dispatching system.  This software  was
written in a mixture of Visual Basic and C, running under
Windows 3 on a network of 486 boxes.
     The inquiry team concluded that the crash was caused by
a memory leak - I quote from para 4039: '...the programmer
had inadvertently left in the system a piece of program code
that caused a small amount of memory  within the file server
to be used up and not released'
     In my alternative What if... universe that system might
have been written in Oberon 2 (the current descendant of
Pascal featuring an automatic garbage collector which
prevents memory leaks) running under Bortech Windows 11.0 on
a 250MHz PowerPC 9064.

Copyright Dick Pountain 		  JULY 1995 PC Pro


---
* Origin: Melbourne PC User Group +61-3-9699-6788 (3:632/309)
SEEN-BY: 3/103 50/99 54/99 270/101 620/243 625/160 632/50 107 108 158 309 348
SEEN-BY: 632/360 371 504 525 601 633/374 635/301 544 728 639/252 711/401 413
SEEN-BY: 711/430 934 712/311 407 505 506 517 623 624 704 713/317 800/1
@PATH: 632/309 107 360 50/99 712/624 711/934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.