It is a mistake to think that "combining all features" will make a better language.
You are more likely to end up with a bloated, complex, unreadable mess.
Good language design requires choice and trade-offs to be made. Arguably the best / most revolutionary / most successful languages are the ones that take something out and provide a better alternative rather than add new things in. e.g.
- Structured programming languages (C, Pascal) - takes out "goto", replaces with procedures and structured loops etc.
- Java - takes out "manual memory management", replaces with GC/managed memory
- Haskell/Clojure - takes out "uncontrolled mutable state"
- Lisp - takes out most "language syntax", replaces with a flexible homoiconic tree of s-expressions
There's a great talk on this top by Uncle Bob Martin - The Last Programming Language