Gibson's prose has a short shelf life. That's why he doesn't write future-set stories anymore.
In the film of Johnny Mnemonic, the screenplay of which was penned by Gibson himself, Johnny must act as a courier for 320 GB by using a brain implant -- in 2025. It's 2018 in the real world, and data smugglers today would probably get farther by swallowing toy balloons with two or three microSD cards in them than by going the whole invasive wipe-your-childhood-memories brain implant route (if such a route were available).
Not true that Gibson's prose has a short shelf life. Neuromancer is in my view a timeless masterpiece, and Gibson's most recent book is set in the future.
It didn't really make sense then either. No sky looks like television static. Jeff Minter's Polybius game pokes fun at it by showing the text "The sky was the colour of television tuned to a dead channel" -- before thrusting you into a level that literally had a static sky.
I realize you say this somewhat in jest, but I want to respond to this because the first sentence of of William Gibson's _Neuromancer_ is paradoxically both timeless and time bound.
> The sky above the port was the color of television, tuned to a dead channel.
That first sentence characterizes the novel's diegetic (in-narrative) setting by giving the sky a property of an alternate medium (television). Unlike gentler rhetorical assertions such as simile, the declaration that the sky possessed a property of television suggests that the setting--like the intra-diegetic setting of the (Morrocan) beach in which an unnamed adversarial AI imprisons Case--is also a media construct in which the reader is imprisoned.
In other words, the media topology structuring the novel's outermost narrative is a recursive formation of one medium inside another medium and this structure is timeless. It's merely recursion.
However, fully understanding the literary (as opposed to narrative) significance of such a structuration depends upon knowing what television was and why any of its channels might be "dead" as opposed to "live".
A useful point of comparison can be found in William Shakespeare's _As You Like It_ (II.VII.139-143)
All the world’s a stage,
And all the men and women merely players;
They have their exits and their entrances,
And one man in his time plays many parts,
His acts being seven ages. [. . .]
The significance is timeless, drawing power from the assertion that life is in fact lived on a stage. On the other hand, the description is also time bound (as well as culturally circumscribed) depending as it does on the greatly diminished (since Elizabethan England) medium of live performance.
EDIT: Fix predicate in first sentence. Formatting. Change "at" to "a" in penultimate sentence.
I didn't realize newer televisions simulated the static. That is rather amusing, in many ways.
Also, thanks for mentioning the copy/paste referrer nonsense. Didn't realize they blocked referred links from here and was curious what the reference was for a time. :)
What? I was assuming it meant a static "white noise" image. And... yeah, I remember them happening. But in modern transmission systems, that is a complete fabrication. There is nothing about getting white noise to transmit to look like that, and it in fact takes more effort to create such a screen.
Last television I hooked up using a digital antenna would simply not show anything if the signal didn't exist. If you had poor signal, you'd get more compression artifacts. Nothing there should translate to the white noise image.
OK, yeah. I know what static is. It isn't like HBO invented that. So, back to the original point. I suspect that it is a short matter of time before nobody really knows what that is anymore. My kids have certainly never seen it. And it is no longer what a television on a "dead" channel shows.
My point was only that if your kids watch HBO they do know what the image in Neuromancer looks like, even if they don't realize what the HBO logo was based on.
> That first sentence characterizes the novel's diegetic (in-narrative) setting by giving the sky a property of an alternate medium (television). Unlike gentler rhetorical assertions such as simile, the declaration that the sky possessed a property of television suggests that the setting--like the intra-diegetic setting of the (Morrocan) beach in which an unnamed adversarial AI imprisons Case--is also a media construct in which the reader is imprisoned.
That's a very interesting take. I never took it to have such a deep meaning, I took it rather at face value (and its face-value-interptretation if you will): that is was visual white noise (vaguely like driving into the snow at night, perhaps?). I took the metaphorical meaning to be that the sky was indistinct, somehow pointless (like watching no channel), conjuring up bleakness and futility.
In other words, I took it to be a device to transport ambience, not structural meaning.
> In other words, the media topology structuring the novel's outermost narrative is a recursive formation of one medium inside another medium and this structure is timeless. It's merely recursion.
Interesting. I had meant to re-read it anyway. I shall pay attention to your perspective, see how it shifts my perspective of the rest of the book.
> However, fully understanding the literary (as opposed to narrative) significance of such a structuration depends upon knowing what television was and why any of its channels might be "dead" as opposed to "live".
To my kids, a "dead channel" would look uniformly blue.
Or like a 404 page perhaps, these day :-D
> The significance is timeless, drawing power from the assertion that life is in fact lived on a stage.
I feel you might be you're over-thinking it there, in the sense that the actors in a TV show wouldn't be seeing static. Only viewers would.
Thanks for sharing your perspective, I found it really interesting.
I think the technology descriptions have really dated. Exhibit A: Neuromancer. the Dornier-Fujitsu space yacht Haniwa, assembled in Orbit. "Case made out the familiar chatter of a printer turning out hard copy...Case snatched a length of twisted paper and glanced at it."
The authors of the Star Trek TNG Technical Manual in the early 1990s sidestepped unforseeable computing progress by referring to 'kiloquads' of storage and never relating it to contemporary measurements.
Since part of its purpose was as a writer's guide that terminlogy slipped into the shows and was quite believable when some character expressed surprise that a tiny chip could carry '15 kiloquads' of data. It worked very well.
"You can use it with any kind of story" is a bad thing, not a good thing. A game's mechanics should reinforce its story or themes. Even the granddaddy of generic games, GURPS, has this in some measure in the way its mechanics reinforce a gritty, high-tension feel where every single HP and FP is precious.
Star Trek: The Next Generation referred to data sizes as "quads", which has the advantage that it has actually future-proofed the series a bit. It's fairly clear that whatever a "quad" is, it isn't just two bits smashed together, but what it is? Who knows.
It's true that most of Star Trek uses vague or made-up terms for computing measures, but Data formally refers to his own storage in units of "quadrillion bits", and apparently using that as a definition of "quad" makes for a reasonable order-of-magnitude estimate for other uses, even today.
Depends on your perspective really. In my experience, the word "Computer" strictly defines a tower and monitor to people I've encountered outside of the tech sector. While Laptops, Desktops, Phones, Game Consoles, etc are computers when people here Computer in a conversation they think of a tower and monitor or laptop. Most people wouldn't immediately connect their Phone or iPad as a computer in that sense.
To add: If were to be asked if I had a Computer in my house, and I didn't actually have my tower or MacBook, I would respond "No."
Yes, I know what the perspective of probably a large majority is. Doesn't make it right, though.
The vast majority of people believe - if you ask them - you are weightless in space because there is no gravity there. Or that atoms are composed of little balls. Or that what you and I know as a browser is called the internet or Facebook.
"Tricksters and pranksters" AKA good old fashioned trolling. It's a shame the modern definition of "troll" seems to have warped to include those who tell people to kill themselves on social media etc.
"Modern operating systems can now take advantage of that seemingly vast potential memory. But even 32 bits of address space won't prove adequate as time goes on."
I think there are roughly 2^166 atoms on earth (translating 10^50 if I didn't mess up my maths). So clearly we don't need 256 bit addressing for any system!
The problems of allocating memory addresses in global scale requires distributed probabilistic addressing or otherwise inefficient address space distributions.
You don't want to share the same compact memory allocator with the malloc(3) from the other side of the galaxy, or even different city.
"(note: you may want local 128-bit virtual addressing for other reasons than accessing more memory)"
Yes, that's why IPv6 is as big as it is. We could fit pretty comfortably into 64 bits for a long time, really, if you assume we fairly tightly pack everybody in. 128 bits is really to give us some routing headroom, not because anyone seriously thinks we're going to use IPv6 on 2^128 distinct targets any time soon. (By the time we have a "galactic internet" it sure won't be using IPv6, not because it's bad or wrong but just because we're going to need something designed to handle the very different challenges involved.)
Intergalactic (or interplanetary even) networking is more likely to be UUCP like than TCP like, but that doesn't mean it won't need addressing, and that addressing might as well be IPv6. Maybe we can get packets larger than 1500 bytes though.
Moving beyond a 64-bit architecture will allow manipulation of memory address spaces that are larger than 16 Exabytes. Even high-end servers today do not contain more than 1TB of physical memory. It would take several decades if not more for memory densities to become high enough to begin to reach the boundary that 64-bit addressing limits computers.
Current x86 architectures only use 48 bits for addressing. That’s still enough to address ~280TB of RAM. I expect that to change before upgrading to 128-bit pointers.
People where I work have workstations with more than 1TB of ram.
I think the value of a larger pointer (immediately) would be tags, not memory density, just as it was with 64-bit systems -- my old Alpha only had 256mb of ram, and maxed out at 512mb IIRC.
Wow. They need that much data in memory at once? I could understand needing a ton of secondary storage for both, but this much primary storage would seem to imply they need random access to terabytes of data which is a little huge to swallow!!
It is popular to buy a bunch of servers (or worse, host them on AWS), a bunch of sysadmins, and so on, so you can support a couple smart analysts with some complex hadoop java streaming somethingrather, but it is much cheaper to just buy them beefy workstations and use awk: A HP Z8 G4 with 1.5TB ram is under £30k, and it's hard to get a sysadmin that has any brains for that, let alone two and servers...
In fairness, what we have right now is 48-bit addressing, not 64-bit.
I've already run into cases of programs figuring that a "64-bit" address space is basically infinite and running out of address space by trying to have tens to hundreds of thousands of 4GB memory mappings (not necessarily backed by RAM).
Other people have pointed out how much memory 64bits provides, but the real problem is when we go from 48bits to 64bits. 48bits provides 256TB of address space. Right now amd64 only uses the bottom 48bits for pointers and some systems take advantage of this for things like NANboxing. I don't really know the numbers, but losing the ability to NANbox will probably come with a performance hit.
NaN-boxed or tagged pointers have to be processed before use anyway - amd64 enforces canonical pointers, even if the high bits are unused (they have to be set to 1).
What's your point? A few bitwise operations are far quicker than reading from memory. Also are you sure that the high bits must be 1? I thought they had to be the same as the 48th bit.
The point was, that there will be not a problem with tagged pointers. The pointers have to be clean today when used, so those who use tagged pointers have a place in their code where they handle the cleaning.
I believe the new garbage collector for the JVM colors pointers in a way they are not scrubbed before use; they memory (re-)map into multiple regions to implement read and write barriers.
Some very old distributed systems used 64 bit pointers where the upper bits told you what machine the data was on.
And we have Intel putting SSD card in DIMM slots. I expect there are semantics attached to those address ranges as well.
I dunno where we are after Spectre, but one of the microkernel architectures got its IPC speed by packing most processes into a couple of address spaces, only with different read write access. On preemption the TLB wasn’t invalidated (about half the cost), just modified.
These are the sorts of tricks you do when your address space is bigger than you will ever need. I expect to see more of this as time goes on. And if we ever see 128 bit pointers, expect crazy stuff like this to be de rigeur.
NANboxing isn't the only strategy for type tagging. We've been using tagged pointers in 32-bit land for decades. I doubt the perf hit here is going to be significant.
The reason NaN-boxing is popular for JS is that the only numeric type in JS (per spec, though JITs can sometimes improve on this) is 64-bit IEEE float, and it sure is nice if your value format can represent those directly without requiring a separate heap allocation.
There are still things you could do, of course. For example, you could more or less NaN-box but rotate the bits so the tag is in the lowest bits instead of up in the exponent, then ensure all your pointers are sufficiently aligned. That would mean a perf hit on doubles to do the rotation to recover the double, but you might be right that this is not too bad in practice on modern hardware.
I don't quite reach that number. According to Landauer's principle the minimum energy required to flip a bit is 0.0172 eV. Times 2^128 is ~10^18 J. The first google result for boiling all oceans puts it around 10^29 J. Even at realistic energy values for current hardware (10 fJ), we are still 5 orders of magnitude short of boiling all oceans.
Perhaps the most damning quote: "I have to say that in 1981, making those decisions, I felt like I was providing enough freedom for 10 years. That is, a move from 64k to 640k felt like something that would last a great deal of time. Well, it didn't..." -Bill Gates
While he didn't use the exact words of the title quote, there are multiple sources which indicate he was indeed surprised at how fast applications grew in memory requirements/usage. Thus, I rate it as "partly true".
At lot of it was probably caused by the switch from hand-crafted low-level code to libraries and compilers, which usually take up more RAM for comparable features. While such tools sometimes can produce compact code, it's often not considered economical by publishers.
The fact that it was the sentiment at the time is one thing, but it doesn't make attributing a quote to someone who didn't say it right or correct, even if it goes in the way of the general sentiment, even if that someone did agree with said sentiment.
This has always annoyed the piss out of me. It wouldn't have been Bill's or Microsoft's call to make, in the first place. The hardware memory map is not set by software.
The 640K limitation derives from the 1MB address space of the IBM PC, and as the name implies, IBM did the hardware design. They did it around a particular Intel chip, which had a 1MB address space. IBM could've put in hardware support for bank switching (as some EMS/XMS add-in cards later did), they could've used a chip with more than 20 address lines, they could've done a lot of things.
But they didn't. IBM wasn't designing a mainframe-killer, they were designing a personal computer. It was competing with 16k and 64k 8-bit machines, and the first IBM PCs shipped with 64k and later 128k of RAM. Using the top 384K for peripherals and allocating 640K for programs must've seemed insanely generous at the time. But whoever made that decision, it was on the hardware side, not anyone at Microsoft.
"The hardware" did not support more than 1 MB. The 8086/8088 had a 20-bit address space (reflected both in the segmentation model and the address bus), so that limits it to 1 MB.
Read the article... Yes, obviously those CPUs didn't support it. But the later CPUs and PCs did, and yet the software (MS-DOS), didn't really support it. They had to use some gross hacks to access more memory.
That excuse is valid for 8086, but it's no longer valid for the 386.
Ems / xms was a hack to use the extra memory. Without those systems you would never see more than the base ram. These started out as 3rd party software before eventually becoming part of msdos. I still remember the sticker shock when buying a retail copy of EMM386. So I suppose 'support' is a bit weasely here.
Early DOS was designed to be as lightweight as possible so as much memory as possible was available to applications. Including expanded memory bank switching code and 32bit protected mode support on early primitive hardware that didn’t have those features anyway would have left little or nothing for actual applications to run in.
Even when expanded memory was an option, loading a bank switching memory extender to work around the cpu’s Address range limitations left less base memory left for non-EMM aware apps to run in. Many times I remember discussing with users the pros and cons of different memory managers and aporoaches, but most of the time in that era, not using them at all and using bare bones MS-DOS was actually the best choice. Some users would have two boot disks. One without EMM386 to run software that wasn’t expanded/extended memory aware to maximise the memory available to them, and another with EMM386 to run one or two apps that were.
It was actually 1MB+64kB, due to how real mode segmenting works. The infamous A20 line could be set up to alias that top 64kB to the first 64kB.
The 80286 CPUs did support up to 16 MB of RAM, but they needed to be switched into protected mode to be able to use it. The problem was, that there was no way to switch back, except reset. That might be the reason, why MS DOS never supported this mode.
With 80386, it was possible to run in protected mode AND run real mode binaries in VM86 mode, which is exactly what Windows 3.x used.
> The 8086/8088 didn't have that A20 line setting. That was added later for backwards compatibility.
True
> The 80286 reset thing wasn't a full PC reset, but a CPU reset.
That required an extra hardware and BIOS support. The CPU had to be reset externally, and after jumping to FFFF:0000, the BIOS had to recognize that this is a CPU reset, not re-initialize the hardware and return execution to where it came from.
But whoever made that decision, it was on the hardware side, not anyone at Microsoft.
Bill Gates' famous comment isn't really a decision though. As it's usually cited it's just an opinion - '640Kb should be enough for anyone' means "I don't think any programs will need more than that!". If someone at IBM decided that there should be 640Kb of available RAM for programs it's believable that Bill might have simply been agreeing with them.
The main thing that's annoying about the quote is that it's trotted out as an example of how Bill was wrong, as if being wrong is something terrible that he should be ashamed of decades later. That's nonsense. Being wrong is fine so long as you change your mind when you understand that you are wrong.
At one of the Microsoft company meetings in the middle to late 2000s (I recall it was at Safeco Field) he claimed that when IBM was developing the PC he tried to convince them to use an MC68000 instead of the 8088. He said going with the 8088 set the industry back ten years. Assuming he wasn't making the story up, it's hard to imagine him making that quote or even agreeing with it.
Here's the thing though. Engineering workstations existed. There's a good argument that the "right" approach was to use an MC68K and, while you were at it, a "real" operating system whether a Unix or one of the 16-bit operating systems in use on minicomputers at the time. But there's also a good argument that, had you done a more open and mass market-oriented engineering workstation (whatever that meant exactly) at, what?, 2x the price point of an IBM PC--which, remember, didn't even always have a hard disk at the time--you'd not have been competitive with Z80 or 6502 machines.
Even using the 8088 vs. the 8086 was a cost-saving move. A premium IBM PC might well have simply flopped rather than accelerating the industry.
It's not clear to me that at the time the m68k was that much more expensive than x86. It certainly was not by 84/85 when the Atari ST was shipping as a sub-$1000 cheap home computer based around it.
I think the bigger compelling piece for x86 was its continuity with the top-selling 8080/Z80 CP/M machines that were the effective standard at the time. IBM offered both PC-DOS (cheap) and CP/M (expensive), and wasn't sure which was going to win out. And PC-DOS was basically a kind of clone of CP/M, down to the API call names.
This could be apocryphal (there was free beer at the company meeting), but I think I recall he (Gates) mentioned at the time that the existence of a solid chipset to support the 8088 was something that drove the ultimate decision.
There was also the fact that the IBM people working on the original PC had already established familiarity with Intel's architecture through their work on an earlier IBM product, the Datamaster (http://www.oldcomputers.net/ibm5322.html), which used the 8-bit Intel 8085.
There were a number of reasons why we chose the Intel 8088 as the IBM PC's central processor.
1. The 64K-byte address limit had to be overcome. This requirement meant that we had to use a 16-bit microprocessor.
2. The processor and its peripherals had to be available immediately. There was no time for new LSI chip development, and manufacturing lead times meant that quantities had to be available right away.
3. We couldn't afford a long learning period; we had to use technology we were familiar with. And we needed a rich set of support chips -- we wanted a system with a DMA controller, an interrupt controller, timers, and parallel ports.
4. There had to be both an operating system and applications software available for the processor.
Points 1 and 3 both reference lessons learned from the Datamaster project -- #1 is about the desire for the PC to overcome a limitation the Datamaster's 8-bit CPU had imposed on it, and #3 refers to the fact that the 8086 and 8088 were close cousins of the 8085, so the IBMers wouldn't have to learn a whole new architecture from scratch.
It's not hard to imagine the decision coming down to Bradley (or someone else on the Entry Systems Division team) calling someone they knew at Intel and saying "we need a 16-bit processor as similar to the 8085 as possible that you can deliver in volume tomorrow. Whatcha got?"
Point #4 would definitely have been a concern for the m68k as well. DR's CPM/68k wasn't AFAIK available yet (came a few years later), and Unix would have been expensive and too heavy weight.
They only offered CP/M after Kildal threatened a lawsuit, and at 3x the price. I think it was fairly certain which would win by IBM. That and DOS was mostly compatible, famously porting Visicalc only required changing 3 bytes.
It was not (or not just) for cost-saving reasons. It was due to a cross-licensing agreement between Intel and IBM for technology called Bubble Memory which turned out to be flop, but IBM didn't know at the time that it would flop.
"Next came the 8088, the processor for the first IBM PC. Even though IBM engineers at the time wanted to use the Motorola 68000 in the PC, the company already had the rights to produce the 8086 line (by trading rights to Intel for its bubble memory)"
I saw an Amiga once in person around 86 and spent that next decade disappointed, but advocating that the future of computing was going to be great. Emotionally I still feel like we haven't caught up to the Amiga but I imagine that isn't really true, heh.
I must have been 12 or 13 years old when I first met an IBM PC. I was used to 8 bit micros having BASIC right away (and colour). But you couldn't do anything with a PC before using two floppies. First DOS then whatever. It just seemed awful. Why would anyone want one of those?
I was used to all the 8 bit machines and their graphics and sound too, but I was enthralled by 80 column BASIC and DOS with its hierarchal file system as well. I saw it as a separate branch of computing entirely.
And once EGA came out, it quickly started to surpass the 8 bits as a gaming platform too.
Similar story with me. I got an Amiga 1000 and did a fair bit of assembly coding on it, then ended up writing some 16-bit x86 assembly for school later on. Being used to having sixteen 32-bit registers, then all the sudden having to use AX, BX, CX, and DX (and don't forget they all have slightly different purposes!) was like being brutally shoved back into the 80's.
Well, history has shown neither RISC nor CISC as actually a better choice, since both models more or less converged to a sort of hybrid design years ago.
At a simplistic level, the difference between RISC and CISC processor design boils down to having many registers and reduced instructions, or few registers and extra specialized instructions.
What was being described is going to programming from a RISC-like design processor to a CISC-like design processor, and how they felt constrained after doing so. It likely does feel more constraining (I don't really remember how I felt about it back when I did it, but I also went the other direction, and only in the context of classwork), but in the end, most people are programming a level removed from that anyways.
There used to be quite a lot of arguments about what design was better (IMO mostly fueled by Macs running a RISC processor and Windows running a CISC processor, at least until Apple switched to x86). I find it slightly comical that both designs ended up in a fairly similar place though (with RISC processors adding extra instructions, and CISC processors adding more registers, even if mostly just logical registers).
But 1981 was just too early for 68000 non workstation machines since the early chips were slow and expensive. The 1983 Lisa was limited to 4MHz, for example, in contrast to the 1984 Macintosh's 8MHz. I remember the price of the chips dropping from over $100 to less than $20 in just one year back then.
This I can believe. It's reasonably well known that the first PC design was deliberately crippled in order not to impact on sales of the dedicated word processor, the IBM Displaywriter.
The 8086 was thought too powerful and would compete against existing IBM products, so the 8088 was chosen. Other changes to expansion and bus architecture were on the same basis.
I spent over a decade completely failing to understand how it could succeed against Amiga.
I'm not even sure he was as wrong as people claim. They used to do a lot with very limited memory. Now, modern computers "need" hundreds of megabytes for a chat application, and slow down for the latest Gmail revamp. The quote serves as a reminder of how well we used to economize on memory.
>If someone at IBM decided that there should be 640Kb of available RAM for programs it's believable that Bill might have simply been agreeing with them.
Yeah, "640k should be enough for anybody (specifically in the context of a conversation about current hardware of software and not necessarily in perpetuity)"
It wasn't even wrong. There wasn't a need for that much memory on a desktop then. You could already do wonders with 64KB on an 8bit micro: edit text, run spreadsheets, play games. You would need more for multimedia or web surfing, but that was still in the future.
There is a limit though. By the time you get to the point where you can store more high-definition movies than you can possibly watch in a lifetime you have definitely passed the point of diminishing returns. And with non-volatile storage, we're pretty much already there.
Until a new format comes out which requires magnitudes more storage?
I can already imagine vr-style videos pushing 8k with huge dynamic range and very high framerates becoming more common if the technology continues to go that direction, and suddenly a full video export in the highest quality becomes a magnitude (or 2!) jump larger.
As videogames become higher resolutions, they require higher res textures, and less compressed audio, and more detailed models. Not just like 50% more detailed, but 10x more detailed.
Sure, we are beyond the point now where it's pretty easy for the average person to store all information they ever could need on spinning disks for pretty cheap, but once that next "thing" comes out that requires a magnitude more, we are right back to looking silly for thinking 5tb should be enough for anyone!
> Until a new format comes out which requires magnitudes more storage?
No, even that has a limit. We're getting to the point where humans will be unable to perceive additional improvements in resolution. It's no different from audio. CDs are unchanged from when they were introduced 36 years ago because humans cannot hear the difference between a CD and "higher-qualitY" audio. There is a point where that will happen for video: when you can fill the entire field of view of the human eye with video the same resolution as your fovea at ~100FPS, that's it. There is no more room for improvement.
> No, even that has a limit. We're getting to the point where humans will be unable to perceive additional improvements in resolution.
Not all improvements come with only resolution as the change. It's entirely possible (if somewhat less feasible, based on what I think) that we might start encoding movies as full 3D landscapes, with some preset positions for each scene (e.g. where the director wants the"camera"), but that people could roam around to view it from different aspects at their discretion. This is less or more interesting in certain performances, but imagine some great war film, and you can flit around to see the different people storming the beach or crossing no-man's land. What if you decide to make your own run and see if you would have made it or not?
3D headsets are just now breaking into the mainstream. That's a major shift in medium if taken advantage of, and it could easily create use cases where the media is many multiples of it's current size.
> There is a point where that will happen for video: when you can fill the entire field of view of the human eye with video the same resolution as your fovea at ~100FPS, that's it. There is no more room for improvement.
There's a lot of room for improvement in VR though. VR is computationally expensive because you have to calculate 2 sets of high resolution imagery. Not to mention that immersiveness in VR comes at a resolution cost. We're nowhere near 100FPS, high resolution 4k VR imagery.
I mostly agree with you. I wrote a paper during my time at Bose arguing against the rise of 4k which in retrospect I think has only been halfway true so far -- we've known for many years that consumers would not experience a significant improvement upgrading their televisions, but the 4k market is burgeoning anyways. We also didn't anticipate back then how important 4k would be to gaming and VR.
Not to mention that the lack of penetration of higher quality music in the market is mostly a cost problem rather than a storage problem. The average consumer cannot afford the sound setup necessary to truly utilize these higher quality codecs, whereas a 4k television panel can be had for under 500 now a days (!!!!). Netflix offers 4k streaming at 10/month, whereas Tidal's lossless streaming costs 20/month. It is shockingly inexpensive to be into high quality images.
4K works for 40 degree field of view (That's pushing it, but for immersive movies that's what THX recommends). 4K works because of the increased HDR and framerate.
But most of it is 4K works because of the hype. Why buy last year's model?
4K is a resolution for 40 degrees wide and 23 degrees high. That's about 1/45th of a sphere, or about 2% of the total you'd need for a fully immersive 360 degree picture.
From what I've seen, 120fps is a clear improvement over 60fps, and that's just on a normal flat screen.
So even with a fixed focus single image you're looking at needing 400 megapixels. At 30 bits per pixel that's 12GBit per frame, or 1.5TBit/second.
You've then got technology that records depth, and allows people to chose their own depth of field. And why stop at visible resolution - we don't with pictures, because we can zoom in. Imagine a choice of say 100 360 degree cameras around a football stadium that allows you to zoom to a desired level, you could be up Petabit emerging from the stadium.
> whereas a 4k television panel can be had for under 500 now a days
i would be much more worried about color accuracy than resolution with a $500 tv. could be i'm wrong due to economies of scale from large amount of consumers demanding "the 4K", but my guess is that a $500 1080p tv could look significantly better than 4K at the same price.
Indeed, imagine how much space you'd need to have something like google streetview, at a resolution that not only is 4K for any given viewport, but allows zooming in and maintaining that 4K resolution for a significant magnification.
Then multiply it by 3 orders of magnitude to bring in temporal detail.
And you're still after a format that records the depth of each pixel, allowing recreation of a true 3d environment.
The numbers would be astronomical. Lets say a single 360 degree picture, using 30 bits per pixel (R,G,B,Depth at 10 bits each), allowing 100x zoom, so 40gpixels, 50 bits per pixel, that's 200GBytes per image.
One image every metre, or 1600 every mile, 4 million miles of roads in the U.S. alone. That's a billion terrabytes.
1Exabyte is 10% of what Randall Munroe estimated google had in 2013. Not that much. Wow.
Re: It wasn't even wrong. There wasn't a need for that much memory on a desktop then.
What more RAM does is allow programmers to "be lazy": slap libraries together and use powerful but resource-hungry abstractions rather than hand-tune details.
We have a similar pattern today with JavaScript and CSS layering in web pages, making them slow and bloated.
It's increasing hardware usage in order to reduce greyware (human programmer) usage. Whether such is "smart" or economical makes for an interesting debate. It appears consumers prefer cheaper software over cheaper hardware for some reason. Software developers who are fastidious over hardware resource usage (RAM & CPU) are not sufficiently rewarded. The group that slaps existing API's together to get their product out quick and cheap seem to come out ahead.
I remember how MS-Office for DOS shipped on 7 floppy disks. I kept wondering why people tolerate loading 7 floppies. It's because the alternatives of the time were harder to use or cost more.
There was no version of Excel for DOS either. It started on the Mac, then went straight to Windows. IIRC the first couple of versions even came bundled with the Windows runtime.
No, the point of the 'quote' is people trying to make a point that 'even Bill Gates' can't predict the future need for technology requirements expanding.
Of course that's wrong, and most of the time it is used by people who don't understand the trade offs made in incremental advancements in tech standards.
He didnt understand he was wrong. He never learnt a lesson. Years later when Microsoft was launching their Zume audio player, he played a fool on the scene with bunch of people acting that he never heard if iPod.
I don't think the point is that Bill Gates should be ashamed. It's a reminder how fast technology changes and that the assumptions we make today could be invalidated just as quickly.
I was doing OS coding in those days - and writing both drivers and apps on top of Windows. People forget what was happening back then.
Hardware had removed the 640K memory limit - but Windows stuck with it for years afterward. Not for any technical reason, but because they dominated the market, and neither needed to change nor wanted to change - no matter how hard that made things for developers.
I worked with Microsoft guys, and they were very blunt about not wanting to change their working OS code if they didn't need to - so Bill held back the entire industry for years.
MS has always been famously conservative when it comes to making sure old software still functioned on newer iterations. They launched a completely new OS (NT) just so they wouldn't have to kill true DOS compatibility. They put special case instructions in their OS to recognize applications and ensure they worked.
It's easy to say they put back "the industry" for years, if we define the industry as chip design, but I think it's just as easy to make a case that they greatly expanded the industry over this time by giving people a platform and OS combo that could continue to run their software from a few years back even after upgrading every component. In my opinion, consumer confidence likely greatly outweighed the other benefits, as it allowed economies of scale to really be reached, and spurred the whole industry forward from the massive demand.
What we are arguing about is whether there were any options other than those chosen by Apple (abandon developers with Motorola 68K) and Microsoft (don't support anything other than segmented architecture). Since I worked with the Microsoft guys, Mach engineers (since I was one), and did OS development, I would say that there were definitely other choices for Microsoft. We added backward compatibility via Mach, which was picked up by Microsoft. But the Intel guys (who I also worked with) had provided newer generation chips to Microsoft years before - and they allowed development with either segmented architecture or with a linear virtual address space. They described conversations with Bill where Bill had refused to make any changes since it wouldn't increase his revenue.
My comment was essentially about market economics, so whether Microsoft had access to specific hardware and chose to develop for it or not is only half the equation, which is hinted at by your recollection of what Gates said.
If he thought he couldn't make any money implementing it, that means he didn't think there was a market for it that would return the investment. I think it's entirely possible he created that market by driving adoption until the point where that feature it could be supported.
The question can essentially be flipped, and you can ask why Intel didn't create the hardware with those features initially. The answer is likely that it would have taken more research (if it didn't already exist in much more expensive processors) and would have driven the cost of the processors to the point of not being worthwhile. Is Intel then responsible for setting the industry back by years, because they didn't market a processor they likely could if they took longer and/or charged more?
The Intel guys offered not only to fully fund the development, but to fully staff it and pay Microsoft for all the bother. Intel would have gotten their money back in chip sales. Bill didn't care.
And early Intel 486 chips allowed both segmented and non-segmented programs to run - if the OS on top supported it. I was working at SCO at the time (we were working with Microsoft on XENIX). There was a processor mode to flip between segmented and non-segmented. We supported both - but who would use a segmented program when they could have 2GB of virtual space?
Anyway, this is all neither here nor there. If someone wants to philosophically believe in rational markets and insightful and honest executives, well, that is a choice they can make.
What time frame is this? Windows 3.0 (and up through 9x) is supposed to have supported protected mode when programs were coded to make use of it.[1] Or maybe you're referring to what that article calls Virtual 8086 mode. That seems to have been supported in the 386, with "protected mode" supported all the way back in the 286. I dunno, you seem more knowledgeable about the specifics of this than me.
> The Intel guys offered not only to fully fund the development, but to fully staff it and pay Microsoft for all the bother.
In a world where increasing software complexity or having outsiders contribute a sizable or complex piece of code to your private codebase has no cost in future development complexity or runtime, this might have been purely an upside. In the real world, there's there are other considerations, which is likely why it was rejected. Otherwise, why would anyone turn down free development time? Are we to assume Gates was so capricious as to turn down something this beneficial, or that he had resons we haven't adequately covered yet?
> If someone wants to philosophically believe in rational markets and insightful and honest executives, well, that is a choice they can make.
I don't believe in entirely rational markets and honest and insightful executives, but I do believe in people following what they think that market will do, and in executives that turn down things they think are a bad idea, right or wrong. I'm willing to bet Gates had a lot more information than we do when making this decision, and had his reasons. I think it's possible that he could have been right.
Well to talk about this more would take the conversation in a completely different direction. Bill met with Steve Jobs and they divided the market by including and removing technical features. Similarly, they met with the various workstation vendors and mini vendors and agreed to add or remove features to create "effective monopolies" based on product differentiation. It can't be proven in a court of law, and it was agreements between top executives who would cancel or undermine internal development projects. Like networking, office software, hardware included -- the decision to support types of programs was negotiated. I worked for direct reports of three of the executives involved at different times (SCO, Steve, Bill) and heard the same stories - as projects were cancelled or competitors products were purchased/killed in exchanges which often also involved offshore transfers between "competing" executives. I'm always hesitant to say these things on HN, since people here always insist on proof - when those involved went far out of their way to insure that no proof exists.
> MS Excel from back then won't run on anymore, 16-bit apps aren't recognized by modern Windows, etc.
They certainly will run, even if only through emulation or API conversion. In fact, that's probably what modern MS Excel does to old XLS docs, which is convert them to an in memory format that probably more closely resembles The Office Open XML format than the Excel Binary File Format (the extension may or may not change, but the format did).
> I posit that .XLS is a more stable platform than Windows itself.
Well, ignoring that we've drifted quite far from hardware, I would say that Excel (which would be the actual platform, not the container format) is not a general purpose computing platform (at least not a feasible one), not something that necessarily defined what architecture is being used, except tangentially.
>So, here's a thought for ya: MS Excel from back then won't run on anymore
Here's a thought for you: it actually does run on Windows 10.
In particular, Excel 3 for Windows 3 installs and runs on Windows 10 out of the box. Here's a screenshot on my system[1]
Again, let me emphasize: this is software with a GUI written in 1991 for an OS released in 1990 which just works on Windows 10 in 2018 -- no VM required.
This is the second major release of MSOffice for the PC. The previous release, Excel 2, was running under Windows 2.0, which nobody wants to remember, and which is indeed not supported.
On the other hand, its installer - a DOS program - runs fine because DOS programs still run in windows 10.
The compatibility breaks on 64-bit releases of Windows. But all the major versions are available in 32-bit, which you can run on any hardware you can put the 64-bit version on.
It was a software limit, inasmuch as the software wanted to run in real mode even though by 1989 you had a modern 32 bit cpu that had all the features to run Windows 10 today.
And the first PC design was deliberately spec-reduced in order not to impact on sales of the dedicated word processor, the IBM Displaywriter.
The 8086 was thought too powerful and would compete against existing IBM products, so the 8088 was chosen. Other changes to expansion and bus architecture were on the same basis.
The PC was not supposed to be the benchmark design on which the entire future of computing was built. If you were looking for one of those better off starting with an Amiga. :)
That's right. My first PC had 512K (and a NEC V40 CPU, 80188 compatible). The first time I met someone at school owning a PC with 640K I found it really weird, like it was an usual number coming from a ZX Spectrum 8-bit with 128K of RAM.
Linus Torvalds on the other hand did indeed say ”Anybody who needs more than 64Mb/task - tough cookies” on the original Linux announcement email chain.
For both Linus and Bill - anything they said you have to remember the context. 640K was - "YUUGE" (always say it right) For Linus releasing linux at the time a 64Mb task was "YUUGE" (again just make sure you always say it right)
This is not really the same thing though, that's not saying "64MB per task should be enough for anybody", actually it's arguably the opposite. In his original announcement he clearly introduces his project has a somewhat limited OS.
Sure, Bill. Of course you didn't say something like that as it would make you sound totally clueless to future generations. You wouldn't want a howler of a mistake like that to be your calling card, would you? So, yeah, of course you didn't say it.
Slightly off-topic, but it's cool to see David Mikkelson posting in that Usenet group as "Snopes," as that's where he first used the name, even before launching the urban myth-busting site in the '90s.
I had no idea Snopes was that old; that was my takeaway from this as well. We've always assumed it wasn't an actual quote from Gates, but I only knew Snopes as the website.
Snopes wasn't originally called "Snopes," was it? I seem to remember it as something else, like "urbanlengend" or something. Maybe the movie bought the name?
Although I'm sure hardware companies will find a way to promote deep learning techniques into home computers, which will obviously require more and more transistors.
197 comments
[ 4.7 ms ] story [ 212 ms ] threadIn the film of Johnny Mnemonic, the screenplay of which was penned by Gibson himself, Johnny must act as a courier for 320 GB by using a brain implant -- in 2025. It's 2018 in the real world, and data smugglers today would probably get farther by swallowing toy balloons with two or three microSD cards in them than by going the whole invasive wipe-your-childhood-memories brain implant route (if such a route were available).
That said, it's one of my favourite books.
If you'd like to be literal about it, dense snowfall, perhaps?
Anyway, the point, I think, was that it shouldn't look like any sky today, but rather like a futuristic sky.
> The sky above the port was the color of television, tuned to a dead channel.
That first sentence characterizes the novel's diegetic (in-narrative) setting by giving the sky a property of an alternate medium (television). Unlike gentler rhetorical assertions such as simile, the declaration that the sky possessed a property of television suggests that the setting--like the intra-diegetic setting of the (Morrocan) beach in which an unnamed adversarial AI imprisons Case--is also a media construct in which the reader is imprisoned.
In other words, the media topology structuring the novel's outermost narrative is a recursive formation of one medium inside another medium and this structure is timeless. It's merely recursion.
However, fully understanding the literary (as opposed to narrative) significance of such a structuration depends upon knowing what television was and why any of its channels might be "dead" as opposed to "live".
A useful point of comparison can be found in William Shakespeare's _As You Like It_ (II.VII.139-143)
The significance is timeless, drawing power from the assertion that life is in fact lived on a stage. On the other hand, the description is also time bound (as well as culturally circumscribed) depending as it does on the greatly diminished (since Elizabethan England) medium of live performance.EDIT: Fix predicate in first sentence. Formatting. Change "at" to "a" in penultimate sentence.
I say that as someone that finds that line rather nice.
(Copy and paste the link, referrer shenanigans.) https://www.jwz.org/blog/2012/01/snow-crash-simulated/
Also, thanks for mentioning the copy/paste referrer nonsense. Didn't realize they blocked referred links from here and was curious what the reference was for a time. :)
Last television I hooked up using a digital antenna would simply not show anything if the signal didn't exist. If you had poor signal, you'd get more compression artifacts. Nothing there should translate to the white noise image.
Right?
https://www.youtube.com/watch?v=ZC_uTMkmH08
Could they research it and find the answer? Yes. But that is different from just knowing it.
This makes it unlike the stage imagery, which is still accurate.
It is a very nice line.
However, it's dated to the point of losing its meaning.
Like rotary phones :-)
That's a very interesting take. I never took it to have such a deep meaning, I took it rather at face value (and its face-value-interptretation if you will): that is was visual white noise (vaguely like driving into the snow at night, perhaps?). I took the metaphorical meaning to be that the sky was indistinct, somehow pointless (like watching no channel), conjuring up bleakness and futility.
In other words, I took it to be a device to transport ambience, not structural meaning.
> In other words, the media topology structuring the novel's outermost narrative is a recursive formation of one medium inside another medium and this structure is timeless. It's merely recursion.
Interesting. I had meant to re-read it anyway. I shall pay attention to your perspective, see how it shifts my perspective of the rest of the book.
> However, fully understanding the literary (as opposed to narrative) significance of such a structuration depends upon knowing what television was and why any of its channels might be "dead" as opposed to "live".
To my kids, a "dead channel" would look uniformly blue.
Or like a 404 page perhaps, these day :-D
> The significance is timeless, drawing power from the assertion that life is in fact lived on a stage.
I feel you might be you're over-thinking it there, in the sense that the actors in a TV show wouldn't be seeing static. Only viewers would.
Thanks for sharing your perspective, I found it really interesting.
See Numenera [0] though, set a billion years in the future, while still keeping a sense of familiarity.
[0] https://numenera.com
Since part of its purpose was as a writer's guide that terminlogy slipped into the shows and was quite believable when some character expressed surprise that a tiny chip could carry '15 kiloquads' of data. It worked very well.
The setting too leaves a lot of room and options for a good DM to expand into and build upon.
You can base almost any kind of story in Numenera, with tech levels ranging from primitive to medieval to hyper-sci-fi.
And yet that is what every successful RPG does.
Story != Themes.
Setting/cosmology/pantheon/bestiary/etcetera != Story.
D&D is the system, or “game”, with many settings from Planescape to Spelljammer.
The Forgotten Reams is a setting, with many stories from Drizzt Do’Urden to Neverwinter Nights.
They did want an interactive TV set.
To add: If were to be asked if I had a Computer in my house, and I didn't actually have my tower or MacBook, I would respond "No."
My phone is a computer. Period.
But 64 bits should be enough for anybody.
For global or large system level addressing 128 to 256-bits should be enough.
(note: you may want local 128-bit virtual addressing for other reasons than accessing more memory)
You don't want to share the same compact memory allocator with the malloc(3) from the other side of the galaxy, or even different city.
Yes, that's why IPv6 is as big as it is. We could fit pretty comfortably into 64 bits for a long time, really, if you assume we fairly tightly pack everybody in. 128 bits is really to give us some routing headroom, not because anyone seriously thinks we're going to use IPv6 on 2^128 distinct targets any time soon. (By the time we have a "galactic internet" it sure won't be using IPv6, not because it's bad or wrong but just because we're going to need something designed to handle the very different challenges involved.)
So yes, highly likely for a little while..
> I expect that to change before upgrading to 128-bit pointers.
Or the joke was wasted on me. Did you mean it will never be feasible?
I think the value of a larger pointer (immediately) would be tags, not memory density, just as it was with 64-bit systems -- my old Alpha only had 256mb of ram, and maxed out at 512mb IIRC.
Wow. What kinds of workstation tasks need this kind of memory, if I may ask?
It is popular to buy a bunch of servers (or worse, host them on AWS), a bunch of sysadmins, and so on, so you can support a couple smart analysts with some complex hadoop java streaming somethingrather, but it is much cheaper to just buy them beefy workstations and use awk: A HP Z8 G4 with 1.5TB ram is under £30k, and it's hard to get a sysadmin that has any brains for that, let alone two and servers...
??? I know of multiple high end servers with 1TiB+ memory footprints. What is your definition of high end?
Here, have a look at HP's page if you don't believe me: https://www.hpe.com/us/en/product-catalog/servers/proliant-s...
And I'd hardly consider those "high end", there are much larger memory servers out there if you want them.
I've already run into cases of programs figuring that a "64-bit" address space is basically infinite and running out of address space by trying to have tens to hundreds of thousands of 4GB memory mappings (not necessarily backed by RAM).
Aarch64 on the other way...
The point was, that there will be not a problem with tagged pointers. The pointers have to be clean today when used, so those who use tagged pointers have a place in their code where they handle the cleaning.
Some very old distributed systems used 64 bit pointers where the upper bits told you what machine the data was on.
And we have Intel putting SSD card in DIMM slots. I expect there are semantics attached to those address ranges as well.
I dunno where we are after Spectre, but one of the microkernel architectures got its IPC speed by packing most processes into a couple of address spaces, only with different read write access. On preemption the TLB wasn’t invalidated (about half the cost), just modified.
These are the sorts of tricks you do when your address space is bigger than you will ever need. I expect to see more of this as time goes on. And if we ever see 128 bit pointers, expect crazy stuff like this to be de rigeur.
There are still things you could do, of course. For example, you could more or less NaN-box but rotate the bits so the tag is in the lowest bits instead of up in the exponent, then ensure all your pointers are sufficiently aligned. That would mean a perf hit on doubles to do the rotation to recover the double, but you might be right that this is not too bad in practice on modern hardware.
Well, there goes that startup idea ...
:-)
It was making fun of the 640K limitation of MS-DOS, and the implicit reasoning behind that hard limit.
https://quoteinvestigator.com/2011/09/08/640k-enough/
While he didn't use the exact words of the title quote, there are multiple sources which indicate he was indeed surprised at how fast applications grew in memory requirements/usage. Thus, I rate it as "partly true".
At lot of it was probably caused by the switch from hand-crafted low-level code to libraries and compilers, which usually take up more RAM for comparable features. While such tools sometimes can produce compact code, it's often not considered economical by publishers.
the fact that a direct quote doesn't exist doesn't mean that it wasn't the sentiment at the time.
> I always thought he was talking about his monthly bonus, not computer memory...
Ha!
The 640K limitation derives from the 1MB address space of the IBM PC, and as the name implies, IBM did the hardware design. They did it around a particular Intel chip, which had a 1MB address space. IBM could've put in hardware support for bank switching (as some EMS/XMS add-in cards later did), they could've used a chip with more than 20 address lines, they could've done a lot of things.
But they didn't. IBM wasn't designing a mainframe-killer, they were designing a personal computer. It was competing with 16k and 64k 8-bit machines, and the first IBM PCs shipped with 64k and later 128k of RAM. Using the top 384K for peripherals and allocating 640K for programs must've seemed insanely generous at the time. But whoever made that decision, it was on the hardware side, not anyone at Microsoft.
The hardware supported more than 1MB, as later CPUs proved. However, MS-DOS didn't really support it, as EMS/XMS proved:
https://www.filfre.net/2017/04/the-640-k-barrier/
I'd say that you've got it backwards, in my opinion. And in the opinion of that fine article I linked.
That excuse is valid for 8086, but it's no longer valid for the 386.
Even when expanded memory was an option, loading a bank switching memory extender to work around the cpu’s Address range limitations left less base memory left for non-EMM aware apps to run in. Many times I remember discussing with users the pros and cons of different memory managers and aporoaches, but most of the time in that era, not using them at all and using bare bones MS-DOS was actually the best choice. Some users would have two boot disks. One without EMM386 to run software that wasn’t expanded/extended memory aware to maximise the memory available to them, and another with EMM386 to run one or two apps that were.
The 80286 CPUs did support up to 16 MB of RAM, but they needed to be switched into protected mode to be able to use it. The problem was, that there was no way to switch back, except reset. That might be the reason, why MS DOS never supported this mode.
With 80386, it was possible to run in protected mode AND run real mode binaries in VM86 mode, which is exactly what Windows 3.x used.
The 80286 reset thing wasn't a full PC reset, but a CPU reset.
True
> The 80286 reset thing wasn't a full PC reset, but a CPU reset.
That required an extra hardware and BIOS support. The CPU had to be reset externally, and after jumping to FFFF:0000, the BIOS had to recognize that this is a CPU reset, not re-initialize the hardware and return execution to where it came from.
Bill Gates' famous comment isn't really a decision though. As it's usually cited it's just an opinion - '640Kb should be enough for anyone' means "I don't think any programs will need more than that!". If someone at IBM decided that there should be 640Kb of available RAM for programs it's believable that Bill might have simply been agreeing with them.
The main thing that's annoying about the quote is that it's trotted out as an example of how Bill was wrong, as if being wrong is something terrible that he should be ashamed of decades later. That's nonsense. Being wrong is fine so long as you change your mind when you understand that you are wrong.
“8 core CPUs or 32GB of RAM are more than enough for gaming” (c) 2018
Facts change and opinions change with them. Wonder if Moore’s law will get the same treatment now.
Even using the 8088 vs. the 8086 was a cost-saving move. A premium IBM PC might well have simply flopped rather than accelerating the industry.
I think the bigger compelling piece for x86 was its continuity with the top-selling 8080/Z80 CP/M machines that were the effective standard at the time. IBM offered both PC-DOS (cheap) and CP/M (expensive), and wasn't sure which was going to win out. And PC-DOS was basically a kind of clone of CP/M, down to the API call names.
David J. Bradley (https://en.wikipedia.org/wiki/David_Bradley_(engineer)) worked on both the Datamaster and the PC projects, and explained the reasoning behind the choice of the 8088 for the latter in an article in the September 1990 issue of Byte (https://archive.org/stream/byte-magazine-1990-09/1990_09_BYT...):
There were a number of reasons why we chose the Intel 8088 as the IBM PC's central processor.
1. The 64K-byte address limit had to be overcome. This requirement meant that we had to use a 16-bit microprocessor.
2. The processor and its peripherals had to be available immediately. There was no time for new LSI chip development, and manufacturing lead times meant that quantities had to be available right away.
3. We couldn't afford a long learning period; we had to use technology we were familiar with. And we needed a rich set of support chips -- we wanted a system with a DMA controller, an interrupt controller, timers, and parallel ports.
4. There had to be both an operating system and applications software available for the processor.
Points 1 and 3 both reference lessons learned from the Datamaster project -- #1 is about the desire for the PC to overcome a limitation the Datamaster's 8-bit CPU had imposed on it, and #3 refers to the fact that the 8086 and 8088 were close cousins of the 8085, so the IBMers wouldn't have to learn a whole new architecture from scratch.
It's not hard to imagine the decision coming down to Bradley (or someone else on the Entry Systems Division team) calling someone they knew at Intel and saying "we need a 16-bit processor as similar to the 8085 as possible that you can deliver in volume tomorrow. Whatcha got?"
"Next came the 8088, the processor for the first IBM PC. Even though IBM engineers at the time wanted to use the Motorola 68000 in the PC, the company already had the rights to produce the 8086 line (by trading rights to Intel for its bubble memory)"
https://www.ibm.com/developerworks/library/pa-microhist/inde...
That's what it always felt like as an Amiga user. Not before DOOM there was much I liked on the PC.
Release Amiga 1000: July '85 Release DOOM: December '94
And once EGA came out, it quickly started to surpass the 8 bits as a gaming platform too.
What was being described is going to programming from a RISC-like design processor to a CISC-like design processor, and how they felt constrained after doing so. It likely does feel more constraining (I don't really remember how I felt about it back when I did it, but I also went the other direction, and only in the context of classwork), but in the end, most people are programming a level removed from that anyways.
There used to be quite a lot of arguments about what design was better (IMO mostly fueled by Macs running a RISC processor and Windows running a CISC processor, at least until Apple switched to x86). I find it slightly comical that both designs ended up in a fairly similar place though (with RISC processors adding extra instructions, and CISC processors adding more registers, even if mostly just logical registers).
The Classic Mac was as well, but PowerPC based macs were RISC, which is what I was recalling in my followup.
68000 has it right!
http://www.old-computers.com/museum/computer.asp?st=1&c=623
But 1981 was just too early for 68000 non workstation machines since the early chips were slow and expensive. The 1983 Lisa was limited to 4MHz, for example, in contrast to the 1984 Macintosh's 8MHz. I remember the price of the chips dropping from over $100 to less than $20 in just one year back then.
The 8086 was thought too powerful and would compete against existing IBM products, so the 8088 was chosen. Other changes to expansion and bus architecture were on the same basis.
I spent over a decade completely failing to understand how it could succeed against Amiga.
Yeah, "640k should be enough for anybody (specifically in the context of a conversation about current hardware of software and not necessarily in perpetuity)"
In 10 years, that might be a hilariously small number, but for right now, it's way more than the extreme vast majority will need.
I can already imagine vr-style videos pushing 8k with huge dynamic range and very high framerates becoming more common if the technology continues to go that direction, and suddenly a full video export in the highest quality becomes a magnitude (or 2!) jump larger.
As videogames become higher resolutions, they require higher res textures, and less compressed audio, and more detailed models. Not just like 50% more detailed, but 10x more detailed.
Sure, we are beyond the point now where it's pretty easy for the average person to store all information they ever could need on spinning disks for pretty cheap, but once that next "thing" comes out that requires a magnitude more, we are right back to looking silly for thinking 5tb should be enough for anyone!
No, even that has a limit. We're getting to the point where humans will be unable to perceive additional improvements in resolution. It's no different from audio. CDs are unchanged from when they were introduced 36 years ago because humans cannot hear the difference between a CD and "higher-qualitY" audio. There is a point where that will happen for video: when you can fill the entire field of view of the human eye with video the same resolution as your fovea at ~100FPS, that's it. There is no more room for improvement.
Not all improvements come with only resolution as the change. It's entirely possible (if somewhat less feasible, based on what I think) that we might start encoding movies as full 3D landscapes, with some preset positions for each scene (e.g. where the director wants the"camera"), but that people could roam around to view it from different aspects at their discretion. This is less or more interesting in certain performances, but imagine some great war film, and you can flit around to see the different people storming the beach or crossing no-man's land. What if you decide to make your own run and see if you would have made it or not?
3D headsets are just now breaking into the mainstream. That's a major shift in medium if taken advantage of, and it could easily create use cases where the media is many multiples of it's current size.
There's a lot of room for improvement in VR though. VR is computationally expensive because you have to calculate 2 sets of high resolution imagery. Not to mention that immersiveness in VR comes at a resolution cost. We're nowhere near 100FPS, high resolution 4k VR imagery.
I mostly agree with you. I wrote a paper during my time at Bose arguing against the rise of 4k which in retrospect I think has only been halfway true so far -- we've known for many years that consumers would not experience a significant improvement upgrading their televisions, but the 4k market is burgeoning anyways. We also didn't anticipate back then how important 4k would be to gaming and VR.
Not to mention that the lack of penetration of higher quality music in the market is mostly a cost problem rather than a storage problem. The average consumer cannot afford the sound setup necessary to truly utilize these higher quality codecs, whereas a 4k television panel can be had for under 500 now a days (!!!!). Netflix offers 4k streaming at 10/month, whereas Tidal's lossless streaming costs 20/month. It is shockingly inexpensive to be into high quality images.
But most of it is 4K works because of the hype. Why buy last year's model?
4K is a resolution for 40 degrees wide and 23 degrees high. That's about 1/45th of a sphere, or about 2% of the total you'd need for a fully immersive 360 degree picture.
From what I've seen, 120fps is a clear improvement over 60fps, and that's just on a normal flat screen.
So even with a fixed focus single image you're looking at needing 400 megapixels. At 30 bits per pixel that's 12GBit per frame, or 1.5TBit/second.
You've then got technology that records depth, and allows people to chose their own depth of field. And why stop at visible resolution - we don't with pictures, because we can zoom in. Imagine a choice of say 100 360 degree cameras around a football stadium that allows you to zoom to a desired level, you could be up Petabit emerging from the stadium.
i would be much more worried about color accuracy than resolution with a $500 tv. could be i'm wrong due to economies of scale from large amount of consumers demanding "the 4K", but my guess is that a $500 1080p tv could look significantly better than 4K at the same price.
Then multiply it by 3 orders of magnitude to bring in temporal detail.
And you're still after a format that records the depth of each pixel, allowing recreation of a true 3d environment.
The numbers would be astronomical. Lets say a single 360 degree picture, using 30 bits per pixel (R,G,B,Depth at 10 bits each), allowing 100x zoom, so 40gpixels, 50 bits per pixel, that's 200GBytes per image.
One image every metre, or 1600 every mile, 4 million miles of roads in the U.S. alone. That's a billion terrabytes.
1Exabyte is 10% of what Randall Munroe estimated google had in 2013. Not that much. Wow.
Fidelity has diminishing returns though.
What more RAM does is allow programmers to "be lazy": slap libraries together and use powerful but resource-hungry abstractions rather than hand-tune details.
We have a similar pattern today with JavaScript and CSS layering in web pages, making them slow and bloated.
It's increasing hardware usage in order to reduce greyware (human programmer) usage. Whether such is "smart" or economical makes for an interesting debate. It appears consumers prefer cheaper software over cheaper hardware for some reason. Software developers who are fastidious over hardware resource usage (RAM & CPU) are not sufficiently rewarded. The group that slaps existing API's together to get their product out quick and cheap seem to come out ahead.
I remember how MS-Office for DOS shipped on 7 floppy disks. I kept wondering why people tolerate loading 7 floppies. It's because the alternatives of the time were harder to use or cost more.
You must be remembering something else because there were no DOS versions of Office.
Of course that's wrong, and most of the time it is used by people who don't understand the trade offs made in incremental advancements in tech standards.
Entire businesses have been run on systems that have 512k of RAM.
The IBM Series 1 had up to 128k: it was designed by Don Estridge, more famously known as the father of the PC...
Hardware had removed the 640K memory limit - but Windows stuck with it for years afterward. Not for any technical reason, but because they dominated the market, and neither needed to change nor wanted to change - no matter how hard that made things for developers.
I worked with Microsoft guys, and they were very blunt about not wanting to change their working OS code if they didn't need to - so Bill held back the entire industry for years.
It's easy to say they put back "the industry" for years, if we define the industry as chip design, but I think it's just as easy to make a case that they greatly expanded the industry over this time by giving people a platform and OS combo that could continue to run their software from a few years back even after upgrading every component. In my opinion, consumer confidence likely greatly outweighed the other benefits, as it allowed economies of scale to really be reached, and spurred the whole industry forward from the massive demand.
If he thought he couldn't make any money implementing it, that means he didn't think there was a market for it that would return the investment. I think it's entirely possible he created that market by driving adoption until the point where that feature it could be supported.
The question can essentially be flipped, and you can ask why Intel didn't create the hardware with those features initially. The answer is likely that it would have taken more research (if it didn't already exist in much more expensive processors) and would have driven the cost of the processors to the point of not being worthwhile. Is Intel then responsible for setting the industry back by years, because they didn't market a processor they likely could if they took longer and/or charged more?
> The Intel guys offered not only to fully fund the development, but to fully staff it and pay Microsoft for all the bother.
In a world where increasing software complexity or having outsiders contribute a sizable or complex piece of code to your private codebase has no cost in future development complexity or runtime, this might have been purely an upside. In the real world, there's there are other considerations, which is likely why it was rejected. Otherwise, why would anyone turn down free development time? Are we to assume Gates was so capricious as to turn down something this beneficial, or that he had resons we haven't adequately covered yet?
> If someone wants to philosophically believe in rational markets and insightful and honest executives, well, that is a choice they can make.
I don't believe in entirely rational markets and honest and insightful executives, but I do believe in people following what they think that market will do, and in executives that turn down things they think are a bad idea, right or wrong. I'm willing to bet Gates had a lot more information than we do when making this decision, and had his reasons. I think it's possible that he could have been right.
1: https://en.wikipedia.org/wiki/Protected_mode#Operating_syste...
So, here's a thought for ya: MS Excel from back then won't run on anymore, 16-bit apps aren't recognized by modern Windows, etc.
But a .XLS created back then sure will. And lots of business logic is codified in Excel spreadsheets.
I posit that .XLS is a more stable platform than Windows itself.
They certainly will run, even if only through emulation or API conversion. In fact, that's probably what modern MS Excel does to old XLS docs, which is convert them to an in memory format that probably more closely resembles The Office Open XML format than the Excel Binary File Format (the extension may or may not change, but the format did).
> I posit that .XLS is a more stable platform than Windows itself.
Well, ignoring that we've drifted quite far from hardware, I would say that Excel (which would be the actual platform, not the container format) is not a general purpose computing platform (at least not a feasible one), not something that necessarily defined what architecture is being used, except tangentially.
Here's a thought for you: it actually does run on Windows 10.
In particular, Excel 3 for Windows 3 installs and runs on Windows 10 out of the box. Here's a screenshot on my system[1]
Again, let me emphasize: this is software with a GUI written in 1991 for an OS released in 1990 which just works on Windows 10 in 2018 -- no VM required.
This is the second major release of MSOffice for the PC. The previous release, Excel 2, was running under Windows 2.0, which nobody wants to remember, and which is indeed not supported.
On the other hand, its installer - a DOS program - runs fine because DOS programs still run in windows 10.
The compatibility breaks on 64-bit releases of Windows. But all the major versions are available in 32-bit, which you can run on any hardware you can put the 64-bit version on.
[1]https://imgur.com/hqIpsbZ
The 8086 was thought too powerful and would compete against existing IBM products, so the 8088 was chosen. Other changes to expansion and bus architecture were on the same basis.
The PC was not supposed to be the benchmark design on which the entire future of computing was built. If you were looking for one of those better off starting with an Amiga. :)
source: https://www.youtube.com/watch?v=oxY89F5oU-I
For both Linus and Bill - anything they said you have to remember the context. 640K was - "YUUGE" (always say it right) For Linus releasing linux at the time a 64Mb task was "YUUGE" (again just make sure you always say it right)
Thanks!
https://en.wikipedia.org/wiki/Wirth%27s_law
Although I'm sure hardware companies will find a way to promote deep learning techniques into home computers, which will obviously require more and more transistors.
That should tell you how much you'll need in 2038.
Now, what do you guy think about the "Al Gore said he invented the internet"?
Ah, the wonders of a post-truth world...