Eschatology: What will be around in 50 years?

I’m curious about a little future history. Most of my work is done in C, C++ and C#, and I write documents mostly with Visio and Word. This is not what most of the industry does (frankly I have only a vague notion of what it means to build and deploy a modern, properly scaled web app, though I do understand a bunch of the technology propping that stuff up).

For embedded systems work, what’s going to be around 20 years from now? 50? Is something going to come along that’s clearly better than C for kernel work? Or will we just stop caring and JIT our way to nirvana on our kilo-core cell phones that hook into the heavy comuting in the cloud?

Also, how long is Emacs going to last? Vi? Are the days of the vanilla ASCII text file numbered, or are we still going to be dealing with XML and INF files half a century from now?

When will Windows and Linux die?

I’m curious.

Author: landon

My mom thinks I'm in high tech.

15 thoughts on “Eschatology: What will be around in 50 years?”

  1. Most of my work (small-system embedded) is done in C and a proprietary BASIC I had a hand in writing, with side excursions into assembly on various 8-to-32-bit processors.

    I don’t see text files going away for a long time, if ever, particularly in the embedded world. Even though that’s where most of the processors are used, it’s not where the money is in software. The capabilities of embedded development environments lag those for desktop systems significantly.

    There are also the limitations of the systems themselves to consider – my Droid cellphone has significantly more power than *any* embedded system I’ve worked on. You don’t need much processing power to run a thermostat, after all, unless you want an incredible user interface.

    As far as what we use in the future is concerned, I suspect (or would that be, “dread”) that it will be *called* Windows, no matter what it is.

  2. There’s a interesting story over on slashdot right now that suggests that incoming freshmen are 43% Apple (and rising at 6% a year) and 99% laptop. I think the Windows desktop may already be dead, it just hasn’t stopped kicking yet.

    I can’t imagine we’ll ever lose the text file, though.

  3. Interesting question! Having done some programming on a Long Now project, this is something I’ve wondered about myself. The real answer is that nobody knows, but it’s reasonable to make some guesses. Mine follow.

    Given that ASCII is nearly 50 and C nearly 40, I suspect that they’ll be around a long time more. I expect that ASCII text will have more staying power, though, because a shift away from it requires either a lot of coordination or a watershed event, while there’s a natural, gradual path away from C.

    If ASCII continues to dominate, it’s reasonable to bet that CSV, XML, and MIME will be around well after we’re dust, as all of them are perfectly adequate, widely adopted, human-readable ways to represent very common sorts of structured data.

    I think C will continue to be available barring the ubiquity of something radical like quantum computing (or even FPGAs), as C is a fine way of dealing with our standard processor, which is a fine way of organizing transistors. But I’d bet that it will continue its long slide into a niche language, eventually ending up as the equivalent of Latin for programmers: important to learn, useful to know, but almost never used in practice, at least directly.

    Windows will last as long as Microsoft, but I expect it will become steadily less important, eventually being seen like we see mainframe OSes today: important to a niche audience, but otherwise quaintly irrelevant. The Linux kernel I expect to last longer, for the same reason I expect C to stay around: it’s an adequate solution to an unavoidable problem. But I imagine most kernels will be virtual, and that Linux will end up like mitochondria, omnipresent and very useful, but almost completely ignored by all except a few specialists.

    I look forward to reading the speculations of others!

  4. Cobol was written in 1959, and it’s still used. A lot of crufty old business logic was rewritten from Cobol to Java around Y2K, so my guess is that Java will be around in 50 years. If Java is around, Unicode, and its subset ASCII will be around. We’ll also have SQL around, at least for historical reasons. I suspect that we’ll still have some dialect of HTML, it’s too useful to throw away without a replacement, and there’s too much of it out there to replace. I’m sure that most of the legacy business logic will seem warty and dinosaurus, just as COBOL is seen today.

    I think that speculating about which operating systems are going to be used 50 years from now is much like speculating 30 years ago which microcode architecture would be used… you can speculate all you like, but the result is likely to be wrong and just as likely to be irrelevant because there are so many layers of complexity on top of it… no one is going to care, because any distinguishing feature will either be universal, or the lack of some distinguishing feature killed its predecessor.

    My guess is that Windows, Linux and MacOS will all live in some form or another, and none will run smoothly on machines that have less than 2^35 GB of memory.

  5. If C dies, it’ll die fighting. Even then it’ll be hip and underground. C’s not dead, as it were.

    Windows is already dead, its but its zombie will probably be around for our lifetimes. Linux will die eventually (buried with Linus no doubt), but will be reborn as another *nix.

    Visio and Word in their current incarnations will die, probably soon, when replaced by a cloud computed alternative, because easy collaboration and exchange will be too compelling to ignore.

    Vim won’t die until the command line does, and they need each other. The command line won’t die for a very long time because no UI will ever be good enough, and it will evolve slowly enough to keep up. Emacs and ascii text files too, for the same reasons.

    XML is dying already, because JSON does the same job and is better at it. INF and other dumb config files will probably stick around for a while, because nobody really cares.

    JIT will save us, but not really. As we struggle to balance speed of development, speed of code, and compatibility our methods will continue to evolve. In this arena, I can’t see very far into the future, but cloud computing, JIT, and specialized languages will become more popular in the short term for embedded and non-embedded alike.

    When they’re not good enough, who knows? Still, I’m betting the differences between languages will start to blur, and hyper-specialized languages will get big.

  6. OK. But who and using what will be implementing JITs, Clouds backends, etc.? Even though a hardware will provide developers with JITs, fancy libraries and ability to program in Lua or Python, someone must implement this on the lower level lets say. Do you imagine, someone will reinvent the wheel, and make a better C? 😉
    Maybe I have missed the point here, but as long as we will be using the non-molecular hardware, assembler and C will be alive and well.

    Operating Systems are a different story I believe. It is possible that in 50 years we will switch to Clouds and Web OSes. However, personally I would prefer to have a box and a local system on it. Period.

    As Max wrote, XML is dying. That is good thing. ASCII will be with us for a long time for sure. So much resources is encoded that way.

  7. I would like to believe Windows will die in my lifetime, but at 40 I’m betting it won’t.

    I am dying to see what replaces it (and Linux). Seriously, are there some good candidates out there? Anyone want to place a bet?

  8. ASCII/Unicode is in for the long haul. Anyone seriously considering replacing them still has to answer the same question: what better numbers to line up with our quaint human readable character systems? Because computers do numbers, full stop. Before ASCII: (proprietary, Babel-esque) madness reigned.

    Whatever the iPad and its like run, long term, is the answer. As far as the vast majority of people are concerned: “computers”, as we know them now, are toast.

  9. Oh, wait, the Tower of Babel was meant to be before all the incompatible barbarian talk? That’s what I get for being raised an atheist: the occasional bass ackwards metaphor.

  10. I’ll give you a hint. I’m 18 and the first compiled language (I have been doing PHP and JavaScript for a few years) I’m actively learning is Objective-C. Macs and iPods/iPhones all the way!

  11. @redwall_hp
    Objective-C, I don’t envy you. I didn’t get too far with it when I briefly toyed with my iPhone earlier this year, but after coming from C++ its syntax bothered the heck out of me.

    As a games programmer for PC and consoles I think that C/C++ will be around for me for a fair bit longer. It’s been said more than a few times that the videogame industry will probably become one of the niche markets. Every console generation theres exceedingly more powerful hardware, and now theres things like XNA available that help people get into games development with a bit more ease, but for the most part C/C++ remains the industry standard.

  12. @Tom: Coming from PHP it bothered me, too. Something seems to have “clicked” though. It’s starting to seem a bit less strange now that I’ve worked with it a bit. I think it just has a bit more of a learning curve.

  13. Been sneaking around but this topic is a loose time ! however here is my thought about it: It doesn’t matter what language or `toy` we will be using
    but rather the strength of well proven algorithms!
    BTW C/C++ are great languages and both very high and low levels. functional languages are fine too. But rather than loosing time at picking up a gorgeous speedy language let’s just f***ing code!

  14. You should check out Vernor Vinge’s novel ‘A Deepness in the Sky.’ Among other great bits, Vinge has a subplot revolving around systems in sub-FTL ship fleets that have been built up over thousands of years. Critical code layers lie so deep that nobody living has scrutinized their source.

Leave a Reply

Your email address will not be published. Required fields are marked *