12 ms·
I love these projects that show what can be done with 1mhz cpu and mere kilobytes of ram, really makes you wonder what we’re doing with the other 99% of hardwar
by jazzyjackson 5y ago
I love these projects that show what can be done with 1mhz cpu and mere kilobytes of ram, really makes you wonder what we’re doing with the other 99% of hardware performance we’ve achieved since then
- amelius 5y agoUh... watching 4k video, for example?
- badsectoracula 5y agoYou certainly don't need modern PC power even for 4k video, though you may need it for doing realtime decompression of some very high compression codecs (but that isn't "watching 4k video", it is "doing realtime h265 decompression for 4k video" or something along these lines). Though codecs are one of the few cases where you see hardware being taken advantage of because that is basically their entire purpose.
- codedokode 5y agoPlaying video is very expensive task. Just updating 4K screen at 60 frames per second requires transferring of 3840×2160×60 ~ 497 million pixels or 1,49 Gbytes per second (if you skip every fourth byte). It will take at least several instructions (in the best case) to calculate value of every byte so the CPU should be able to perform billions of instructions per second. I doubt you can do it without a "modern PC" with hardware graphic accelerator. Also modern codecs require lot of computations and lot of memory. For example, codecs like VP9 require to buffer up to 8 frames for reference. That would take 8×3840×2160×4 ~ 265 Megabytes of RAM. The program will need to extract bits, decode arithmetic coding and calculate lots of IDCTs. I did some research to see if it is possible to play Youtube video on 8-bit CPUs. What I found is that there is little hope for this. It's better to develop your own video compression format.
- rbanffy 5y ago> Playing video is very expensive task. Just updating 4K screen at 60 frames per second requires transferring of 3840×2160×60 ~ 497 million pixels or 1,49 Gbytes per second Or an analog signal and you do it the way TVs used to do. There were analog HDTV standards before we all moved to digital.
- setpatchaddress 5y ago> There were analog HDTV standards before we all moved to digital 8-bit computers likely wouldn't be able to keep up with the bandwidth requirements of those systems either.
- rbanffy 5y agoNot the original 6510, but there are some very fast 8-bit processors out there. If you compress the color space, they may be able to flip every pixel 30 times per second. Also, nothing stops you from implementing an 8-bit CPU with a modern process and push it into the multi gigahertz range except perhaps the fact it’ll be too small for current machinery to manipulate.
- ddingus 5y agoAnalog is a whole lot more lean. Modern digital transfer protocols are generally 10x the pixel clock in analog terms. For a given clock speed, analog video can be several multiples of effective resolution delivered on time. Analog standards seem to have stopped at 1080p. Nothing prevents signalling faster, but there are no capable displays to read it. I suppose that might be a neat FPGA project. Take 4K analog signals and stream them to a digital display. Really would only need a scanline or two of buffer for the simpler "just push all the pixels" use case. Frame buffer.
- badsectoracula 5y ago> Playing video is very expensive task. Just updating 4K screen at 60 frames per second Nobody mentioned anything about 60 fps. A ton of video is at 24 or 30 fps. > requires transferring of 3840×2160×60 ~ 497 million pixels or 1,49 Gbytes per second (if you skip every fourth byte). You do not need to update the entire screen all the time, you can do partial updates (since very frequently not 100% of the screen changes - it is the most basic fact on which video codecs rely on) and you can "heal" the output over time after partial updates (also important for video playback where you can't guarantee a fast stream). > I doubt you can do it without a "modern PC" with hardware graphic accelerator. Why the limitation for hardware graphics accelerators? Hardware accelerators exist for decades now and even hardware video decoders exist for more than a decade. If anything not using those is "not taking advantage of the hardware" that i mentioned. > Also modern codecs require lot of computations and lot of memory. For example, codecs like VP9 require to buffer up to 8 frames for reference. That would take 8×3840×2160×4 ~ 265 Megabytes of RAM. Sure, but that is RAM computers also had for more than a decade now - the PC i used in the early/mid-2000s had 2GB of RAM - hell, even the cheapo EeePC netbook from the late 2000s had 1GB of RAM. > I did some research to see if it is possible to play Youtube video on 8-bit CPUs. What I found is that there is little hope for this. It's better to develop your own video compression format. Sure, but i never mentioned anything about 8-bit CPUs, YouTube or even existing video compression (or specific framerate for that matter). What i wrote is that you do not need "modern PC power" to do 4K video. You do need more processing power than what would be found in 8-bit CPUs (or at least common 8-bit CPUs you'd find in 80s home computers), but i'm certain you can have a 10 year old PC play 4K video without trying that much. Perhaps even a 15 year old PC with a bit of effort. FWIW what i had in mind when i wrote that comment was the "8088 Domination" demo which used a custom codec and player to do fullscreen video and audio playback on an original IBM PC and honestly i do not for one second buy the notion that if you can do that on a 40 year old PC you wont be able to have 4K video on a 15 year old PC - if anything i might be too generous here.
- kazinator 5y agojazzyjackson may be referring to effects such as, oh, that your multi-gigabyte-and-gigahertz computer is less responsive to your keystrokes than a C64 while merely enter some text into a field.
- MrBuddyCasino 5y agoProgrammer productivity. As long as this is the bottleneck in determining market success of a product, this tradeoff will continue.
- noobermin 5y agoWell in between the ads and google spying I often do not feel productive.
- nradov 5y agoProgrammer productivity has gotten worse. None of the development tools in widespread use today is as productive as Visual Basic or Delphi were back in 1996.
- anyfoo 5y agoThis needs a lot of qualifiers. I can see that for web development maybe (I don't know, haven't done that for almost 10 years, but I can imagine given the constraints), but for system level programming for example I don't want to go back to the 90s. Not that Visual Basic or Delphi worked for that anyway.
- badsectoracula 5y agoTechnically Delphi could have worked but you'd need to use your own RTL and aside from a few additional language feature, you'd be losing 99% of what Delphi offered anyway.
- frostwarrior 5y agoAlso, as the internet (and technology) grew in influence and popularity, the amound of usecases for them grew exponentially. In the "golden era" computers were more or less advanced calculators. Now we (as a population) expect to give entertainment and give advice about our lifestyle, like we do with smartwatches or fitness devices. That's a lot more complicated than writing text or inputting numbers into a grid
- cageface 5y agoThe Luddite sentiment common among programmers today really surprises me. The software we’re building today is vastly more powerful and capable than anything from the C64 era.
- ketralnis 5y agoI don't think it's "Luddite sentiment" to ask why one computer feels as productive with the same perceived performance as one that's literally a billion times faster. I believe the sibling saying that it's programmer productivity is correct. That same programmer can and does now spend a week whipping together a program in Python that took a year under the older constraints. And users expect more out of them, with whizz-bang animations and app-store integration. But if that same programmer _did_ spend the year instead of the week, what could they do? The quality and performance would probably be a lot better. Unless they depend on externalities that don't also scale up their quality game, like basically anything involving the web.
- cageface 5y agoIt’s Luddite in that it rejects modern tools and methods in the belief that there’s an older, more artisanal method of doing work. If you believe this is the case then you can put your belief to the test. Build software the way you think it should be built and see if users are willing to pay for it.
- badsectoracula 5y ago> If you believe this is the case then you can put your belief to the test. Build software the way you think it should be built and see if users are willing to pay for it. "users willing to pay for it" is a very bad and simplistic metric because there is way more to user willingness to pay for something than how that something was made (not to mention that it excludes everything the user doesn't pay for) - it may not even have to do with the software itself. Also the software in question may not even be "free" to use the better approach: imagine, for example, a client for a chat service that allows embedding images, videos and audio in messages but the way the protocol works is for the server to provide those as iframe and/or html content. At that point the client will have to use a browser component in one way or another with all the baggage that entails even if the features themselves (images, videos, audio and text) could be implemented directly by the client. There is only so much you can do when you have to interface with a world built on tech that doesn't care about efficiency.
- guessbest 5y agoEncryption for communications to include HTTPS and TLS 1.3. If it wasn't for all that, you could take an early 90's computer on the internet still.
- codedokode 5y agoAn expansion card is recommended for this OS, so there are hundreds of kilobytes or even several megabytes, not "mere kilobytes".
- kaladin-jasnah 5y agoEven then, I think the point would still hold.
- d1lanka 5y ago> really makes you wonder what we’re doing with the other 99% of hardware performance That 99% is dedicated to running Chrome
- kazinator 5y agoIt's closer to something like the other 99.9999999%. What we've done with it is things like: when you type text into what looks like a simple edit field, each keystroke launches a cascade of javascript. Layers and layers of API's cause latency. To get this to happen, you have to talk to this broker, which calls this proxy, which delegates to this manager, which queries this store, ... You will probably almost never see call stacks 27 frames deep when debugging anything in C64.
- kragen 5y ago"the other 99.9999999%" would imply that computers now are a billion times faster than a C64. For some tasks, that's true; a GeForce RTX 3090 is claimed to be 36 teraflops, which is a billion times 36000 flops, and the C64 is more like 10000 flops if we figure we need 100 clock cycles per floating-point operation. But, for other tasks, it's not a billion times faster; single-threaded 16-bit integer code might get 0.125 operations per clock cycle on the C64 and 3 operations per clock cycle on a modern CPU with a 4000 times faster clock, making the modern computer only about 96000 times faster. The way I look at things, 96000 is closer to being 100 than it is to being a billion. In cases like that, it's only making you wonder what we're doing with the other 99.999%. Once your program is using more data than will fit on a 1541, though, everything totally changes.