4 ms·
This grossly understates the level of complexity involved in even the simplest things we take for granted in general purpose operating systems on general purpos
by jameshart 5y ago
This grossly understates the level of complexity involved in even the simplest things we take for granted in general purpose operating systems on general purpose hardware nowadays.
In order for you to read this comment, your computer is interacting at an astonishing speed with possibly wireless networking hardware, transmitting, receiving and error correcting on the fly in order to establish a secure, trustworthy connection to a server, from which it can receive an encrypted message containing the text of this message.
Having received it, together with a bunch of high level layout instructions, your machine has then determined how to lay out a visual display of hundreds of thousands of pixels, drawing at sub pixel resolution dynamic glyphs drawn from font data that it is loading on demand from a storage medium that indexes data using a permission-based filesystem and continually optimizes the arrangement of the data.
Your computer may never have been called upon to draw this symbol in this particular typeface and size and color before: 喜 - yet it can do so almost instantaneously when you browse to this comment. Isn’t that kind of magical?
Those glyphs are composited over a color background and sent to a high resolution display device with at least two orders of magnitude more pixels than a ZX spectrum.
While all this is going on you can be running a dozen more equally complex operations. You might have an audio file or data stream playing, or even a video stream.
Don’t make the mistake of underestimating the vast gulf of capability between an ‘80s 8 bit micro and a modern computer.
- gus_massa 5y agoYou forgot real time orthography and gramar checking while I'm writing this comment. When I was young, you had to press a special button to make WinWord find the pile of errors you made. When I was younger, the ZX Spectrum had no spell checker.
- jameshart 5y agoReading back over my comment I could have used some of that :) But yes, I was focused on just pulling down and displaying a comment, not even touching on the input processing capabilities. And this is stuff that a computer does without even breaking a sweat - this is just constant background activity supporting the vastly more complex stuff the machine can do if you task it to. A ZX Spectrum reading data from a tape drive at about 1400 bits per second required almost its entire CPU’s attention. At that speed just loading the 1614 UTF8 bytes of my comment above into memory would take over 9 seconds, during which time the computer is doing literally nothing else.
- gus_massa 5y agoI had a ZX81 with the extra package of 16 KB of RAM (not a typo, only KB). During load and save time, the screen was just noise because the CPU handle the TV signal and it can't load the data and keep updating the screen.
- jameshart 5y agoThe ZX80 could literally not do screen sync when the CPU was doing anything else at all. Pressing a key would cause the screen to go flicker.
- sys_64738 5y agoThere were some ingenious games for the ZX80 which used cycle counting to precisely time the beam being offscreen to process keyboard input. This allow flicker free keyboard games like you can see on YouTube.
- stevekemp 5y agoVery much so! It was only last week I made a submission about porting a trivial text-adventure game (which I wrote) from CP/M to the ZX Spectrum. The features I have available are laughable, even basic things like entering text have to be done "by hand", no readline, no sounds, and doing everything manually is a recipe for confusion unless you're very careful. Still fun to play with such machines though, even now, and some of the games hold up pretty well even if we ignore the nostalgia component.
- zozbot234 5y agoThat's a good description of the inherent complexity in modern compute, but there's a whole lot of accidental complexity as well. Which is why, e.g. many modern OS's and "apps" still cannot keep up with normal typing speeds without adding many seconds of latency. That's a significant impact on UX and a severe regression wrt. earlier systems. Plus lots of random slowdowns due to background processes doing whatever, etc.
- jameshart 5y agoOkay, do me a favor. Go to https://jsspeccy.zxdemo.org/ https://jsspeccy.zxdemo.org/, and start up the spectrum emulator. Choose '48 BASIC'. Once the emulated speccy boots up (oh, yeah - notice you have to wait for a noticeable delay while it initializes all 48K of RAM there...), press and hold down the 'C' key. It should start typing: CONTINUE CONTINUE CONTINUE CONTINUE CONTINUE ... Within a couple of seconds, the input latency will have become noticeable. After about half a screen is filled up with CONTINUEs you can take your finger off the keyboard, and it will keep slowly typing CONTINUEs for a second or so more. Now try typing some letters. Feel that delay between your input and the character appearing on the screen? I can attest from personal experience that this is an accurate and faithful emulation of exactly how a 48K Spectrum behaved. There was no golden age where computers were instant and always responsive. Floppy disks chugging away while little watches and hourglasses replaced your mouse pointer were the norm throughout the pre-internet era. On a terminal connected to a minicomputer, you could watch the text come in character by character on your terminal.
- tomca32 5y agoThis is correct. I grew up on a spectrum 48k and as a kid I remember often wasting time trying to find the longest keyword thinking that the lag was a function of the number of keywords in the buffer. I believe RANDOMIZE (T) was the longest keyword