A look back to my 2010 predictions for 2020

Back in 2010, I wrote a post Who is going to need a database engine in 2020?

Let me revisit some of my 2010 statements.

Apple will sell desktops with 1 TB of RAM in 2020.

I am sure that the prediction sounded insane back in 2010, but it actually happened. A Mac Pro can have up to 1.5TB of RAM right now.

Clever programmers can write much faster specialized engines. Obviously, programmers will need help. They will need great librairies to help with data processing, data compression, and data architecture.

This happened too. The number of custom data processing engines has exploded: Elasticsearch (2010), Apache Spark (2014), ClickHouse (2016), and so forth. The great libraries for data processing have also materialized. In this instance, I put my fingers where my mouth was and invested my own time in this trend, to good effect I would say.

I won’t make predictions except to say that I expect new and more powerful programming languages to replace the existing ones. I’ll be pretty sad if in 2020, I’m still primarily using Python, Java and C++. There is so much innovation out there that something strong has to emerge out of it.

New contenders have emerged: Swift (2014), Go (late 2009), Rust (2010), Julia (2012). I have done some work in all three and they are a step forward.

I am still mostly programming in Python, Java, C and C++.

I would say that C++ has become a much better language since 2010. It is not any easier, but it has exceeded my expectations.

If anything, Python’s popularity is far higher than it was back in 2010.

So I am mildly sad. I am still doing a lot of C++ and it is really, really hard. However, I could productively switch to shinier programming languages.

Overall I would say that my 2010 beliefs about the future were accurate, at least as far as this one my blog post is concerned.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

3 thoughts on “A look back to my 2010 predictions for 2020”

  1. I’m in the same boat as you, do most of my work in C/C++, Java, but instead of Python, I use R (so for both I’m mainly interested in only the libraries, so R wins out here for me; and we all know so many of the libraries for both are written in C/C++). I’ve recently taken an interest in Rust and Julia. You left Julia out of your blog, so I’m curious about your thoughts. I’m mostly interested in scientific programming, specifically of the statistical kind. Overall, I use what language works best for each scenario, and my methods I publish are increasingly comprised of multiple languages. Also, hello from Montreal!

  2. You can safely predict (read: extrapolate) that immature things will mature, like having a larger scale data crunching libraries, or a bit more memory.
    What is already mature, like C++, is only getting more fashionable wrapping. So can extrapolate, but really, it’s the end of the curve.
    Things that are completely new, you cannot predict. No curve to extrapolate.
    I predict that in 10 years, we’ll have more fusion of big data with machine learning applied to everyday life.
    Me: Bot, please remind me to get potatoes next time I’m in the supermarket with the car.
    Bot: The shopping list is fairly long already. How ’bout I order it all now?

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may subscribe to this blog by email.