3 ms·
I'll bite and play devil's advocate, with a few qualifications. If we consider a class of vehicle rather than a specific make/model, there are certain kinds of
by bane 12y ago
I'll bite and play devil's advocate, with a few qualifications. If we consider a class of vehicle rather than a specific make/model, there are certain kinds of vehicle designs that are approaching 100 years in age. The pickup truck, as a basic design, came about ~1930 and has proven to be an immensely important automotive variant. In 15 years it will be a 100-year old automotive design.
I think the question DARPA is asking is of course different and maybe more fundamental, what are the reasons software stops being useful?
My guess is that list of reasons is fairly finite, e.g. assumption made about memory availability and speed no longer hold, so new software can now outperform old software, etc.
But it looks like we've arrived a kind of plateau, and we also have a pretty good idea what's going to happen in the near future with basic computing.
- Computers with 64-bit memory addressing provide enough memory for just about anything we can think of over the next 100 years
- We'll continue to outfit computers with more RAM, more cores, more main storage and all of it will start to get faster following observed trends
- and so on
So if we can write software assuming these questions and answers, why wouldn't it be capable of expanding to fit computers 100 years from now and continue running?
- Canada 12y ago> Computers with 64-bit memory addressing provide enough memory for just about anything we can think of over the next 100 years Yeah, 64-bit pointers ought to be enough for anybody.
- vidarh 12y ago> - Computers with 64-bit memory addressing provide enough memory for just about anything we can think of over the next 100 years Keep in mind we use memory mapping for files too, so the memory addressing needs to be suitable for that as well. Storage capacity for both the desktops and servers I've used have increased quite steadily at a rate of something like a factor of 1000x per decade over the last 3 decades. (RAM has followed a similar trajectory, so the below largely applies for RAM as well) Lets say we are conservative and start from a base of 1TB today (considering it's trivial to get servers with tens of TB that is conservative). To be able to memory map 1TB we already need 40 bits. Each 1000x increase costs us approximately another 10 bits. That gives us less than 30 years of similar growth in storage capacity before we lose the ability to memory map the data on it with 64 bit. (in case you think memory mapping 1TB today is silly, consider that I can pick up off the shelf servers with near a TB of RAM today, and can certainly get higher end systems with far more than that). Even if your starting point is that you "only" want to be able to memory map 1GB today, that still only gives you one extra decade if the growth remains the same. And while it may be realistic to assume that "nobody" mmaps files that big on desktops, it's not on servers - the first time I ran into limits mmap()'ing data on 32 bit computers was about two decades ago. Over last few years I've repeatedly have to rewrite stuff to use 64 bit because 4GB most decidedly was not enough. And stuff keeps ballooning. I fully expect to see systems hit 64 bit limits in my lifetime (I'm 40 now). For that matter, I expect to still be working when 128 bit systems becomes mainstream.