I often wonder what it is about the programmer mindset/psychology that curses such constant reinvention(/reinvention?). Is this an unavoidable side effect of Moore's law? Will we settle on just a few languages in the future? Will llms allow easy translation from less popular languages?
imv, we're still missing a C replacement-successor
There should be a language about as simple as c, with a few additional keywords for safety (type and memory), and a modern standard library -- that works basically everywhere C works, and is backwards compatible with C.
ie., we're missing --C++
I think all the supposed successors have approached the problem from the lang-design pov, where for C, it needs to be from-existing-compilers-and-tools pov.
I suspect there's a route to C v2 by starting with the C std, and gcc/clang, then working "forwards". Similar to cppfront for C++.
ie., it needs to compile 99% of all existing C code, it needs to compile to 90% of all in-use platform for C, etc.
I just recently started to dip my feet into golang and it feels like Go could've been something like that. With it's runtime and garbage collection that obviously disqualifies itself, but it's a really simple and fun language, I think. Something like that as a systems programming language with """easy""" memory management would be tremendous (maybe Zig is like that, but I haven't tried that out yet).
This is kind of accurate and funny, but also feels a bit like criticizing the drawing of a 4-year-old kid. :) At least when a language is just someone's hobby project, or some exploration in research.
FWIW, I actually think syntax is sometimes the hard part about programming, especially when not working with a language frequently. I never worked much with C++, but occasionally come across it. Whenever this happens, it feels like things could be more readable, but maybe I'm biased.
what we need is a gradually typed lazy / eager language that helps to combine functional, imperative, concurrent and object-oriented styles, allows functions to use method syntax (and vice versa), with (and without) sigils & twigils, and an entirely new regex syntax that packs a whole ragbag of weird stuff such as unicode graphemes, grammars, junctions, allomorphs, sequences, hyper (>>) and (Z/R) metaoperators, sets, bags and mixes, coercion types and a MOP then we can check all the boxes (aka raku)
To me what’s missing is a functional programming language that is statically typed and has an extreme emphasis on performance. C++ meets Haskell, but not terrible.
That is OCaml. Not that I claim OCaml is extremely fast, but it has a very predictable performance. Which is imho even more important than being the fastest in certain benchmark problems.
Love these responses.