I think a programming language should have a very clear goal of what problems it is trying to solve. These general purpose languages then start evolving into different direction with patchworks coming from different teams with a different and sometimes conflicting visions. Like what is currently happening to C++.