I don't think Gates ever actually said this - but that's just based on my
own examination into this from a few years back.
But, over the years I've done some thread programming, and I was once
solving a problem by loading a lot of data into main memory (like 8-16GB of
data to process as one huge chunk, on a system that only had 32GB total).
A while later, I had a thought that actually maybe this quote has some
merit. Maybe not the specific amount (of 640KB) - but the general notion
that there is rarely a reason for a single application to consume the
entirety of main memory. It may be better, especially with threads or
multi-core, to work a problem in smaller chunks -- specifically, to work a
problem in chunks smaller than the CPU cache. And in fact, I found a huge
jump in my programs performance when I kept the buffers exactly 1 byte less
than the CPU cache (at the time that was 1MB) - as soon as I went 1 byte
over, I noticed a huge (~3X) hit in performance. Now that's just a single
data point, and the old advise of "never optimize your program for
performance too early" is probably still good. And especially most shops
won't spend the time/resources to cache optimize their builds - I suspect
some games do at startup, they maybe profile what your L3 cache size.
Anyhow, years ago I recall coming across a quote or an article where Gates
stated the IBM PC (or maybe the 8088 cpu itself) was designed or intended
to only "last" about 10 years. Not that the system components itself would
only last that long, but as it being a "useful" system. In that context,
maybe he was right (if he had said it) - 640K was maybe "enough for anyone"
for the remainder of the 1980s. I recall starting with 384KB (thinking
anything past 128KB was "huge") and doing upgrades in the late 1980s to get
to 640KB, and not getting into extended/expanded memory until the early
90s. This would be for "typical" household applications (taxes, small
business, word processing) - obviously image processing (CAD, movie
rendering, etc.) or multi-user servers do need more memory.
I also recall that it was Intel that requested to keep it to 10 segments of
64KB (640KB), not really a Microsoft or MS-DOS doing. i.e. aspects beyond
Microsoft wanted to reserve the "upper memory" for other stuff (video
memory). You have 16 segments, how many to hold in reserve? Someone
chose 6. Quick and Dirty OS indeed.
On Tue, Jun 13, 2023 at 11:47 PM Ali via cctalk <cctalk(a)classiccmp.org>
wrote:
So I had always heard the quote "640KB is enough
memory" being attributed
to
Bill Gates. However, recently I was watching Dave Plummer on YT and he said
that it is not true:
https://youtu.be/bikbJPI-7Kg?t=372
And apparently the man himself has denied it as well but it just will not
go
away...
https://abcnews.go.com/Technology/PCWorld/story?id=5214635
So I guess like the napkin/disk story and the DR/IBM story this is another
one of those vintage myths and folk lore with no real basis in reality....
-Ali