Maybe if people who spent time knowing a lot about good language design spent some time making their languages practical, we wouldn't be in this situation either;-)
I think Ruby and Python are reasonable examples of languages that make good compromises; they have some nice language features, but they are eminently usable for real world problems as well. Also, they are fairly approachable, even for people who are not CS majors.