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.