Este post me sale de dentro, no porque defienda que una tecnología es mejor frente a otra, si no porque no me gusta que alguien lo haga contando verdades a medias.
Pongamos que quiero comparar lo facil que es hacer un bucle en Ruby y lo tedioso y complicado que es hacer un bucle en Java, el código Ruby es sencillo:
items.each do |item|
//DO SOMETHING
end
Y ahora digo que para hacer esto en Java hay que escribir todo esto:
for (Iterator it = items.iterator();
it.hasNext()) {
Element item = (Element) it.next();
//DO SOMETHING
}
Bueno analizando el código Java, a primera vista esta claro que la segunda línea nadie la pone ahi, si no todo el for en una línea, pero al margen de eso, el que escribe ese código es que no sabe que existe Java 5, que no es algo super nuevo, ya tiene un par de añitos. Y el código Java queda así:
for (Element item : items) {
//DO SOMETHING
}
Bueno pues ahi queda, todo en una línea y creo que también bastante clarito. Puede que a alguien le guste Ruby más o menos que Java, y que quede claro que no intento atacar a nadie, pero por favor no me intenteis vender algo que no es totalmente cierto.


hombre, es que no se puede comparar la facilidad de dos lenguajes con un simple bucle, si no que habría que mirar más aspectos.
yo me quedo con esta imagen (aunque en realidad sería para un RoR vs. frameworks de java): http://dagi3d.net/temp/java_vs_rubyonrails.jpg
y que conste que soy pro-java
Efectivamente no se puede comparar la facilidad dos lenguajes por la forma de hacer un bucle, pero es que ya me lo han puesto en unos cuantos ejemplos.
Algún día subire esa foto con mis libros de java, ruby y rails, Es mucho peor XD.
Es muy típico esto de utilizar ejemplos exagerados para demostrar las bondades de las tecnologías.
He aquí otro, en lo que yo más conozco, C#: http://www.rubyclr.com/ . En este caso, como en el tuyo, David, no se tiene en cuenta que en C# 3.0 se van a poder crear clases anónimas y se va a poder exactamente hacer lo mismo que lo que hacen con Ruby.
Ruby tiene muchas bondades, entre ellas una sintaxis que permite ser conciso y elegante, pero no hace falta que se nos convenzan de ello con comparaciones demagógicas.
Lo bueno es que lenguajes como Java y C# (teniendolo más dificil por no ser dinámicos) están aprendiendo de Ruby,Phyton,etc... y, en cada version, nos ofrecen un poquito más de todo ese azucar sintáctico.