7 ms·
We are quickly coming to an end of an era where hardware can compensate for sloppy code and processes. We are heading back to the days of 640k barrier or the ol
by baldfat 12y ago
We are quickly coming to an end of an era where hardware can compensate for sloppy code and processes. We are heading back to the days of 640k barrier or the old C-64 days. It was amazing how efficient programs were and the genius of the software engineers.
We might even get surprised by the code of something like Elite. An incredibly brilliant piece of software that did so much more then what was thought possible.
- reitanqild 12y agoI quite like that perspective. Having to accept wait and lag on i7 processors, 2digit gigs of ram as fast as never before etc * ) is really frustrating. Luckily, in my experience at least, Microsoft is finally starting to catch up on usability and efficient use of hardware. Windows 7 didn't raise the bar for hardware specs significantly and neither did Windows 8, 8.1 etc [1] *) not talking data science, rendering, games or user/admin misconfiguration, i.e. DNS timeouts etc. [1] : windows.microsoft.com/en-us/windows-8/system-requirements
- fredsted 12y ago>something like Elite What is it? Elite is a word used many places so I couldn't google it.
- dasmoth 12y agohttp://en.wikipedia.org/wiki/Elite_(video_game) http://en.wikipedia.org/wiki/Elite_(video_game) The original version did indeed to an amazing amount with a 6502 and 32kb of RAM.
- apl 12y agohttp://en.wikipedia.org/wiki/Elite_(video_game) http://en.wikipedia.org/wiki/Elite_(video_game)
- sgift 12y agoAn old video game, which is often praised for its clever code (and gameplay): http://en.wikipedia.org/wiki/Elite_(video_game) http://en.wikipedia.org/wiki/Elite_(video_game)
- ownagefool 12y agoWe also had computers that'd fall over at the drop of a hat, with a crapton of low level code that'd cause all sorts of havok because not everyone who writes code is a genuis or infallible.
- jacquesm 12y ago> We also had computers that'd fall over at the drop of a hat Hm. That's not my experience at all, rather the opposite. Those 8 bitters were incredibly reliable.
- chiph 12y agoI think he's remembering the TSR battles of the early IBM PCs under DOS. You had to be careful what you ran because they'd conflict with each other, resulting in bizarre failure modes.
- noir_lord 12y agoUnless you had a Kempston interface attached to a Speccy, then a butterly fluttering it's wings in South America would crash it ;).
- jacquesm 12y agoThe Sinclair was a species all by itself in that respect. I'm thinking along the lines of the bbc micro, the dragon / color computer and the TRS-80. Compared to those the Sinclair was incredibly cheap but that was definitely reflected by the build quality. I remember the microdrive, that was a funny little design, very creative but very flawed. Like an 8-track endless tape but for data.
- YZF 12y agoI was (still am?) the proud owner of a microdrive. It was supposed to fill the niche between tape and floppies. Tape is interesting media but somehow it keeps losing (spoken by someone who still has tons of audio tapes lying around). It would be cool to do a teardown of the microdrive.
- Jtsummers 12y ago> We are quickly coming to an end of an era where hardware can compensate for sloppy code and processes. We are heading back to the days of 640k barrier or the old C-64 days. It was amazing how efficient programs were and the genius of the software engineers. I don't think we've ever had a "golden age" of software development. Sort of like going back to find examples of good art (in whatever medium) from decades ago, we end up with the impression that the scifi of Asimov's era was somehow better than what we have today. Really, the crap just disappeared. Pointing to examples of good software in the 80s, certainly impressive feats can be found, doesn't mean that they were the norm. Having worked on a lot of legacy projects, I can assure you there's plenty of crap from that era as well. What we end up with is a false impression of our current time. We see all the crap, we're filtering it out now, and we think things must be worse now than they used to be. We just won't know until we can have a proper retrospective in 10-20 years. Once the crap's filtered out, what remains?
- weland 12y agoThis is precisely what sprang in my mind. It's stuff like the LISP Machines and Elite that have survived the 1980s long enough for us to consider them as part of a "golden era". Those were the exception, not the norm, of the 1980s.
- deleted 12y ago[deleted]
- jerf 12y ago"We are heading back to the days of 640k barrier or the old C-64 days. It was amazing how efficient programs were and the genius of the software engineers." I think software is already getting there, since we've been dealing with slowing returns for a while. The previous generation of languages like Python, Perl, Ruby, etc. traded convenience for performance and waited for hardware to catch up. It was a good trade in many cases at the time, but as we collectively learned more about the design space I think it has become clear that it is not an intrinsic trade; it is possible to get a more convenient language that we had in the 80s or 90s without trading away performance. LuaJIT was an early example of this, but the flood gates are opening now. Go is not architected to the nth degree for speed, but it's a language that's only slightly slower than C, and in my experience, only slightly slower to develop in than Python (possible with a crossover point as the program size grows where Go is simply faster). Rust ought to be a lot easier to work with than C++ once you learn it, and I expect it to reach near-optimal speeds, possibly even beating C/C++ in practice as it will be more feasible to perform some aggressive optimizations for multithreading. And I've noticed a lot of the other little bubbling languages that may become languages of the future, like Nimrod, have the same sort of focus in them, "how can we get these convenient features without a 20-100x speed penalty"? Then, once you have these languages, I'm noticing that in many cases while bindings exist, entire stacks are being rewritten to be simpler and faster. Go has its own webserver. Dollars-to-donuts Rust will too in another couple of years. I suspect this is actually part of the trend; rather than binding to older, huge frameworks and code written without much concern for latency issues, etc, more code is going to start being rewritten to care more about those things. Between mobile pressing us on one end and desktop speed advancement stalling out on the other, there's increasing motivation to write faster code where it matters, without necessarily having to use C or C++. I'm not saying paradise is incoming, but I get the impression that we're seeing more care about performance manifesting in real languages and code than we used to.
- mreiland 12y agoPretty much every competitor I've ever seen for C/C++ has always made the same claim: with X optimization that C/C++ can't do, we can eventually meet or beat C/C++. It's never actually came true in the general case. ever
- mreiland 12y agoWe've been hearing that statement for atleast the last 15 years. Is it anymore true now than it was then? The only thing that's caused people to start worrying about efficiency has been social: mobility and environmental concerns. In no way has technological issues stopped us from increasing our performance throughput.
- nadam 12y agoThe fastest modern 3D engines (Frostbite, CryEngine) are as brilliantly efficient as those programs from the early days. The difference is that today's highly efficient systems are much more complex, so besides brilliant ideas, more and longer hard work and studying is needed to create something that really impresses people.
- Tloewald 12y agoPeople have been talking about the impending end of Moore's law for a long time. Now, we have run into a wall with clock speeds which has already slowed things down, and led to a lot of back filling (e.g. The huge push in improving the speed of VMs and interpreted languages is essentially a tradeoff of memory for performance, which follows from memory continuing to get cheaper while performance stagnates (kind of).
- drzaiusapelord 12y agoI'm pretty sure those days are gone forever. Even if there's a slowdown of CPU power, there's still quite a lot left over for the sloppy coders of the world. Especially when we consider a lot of software isn't CPU bound, but storage bound, and even the most commodity SSD blows away the spinning disk. Oh, we're also all 64-bit now and computers shipping today come with 8gb of RAM. We recently played the constraint game with the mobile/tablet space. It was fun while it lasted, but now with quad-cores and 1 to 2gb of RAM standard, its over as well. Tablets have become the new laptops. Phones have become the new tablets. Its boring. I think the days you pine for are forever gone, at least in the general computing space. I find that once something new comes around, its naturally constricted and if it allows people some level of freedom and creativity, then the weirdo early adopters will rush in, and in that group there will always be a handful of super-stars. This minority makes the big crazy strides or the crazy efficient game and then go into more respectable work. We also saw this with the early web, which was so much more innovative and experimental than the "social marketing" mode we've all agreed works best. That matured quickly as well. Look how the web browser is pretty much a platform, if not a quasi-OS, in itself. We keep reinventing the big bloaty OS and big bloaty applications for reasons that make sense; because people want big bloaty toys and the bells and whistles they offer. So where's the next new constrained system young hackers are going to blow ours minds with? Maybe 3D printing. Maybe drones. Maybe VR. Maybe automated and electric cars. But even those have a certain level of maturity already. We might not know until it actually happens. Who saw TBL and the www coming? I suspect very few. I personally hope to wake up one day to a new Jobs/Woz combo offering me something straight out of sci-fi, like a home robot with useful arms and enough AI to make use of it or a lucid dreaming machine that actually works or a nootropic that makes us all near geniuses. Come on guys, stop writing bejeweled clones and financial apps and blow our minds again. I suspect I still have a few mind blowing events left in my lifetime (almost 40 now).
- DigitalJack 12y agoPerhaps we'll end up with programming competitions that have restrictions on equipment like some forms of auto racing. Perhaps a common VM would be used for those competitions (maybe this already goes on?) It could rate limit the CPU/peripheral access, limit memory, etc...
- chondos 12y ago>We are heading back to the days of 640k barrier or the old C-64 days I disagree (though I hate inefficient code and design). Hardware has improved massively over the last 30 years. It doesn't quite seem like it sometimes because with the advent of the internet, usage/consumption has gone up just as much. Back in the day a mainframe app on the world's fastest server would only be limited to maybe 1000 concurrent users. Now there could me millions of internet users concurrently using a web app with an actual UI. Having said that, scalability can now be maintained in many ways aside from smaller nm die fabrication. Server farms or cloud distributive scenarios will take over (this is already where we are in many cases) if there is ever a limitation of a single machine. There are only so many people on the planet and consumption rises with us. Hardware improvement may be slowing, but so is consumption inertia (as we reach a saturation plateau).
- chrismcb 12y agoThe word you are looking for is "clever" and we all know that clever isn't always better. Yeah, stuffing everything you needed into <64K was difficult (and fun) But that code isn't "world class" and I wouldn't want to use that code in today's zero day security environment. Yes people need to write cleaner, less sloppy code. But we also don't need to go back to the days of self modifying code either.
- InclinedPlane 12y agoIf only. But no. What happens when FAB technology stagnates, everything locks in place and micro-processor advancement halts? Nope, it takes years for the state of the art FAB technology to trickle down everywhere. All the while getting cheaper and cheaper and cheaper. That state of the art smartphone in your pocket, it uses processors fabbed using 28nm technology. Even switching to 14nm technology would quadruple the transistor count and allow a corresponding increase in performance. Also, as FAB costs come down it would be more and more cost effective to increase chip sizes up to the maximum feasible die size, further increasing performance. Meanwhile, as former state of the art processor manufacturing becomes cheaper and cheaper it becomes more and more ubiquitous. So now not only your CPU but also your flash storage is made using 14nm technology, and maybe they decide to cram a shit-ton of micro-controlling processing power in there (they already do) and a bunch of static ram for caching or whatever, and performance keeps improving. Meanwhile, the processors and controllers in the radio system, on the cell towers, in the switches and routers, and in desktop and server devices keep getting faster and cheaper too. So now you have a butt-load of resources "in the cloud" or "the fog" or whatever idiom you want to ascribe to the phenomenon, all available for making sloppy code run faster and better. Ah, but wait, there's more. This is all the boring stuff, but there's crazy stuff out there too. Memristors are almost certainly the future of computing in more ways than one, and so far it looks like they'll be as feasible to manufacture and as practical as we've theorized. With durable storage that has access times faster than modern ram the performance bottlenecks of the past (which have rarely been in CPU and have more often been in I/O or RAM) will fall by the wayside. Pocket sized computers will have terabytes of non-volatile super RAM. You can write 3D renderers in javascript and they'll run at 4k resolution / 60 fps with detail beyond what state of the art GPUs are capable of pushing today. So no, the hardware train isn't coming to a stop, in many ways it hasn't even started yet. That doesn't mean that caring about quality and writing highly efficient code isn't worthwhile, but it does mean that there probably won't be a big mean performance bottleneck forcing everyone to get their shit together in the near future.
- rphlx 12y agoWith 16nm parts in production now, I suspect conventional NAND flash has less an 8X density increase, and less than 10 years left, before we need some totally new tech to keep the party going. AFAICT memristors will not be anywhere near ready for high-volume production by then, at least not in a way that's better than NAND. With the USD supply expanding 8-10%/yr, within a decade, we may actually see flash storage costs increase over time.