OldSpeculationsOnFutureProgramming

ThoughtStorms Wiki

Over the years ... there have been various QuoraAnswers about this ...

Quora Answer : What is the next big innovation in programming languages after Java?

Jul 28, 2011

"After Java" is a bit contentious. Java is basically C++ with a built-in garbage collector.

So let's take the question in that spirit. Garbage collection takes a huge problematic responsibility (memory management) away from the programmer and puts it in the virtual machine.

What's the next common programmer problem that we'd like to have the language take over responsibility for? The obvious one is management of multiple processes / threads / asynchronous communication. Erlang builds this into the language and virtual machine, but for various reasons probably won't be the next big thing.

What seems to be building traction for reactive server type applications is node.js. But that doesn't really add any helpful syntax to the language to handle multi-tasking. Instead, syntactic innovation on top of javascript is going on in, say, coffescript.

My prediction, therefore, is that someone will come up with something not unlike coffeescript, extended with Erlang-like special syntax for handling multiple light processes, and which compiles down to multiple node.js nodes.

Update : 2013. I'm very interested in Elm and its way of doing Functional Reactive Programming. Previously my experiences of FRP were a bit clunky, but Elm makes it look quite elegant and I can see how it subsumes the interprocess communication I was talking about in this answer. Not saying Elm will be that language, but I think an Erlang / CoffeeScript synthesis would well benefit from looking at it for inspiration.

Quora Answer : Is there something in dead languages you wish would have transferred to modern programming? Did we miss any great ideas?

Oct 24, 2014

There are a lot of ideas that keep coming back.

Dataflow was a category of programming language that never hit the mainstream, but had ideas that are coming into fashion now as "reactive programming" or "functional reactive programming".

Prolog's inference engine is available as libraries in other languages. And it would be interesting to see if this kind of inference could be made more accessible.

APL's special characters for powerful matrix and other mathematical operators may make a comeback. If you can have domain specific languages, why not domain specific syntax? Especially as we move away from using standardized keyboards towards tablets with touch screens and virtual keyboards.

I think we're going to see another round of high-level languages that orchestrate and script "swarms" of multiple computers. For clusters of servers, for service oriented architectures, and even for the increasing number of computers around your person (laptop, tablet, phone, watch). These may owe something to earlier service orchestration or business process modelling / dataflow languages.

Lisp never goes out of style. And has never really been a dead language. But you might have written it off as a historical / cult thing a few years ago.

However it's back with a vengeance as Clojure. And Racket is gaining popularity. In these two flavours, it's possible that Lisp will become more mainstream than it's ever been bringing the ideas of homoiconicity and proper macros.

Quora Answer : Which programming language according to you is the language of the future?

Jul 29, 2015

Two questions have been merged, and this is my older, more upvoted answer.

But my newer answer is more interesting and up-to-date despite being less upvoted.

Here's the newer answer :

We're moving into a period when FP languages and ideas are going mainstream.

The FP languages like Haskell, Lisp (CL, Scheme, Clojure) and Erlang are pioneers of a set of ideas. Either these languages are going to become even more popular and "go mainstream". Or new languages come along that steal many of their good features.

The next stage, after mainstream practice has started incorporating the FP ideas, is going to be to come back to languages influenced by declarative, logic and rule-driven programming. Basically ideas you see in Prolog . And MiniKanren, Bloom, Eve, Picat, etc.

And to a certain extent, this is the way that React / Redux are taking Javascript programming.

Or even Model-View-Controller taken to its natural conclusion.

We keep all our mutable state in a single central database. And the rest of our program consists of declarative, state-free rules for how the contents of that database get rendered, and how events transform it. Data flow is implicit and automatic.

I can't give you name of the future language that will take these ideas mainstream. But one will come.

And here's the old one.

Most languages will be around and in use in the future.

What's going to be big or important in the future? (Prediction in July, 2015)

  • Javascript. Still a lot of work done in this for the forseeable future.
  • Functional programming languages will become increasingly important so learn one to get the principles. Haskell is a good choice because it will teach you more than any other. Scheme (via Racket) is a reasonable alternative. Clojure and Scala are likely to be the other Functional languages that get used in industry. Perhaps F# and Erlang too.
  • Java / C# will be around because there's a lot of legacy code to be maintained and extended in the enterprise And Java because of Android.
  • Swift will become important for writing iOS and Mac applications.
  • Python and Ruby will still be around. In the cracks between other systems. But the paradox of languages that are easy to write seems to be that they are also easy to throw away. Longer term I think Python and Ruby will be replaced by Javascript and node.js. With CoffeeScript as syntactic sugar for the people who liked Python or Ruby. PHP will probably decline rapidly (once again replaced by Javascript) but from a very dominant position, so it will be around as legacy for a while.
  • C will always be around. In practice C++ will too ... but I'm guessing there's decreasing new-build in C++. The kind of application software that was being built in C++ already moved to Java, C#, Python and Ruby long ago. At the systems level, C++ will start to lose out to Rust and Go.

Some new / exotic languages that may become more popular.

  • Julia for "big-data" / scientific computing ... possibly displacing R and Python. Although maybe R and Python will hang on here.
  • Elixir ... basically Ruby on the Erlang virtual machine. Could take off as both a "better Ruby" (faster, concurrent) and an "easier Erlang" (less weird syntax). Could become strong contender if it picks up support from both the Ruby and Erlang communities.

Update :
- Lua ... in the might-be-important category. I just saw NodeMCU – An open-source firmware based on ESP8266 wifi-soc. a Lua VM with a node and Arduino-like library for the ESP8226 (a pretty impressively powerful $3 microcontroller). A powerfully high-level but compact language like Lua may well have a bright future on very cheap embedded system world.

Update :

But if you're really interested in the future of programming see my answer here : Phil Jones (He / Him)'s answer to Where do you see computer programming languages heading in the future, particularly in the next 5 to 20 years?

No Backlinks