What modern, high level programming language should I use?

1 points by ndrewxie ↗ HN
Hello,

I'm a C/C++ programmer with 15-20 years in C/C++. I've been looking for a new language for my new project idea (a custom language, because no language seems to work lol, a VM for that language and a multi language development platform). I've considered Crystal, Haskell, Smalltalk, Go and Elixir, but feel free to suggest any language (I want to try something new, so nothing low level, please). What's the best language if performance is critical (high performance is critical, realtime is not), minimalism is required(in terms of standard library, runtime required and syntax) that is fun to program in and has bragging rights? I didn't flat out reject any of them (they're all good), but here are the reasons for me being a little indecisive:

Crystal - too web oriented - it's not for the web, but everyone uses it for it. It's weird.

Haskell - good, but it feels like you're learning the standard library, not the language

Smalltalk - truly minimalistic, but it feels like BASIC and is a little slow

Elixir - once again, good, but focused for web servers and telecommunications (it's not specialized, just the community).

Go - seems like an insult created by google to the intelligence of developers.

I'm really torn between Crystal and Haskell, so compare and address the others, but could you offer an in depth comparison?

6 comments

[ 3.0 ms ] story [ 19.9 ms ] thread
Are you aware of Rust?
Yes, it's too similar to C++/C (I know it's not very similar, but it's still low level).
There appears to be lots of enthusiasm about Rust - I'll probably learn it, but I'm trying to learn a higher level language (believe it or not, I don't know any "high level" "modern" languages, because I figuratively spent my last 10 years in a hole).
Lisp (common lisp or scheme. Clojure running on the jvm precludes writing your own reasonable-speed vm, and there are no other mainstream lisps.)
You could use clojure, though, if you're willing to make your language compile down to jvm bytecode instead of implementing your own vm.