No hay lenguaje perfecto
Language designers want to design the perfect language. They want to be able to say, "My language is perfect. It can do everything." But it's just plain impossible to design a perfect language, because there are two ways to look at a language. One way is by looking at what can be done with that language. The other is by looking at how we feel using that language—how we feel while programming.
Because of the Turing completeness theory, everything one Turing-complete language can do can theoretically be done by another Turing-complete language, but at a different cost. You can do everything in assembler, but no one wants to program in assembler anymore. From the viewpoint of what you can do, therefore, languages do differ—but the differences are limited. For example, Python and Ruby provide almost the same power to the programmer.
Instead of emphasizing the what, I want to emphasize the how part: how we feel while programming. That's Ruby's main difference from other language designs.
Ruby es un lenguaje tan chulo por una razón muy simple: es el primero que tiene en cuenta en su diseño algo tan obvio como frecuentemente ignorado: que los lenguajes de programación son software, y que los programadores son sus usuarios. Un software y unos usuarios todo lo especiales que quieras, pero software y usuarios. El diseño de Ruby como lenguaje es, como el de todo producto que alguien con dos dedos de frente querría usar, un diseño centrado en el usuario.
(La cita es de esta antigua entrevista que recomiendo leer.)


