Programming Language Checklist (2011)
mcmillen.devSlashdot answer. Like this one: https://tech.slashdot.org/comments.pl?sid=218300&cid=1771910...
Love these responses.
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.
You may find Zig interesting: https://ziglang.org. The language is not C compatible but the tooling can compile C and C++ without hassle.
i'm aware of zig, which is why i included the criteria above that i take to rule it out.
i do think the successor should be src-compt with C
What would be great is a language that does to C what TypeScript did to JavaScript.
C but with better safety and additional developer ergonomics would be amazing.
Part of the problem is I think you would need to depart from the traditional C build system to get the most benefits. That will be hard for adoption.
>There should be a language about as simple as c,
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).
Zig, Odin and Jai are the main contenders.
I don’t think backward C compatibility is a good idea, since the C syntax has issues. Instead a transpilation tool from C could be built.
Carbon was a possible successor, only time will tell
Quite funny, but I want people to advance the state of the art.
Does C++ / Java / Python really represent the high water mark of programming languages? I sure hope not…
Surely C# superceded C++ as the better example?
C# is more like Java than C++
We have "No language spec" and "The implementation is the spec". Sooo, languages with a spec are strictly superior?
I've tried updating it to 2024: https://gist.github.com/boppreh/3b88231b7af15af54d292963f3d7...
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.
Isn't this criticizing the discussion of (new) programming languages, not the new languages themselves?
Ah, maybe.
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.