The world is ready for a new generation of programming languages

I believe the rise of so many new programming languages in the past few years is in response to a reconsideration and reflection of what people like and dislike about current programming languages and not yet finding a language that is as great as they imagine a language could be. I suspect someone could write a book on this topic but I just wanted to document a few thoughts and notes.

  • There is a renewed interest in performance (execution speed) and memory conservation. See: Rust, Go, Julia, Nim, Swift.
  • Focus on safety and concurrency. See Rust, Swift, Go.
  • More features from functional programming languages are being adopted to reduce side-effects such as immutable variables (at least optionally or by default as in Rust).
  • “Composition over inheritance” – See Rust (no inheritance, all composition), Go (no inheritance, all composition), Julia

The languages being explored, not all are new:

  • Rust
  • Go
  • Julia
  • Nim
  • Swift
  • Elixer (purely functional)
  • Clojure (purely functional)

The only thing I find missing is a focus on expressiveness. I would like to see some benchmarks that includes expressiveness as a metric. I really like Ruby because of it’s expressiveness. I am not a fan of purely functional languages but I like the idea of making functional concepts the default with optional ways to override when necessary, as Rust uses. I may try to come up with a benchmark to illustrate this issue. Mostly I think of this as a problem with large (think approximately 1GB in size) immutable arrays undergoing calculations. Plus, for loops with a variable for the current index or value is a pretty handy feature. I don’t prefer recursion as an alternative.

Links

Leave a Reply

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