My list of open programming language design problems (i am not asserting that these problems are or are not objective or formalizable or solvable):
- How to make a language which is as extensible and metaprogrammable as possible
- well this is 'solved' in that you can make metaprogrammable languages, but surely there are more constructs waiting to be discovered here
- How to make a language which is as extensible and metaprogrammable as possible, but prevent the community from fragmenting because it is so easy to create dialects that
- How to create a type system which is sufficiently expressive to not get in the way, sufficently extensible to assist programers in maintaining the correctness of their code, but which is simple enough to easily use?
- How to help the programmer avoid bugs?
- How to help the programmer with concurrency?