I once watched a video about languages by I believe the designer of F# (could be wrong). He talked about a graph with a horizontal axis measuring "elegance". On the right hand end is your highly elegant mostly functional languages. On the left hand side are the rugged languages like C++ very few people would call it elegant. However on the vertical axis is Utility. on the bottom are "not very useful at all", and at the top is "very useful". These languages are solidly in the upper left hand. The ultimate goal is to find something on the upper right hand side... but nothing has quite achieved it yet.