Top 3 million mistakes in programming languages
Programming languages and paradigms struggle with the same challenges as any tech. It would be best if you were close to something people already know to get an adoption or offer a powerful mechanism that solves some user pain to pass a threshold.
I have my own top 3 rating of a million failure legacy that moves us down.
NULL, Undefined, never, etc
Null, undefined, etc. Nulls are a horrible concept. It is a million ways how to avoid nulls. Monads, either monads or dependent types, solve this problem. Some languages have no null type.
handling of exceptions and Asyncs
Exceptions and throwing async operations. Error is the same effect as the rest. We could handle exceptions, async functions, and even more with algebraic effects and continuations. Ocaml, Idris, Eff, and Koka already do it.
Classes / Object dualism.
The problem of the fragile base class. Languages like rust and Golang prove that you don’t need classes. Self was a masterpiece outcome of a working group fighting this problem in Smalltalk.