Development log of a life-long coder

Future-proof programming languages

After some rapid progress on projects such as md2blog, everything has come to a screeching halt while I struggle with making future-proof technology choices. This post is specifically about programming languages.

Why future-proof?

I want code that I write to continue being useful to me in the future. Specifically, I want to be able to:

And this is why I'm stuck on trying to find a comfortable, future-proof programming language.


Here are some ideas on what indicates that a programming language will persist well into the future:

Of course, I'd also like the programming language to be convenient and comfortable, so I'll add to my wishlist:


According to Stack Overflow, the most popular programming languages are:

  1. JavaScript
  2. Python
  3. Java
  4. TypeScript
  5. C#
  6. C++
  7. PHP
  8. C
  9. Go
  10. Kotlin
  11. Rust
  12. Ruby
  13. Dart
  14. Swift
  15. Objective C
  16. Scala
  17. Perl
  18. Haskell
  19. Clojure
  20. Elixir
  21. Lisp
  22. Zig (not actually on the list)
  23. Lua (also not on the list)

Now it's time to ruthlessly eliminate popular programming languages.

Some languages are mostly tied to a particular platform, so they get cut:

Java and Perl I have experience with, and frankly, they're too cumbersome, so I won't investigate them further.

Second round

After some initial pruning, here is the list with my initial thoughts:

Given that this list is already too long, I'm going to eliminate a few options without proper due diligence (either based on prior experience or based on the belief that similar but superior options exist elsewhere on this list). Apologies to the following languages that have been cut:

Third round

For the next round, I'll do more research and hopefully play around with the languages I'm unfamiliar with.

Some initial thoughts on the languages I'm familiar with:

And here are the languages I need to investigate further:

That's all for now

That's as far as I've gotten. My next steps are to see if C# is viable, determine if there's a convenient C++ environment, give Python yet another try, and then play around with Go, Rust, Clojure (or other Lisps), and Zig.