C++ I can see going either way; it is a freakishly complicated language (and getting more complicated with every standard that comes out) that IMHO was primarily kept aloft by being the "default" language in Windows for a very long time. I expect Rust will be most of the way through eating it alive in 15 years. Or something like Rust, but Rust is looking pretty solid. And if you want a multithreaded systems language... and you will... I suspect in practice it's going to be an order of magnitude easier to program in than C++ in another three or four years. Maybe Rust will even be eating C. (About damn time!) Someone will probably be writing an OS kernel in Rust. Possibly one that is driver-compatible with Linux, or even just straight-up a Linux-compatible kernel.
If Google doesn't drop the ball, Go will probably be mature and still going, and probably the primary reason why Ruby and friends are considered legacy code. Go even today very nearly replaces the scripting languages in flexibility (though definitely not quite), but brings back stronger typing and better performance. A few more tweaks to it over the next 5 years and it'll be hard to see why I'd start a new project in a "scripting" language. (Part of the reason I think this is that I observe that in the past 15 years, no language has penetrated into the A-list without some sort of major corporate backer. While there's plenty of other possibilities from a technical point of view, and while Google is not very aggressively pushing Go, I still think it's more support than any other language has or is likely to have in the near future. Even if they just passively continue to do little more than employ the authors, this is likely to continue floating up the ranks.)
And I still sort of expect something to come up that is not Haskell, but is closer to Haskell than anything currently existing. Or possible Haskell simply keeps plugging along and manages to become a very solid B-list language. I doubt it'll ever break into the A-list "nobody got fired for choosing C/C++/Java/C#" level of popularity, but it might settle firmly into where "it's pretty hard to get fired for choosing Python/Ruby/PHP" is today. (It's brushing B-list status now, but it's got a ways to go before I'd call it solid B-list.) I also think there's a good chance it will acquire a reputation as being the tool of choice for tackling truly complicated systems. (Though Rust will eat into the bottom end of that a bit too, they're currently retreating from some of the tools that Haskell has that may allow it to acquire this reputation. I think Haskell will still retain a strong advantage here.)
And finally, some sort of wildcard. 15 years ago I doubt anybody would have predicted Haskell being where it is now, even Haskell users (if you can even call it the same l. New languages shall continue to bubble and froth, but at least one and probably two will either emerge from the froth and become a B-list language. Probably at least one of them will be a aggressively "practical" language that will be a reaction to the success of "excessively-academic" Clojure, Scala, Rust, and the Haskell-like I hypothesize above, and follow a hype curve very similar to Ruby or Node.
It occurs to me I'm looking more like 10 years into the future here than 15. Oh well. Close enough. I'm also well aware I'm just talking out my ass; I completely expect to look back and laugh at this in 10 to 15 years. Oh well again.
Ruby's DSLs for writing things that Web application's need (serving HTML) are bar none the best. If I'm writing something that is serving HTML, I'm using Ruby all day, every day.
If I had to then pick a replacement, I would argue for Dart. Dartlang has a much stronger set of novice documentation, nodejs-like magic of running in client and server, but advanced Google mojo like support for SIMD. All Dart really needs is Chrome support and a decent "Rails" clone to popularize server-side development. We're a few years off, but Dart could be quite exciting. Or it could end up running on the JVM like everything else :p
It's not "replacing Rails", it's replacing new projects in what are today scripting languages (Perl, Python, Ruby, PHP, etc.).
I see fewer people talking about Dart than I see doing things with Go. That said, I did finally beat Google Trends into producing [1], which is interesting. It was hard to convince Trends to show Dart as growing as quickly as Golang, though, so there may be a selection effect (of the several graphs I produced with Dart well behind Golang, this is the only one that shows them even tied), and it still shows Dart as tied with Go, and Go's growth being more steady. I'm still not sure Dart is growing like Go is.
I suppose I should point out that the predictions were my best guesses about what will happen, and do not simply reflect what I "want" to happen.
[1]: http://www.google.com/trends/explore#cat=0-5-31&q=dart%2C%20...
I'm a bit more flexible when it comes to trying to predict the future than my posts indicate. I'm just offering an alternative hypothesis: Dart has many more screencasts and supported libraries from Google, including Angular.dart than Golang ever had, and it's only just hit 1.0. Golang has been fantastic for me to develop with, particularly on Google AppEngine and it's true Dart hasn't hit server-side popularity yet. But if we're predicting the future, based on JS and node.is alone, I'd suggest Dart has plenty of room to gain popularity quickly.
For me, I was making broad predictions. No matter how exciting the web client dev is, it is and will remain still a niche, and Dart faces a huge challenge in the next 5 years as asm.js will relatively suddenly introduce it to competition from every other mainstream language in existence. Dart probably won't "die" for a while, but I'm not sure it won't end up "just another" one of the enormous pile of languages that it will be possible to do client-side programming in.
The real question is when will Google add development alternatives to Android? Chrome's nice, but it takes a mobile platform to sustain an ecosystem of client-side developers these days. Perhaps Chrome-on-Android will eventually become the new PhoneGap?
There are two or three of these, at least at the stage where kmain is Rust code. I'd be really excited to see this develop further.
I just don't have time for ever project I'd like to do :/
In other words, this is an extreme statement of confidence on my part that Rust is very likely to succeed in their goals of being a true system language replacement. (Contrast this with Go, which initially started out saying it was going to be "system" language, but they've clarified they mean something more like a serious application language rather than something you'd write an OS in. "Nobody" is going to write a kernel in Go.)
Rust looks promising, but it's way too early to tell if it can really replace C/C++.
However, more to your point, there's legacy C and Java code, but that's because those languages have evolved heavily in their time, so late 90s Java looks little like modern Java, and techniques used in C in the 80s would get you laughed at today.
Hell, even in my main language of work, C#, the difference between most code just 4 or 5 years ago and "modern" C# is vast.
* Python - As a programming language for scientists and researchers, replacing Matlab and kin.
* Go or Rust - A well-designed, modern language, easier to use than C++ but almost as fast, for enterprise applications or video games. Not sure about Google, but I hope Mozilla will still be around in 10 years.
* Lua? - Not sure about this one... but it fills a niche -- extremely compact scripting language.
* C - still used in system-level programming
* C# - C# is replacing Java as the OO language of choice for big enterprise systems.
I'm skeptical of this one. C# requires Windows Server or putting up with Mono's shit. The former sucks; the latter isn't great either. I'd bet that iterations on Java, as well as other JVM languages, will probably retain a significant edge long-term.
C# is held back by windows. I know there is mono, but enterprises aren't going to bet on mono. So I have to disagree with that.
"The enterprise" (for the most part) isn't held back by Windows. That's just reality.
Or, rather, much of "the enterprise" is committed to being held back by Windows, so a language being tied to windows doesn't hinder enterprise adoption.
The language is small, it's very fast as scripting languages go, and I've heard it's easy to integrate it with C and other languages. On the other hand, it has kind of weird syntax, breaks a lot of conventions (i.e. arrays are 1 indexed), and it's not a massively well known language.
JavaScript possesses a lot of the same benefits; it's a pretty simple language, boasts very impressive performance for a scripting language, and isn't very difficult to integrate with code written in other languages. As compared to Lua's downsides, it's a bit of a mixed bag. The syntax is immediately familiar to anyone whose used an Algol derivative, the language has some unpleasant quirks, but lots of developers are accustomed to them due to the language's substantial popularity.
I imagine Lua will still be a popular choice in 5 years, but I think it's going to lose some marketshare to JavaScript.
[1]http://thenextweb.com/insider/2013/11/21/mozillas-reliance-g...
Unfortunately I imagine that Google has enough money to be around at least 20-30 years.