3 ms·
A few years back I went through a the same process. My criteria differed somewhat, but the gist was the same -- maximize your investment, position yourself wel
by espeed 12y ago
A few years back I went through a the same process.
My criteria differed somewhat, but the gist was the same -- maximize your investment, position yourself well, and as Wayne Gretzky would say, "Skate to where the puck is going."
I'm in a rush to be somewhere, but here's a quick rundown of my key criteria for a 10-year language:
1. Concurrency Model (we're in a multicore world)
2. Data Processing (data is driving everything)
3. Platform (cloud platforms are the new OS)
Python, Clojure, and Go are my top three.
Python for its practicality, massive library in general and also in the data processing/data science space.
Clojure because of its concurrency model, first-class Java interop and thus massive library, plus its simple elegance and limitless potential appeals to the painter in me.
Go for its concurrency model on top of being a well-designed systems language that's backed by Google. I think Go is going to be the language to emerge as the dominant player in the next 10 years.
All three languages work on App Engine, and Google's Cloud offering is another one of those "skate to where the puck is going" things. It's already the most technically advanced cloud, and you can see signs that it's about to catch a Google-fueled hockey stick and blow past AWS at an exponential pace.
Honorable Mention: Scala.
Scala is in use by big companies like Twitter and LinkedIn, and it's the code behind some of the key open-source systems like Spark, Finagle, and Kafka. And Spark's the data-processing skate-puck destination: Cloudera is adopting it, and the days running up to the Hadoop eclipse keep growing shorter so I suspect Scala and I will keep crossing paths as these tools continue to make the rounds.