Archivo de la categoría: ruby

Flisol 2008

Hoy participé por primera vez en una Flisol. Este año se llevó a cabo en la UNL (Universidad Nacional del Litoral) de Santa Fé. Intenté ayudar con la organización a último momento, ya que no había mucho movimiento en la lista del Lugli, aunque igualmente no pude hacer mucho porque ya era demasiado tarde. Traté de colaborar con zapatillas, switch’s, cd’s y dvd’s. Algo es algo…

Fui con Gustavo y con Pedro, dos de los integrantes en el desarrollo del juego para PyWeek 6, quizás a uno de ellos es más conocido por otra cosa: spa ejem ejem… Llevé mi máquina, sí, el CPU chiquito que tengo 🙂 . Cuando llegué allá ya estaba Gastón, Emiliano, César, Juanjo y otros chicos más. Charlé un poco con cada uno y después, como no llegaba para instalar algún software me puse a hablar con Gastón sobre la charla que estamos preparando.

Empezamos a hablar, y de a poco se empezó a juntar gente a escuchar lo que decíamos sobre Ruby y Python (¿viste lo puse al revés? 😉 ), cada uno con una opinión distinta y tirando algún que otro chiste, medio en joda medio en serio sobre cada uno de los lenguajes. Estuvo bastante entretenido.

Después nos pusimos a jugar un rato tirando algunos ejercicios para desarrollar en los dos lenguajes para luego probar tiempos de ejecución y también poder comparar algo de código, teniendo dos programitas que hacían exactamente lo mismo. Lamentablemente, digamos que debido a la cantidad de gente y el disturbio que se pudo haber generado, mi compañero Gastón, tuvo un problemita con la medición del tiempo 😀 . Asique se nos demoró bastante lo que pensábamos que nos iba a llevar 15 minutos para empezar a probar y ver algunos resultados. A todo esto venía gente nos preguntaba algunas cosas sobre Linux, y cómo hacer tal o cual cosa, lo que también hizo que se demoraran estas pruebas.

Resumiendo, salió todo bastante mal, no pudimos hacer muchas comparaciones con respecto de los tiempos de ejecución, pero sí hablamos mucho de los dos lenguajes en sí mismo. Yo utilicé por primera vez decoradores y me gustó, me pareció agradable como quedó el código y demás, aunque era un uso muy sutil de estos.

Cuando terminó la Flisol, a eso de las 16 hs, con Gastón y Juan Pablo nos fuimos a comer a un bar del shopping, charlamos bastante sobre Ruby, Python, Java, experiencias de todo tipo y tomamos unas cervezas.

…Python Vs. Ruby… ¿Rivales?

Desde la primer charla del LugLi en la UTN, hace un par de semanas, que conozco Ruby. Esto quiere decir que ví algo de código, me mostraron algunas de sus características y me dejó algo impactado.

Este lenguaje es muy parecido a Python en muchos aspectos. Sin embargo Gastón Ramos me mostró algunas aspéctos que lo hacen que sea tan bueno como es, y me dejó regulando en como hacerlo en Python.

Hay mucha gente que o está del lado de Ruby o de Python, y ni siquiera quieren mirar al costado para compararlos, son cerrados y hasta incluso rivales. Después de un tiempo le propuse hacer algunas comparaciones un poco más profundas y no que quede solo de palabras, asique decidimos escribir un par de post al respecto. Este es el primero de él, la respuesta de Juanjo y ahora tiro algunas diferencias entre ellos.

Python

  1. Tiene strings inmutable
  2. Lo métodos privados comienzan con __ (doble guión bajo)
  3. Los bloques se delimitan con la identación y : (dos puntos)
  4. Tiene __getattr__()
  5. La sobrecarga de operadores se define como un método especial (comienza y termina con __). def __add__(self) para redefinir la suma.
  6. No tiene constantes
  7. InputRaw con r»C:\Mis Documentos»
  8. Insertar una variable en un texto al estilo C: «Mi variable es: %s» % (cadena.upper())
  9. Necesita paréntesis para llamar a un método
  10. True, False, None, elif, import
  11. Acceso dirécto a las variables de una instancia mediante el operador . (punto)
  12. if __name__ == ‘__main__’: verifica si es el archivo principal
  13. Tiene un guía excepcional para todo programador: import this
  14. Docstring utilizados para brindar ayuda con help()
  15. Las funciones son objetos y puedo crear una referencia a ellas

Ruby

  1. Tiene strings mutables
  2. Los métodos privados van después de private
  3. Los bloques se delimitan con end’s statements
  4. Tiene method_missing
  5. La sobrecarga de operadores es def +(), para redefinir la suma por ejemplo
  6. Tiene constantes
  7. InputRaw con ‘C:\Mis Documentos’, (comillas simples)
  8. Insertar una variable dentro de una cadena al estilo Template (de Django, por ejemplo): «Mi variable es #{variable.capitalize}
  9. No necesita paréntesis para los métodos, los atributos comienzan luego del espacio
  10. true, false, nil, elsif, require
  11. Tengo que definir cuales variables son públicas una por una
  12. if __FILE__ == $0 verifica si es el archivo principal
  13. No tiene un guía built-in
  14. Los docstring se utilizan cuando se llama al comando: rdoc
  15. Hasta ahora, no pude guardar la referencia a una función en una variable

Éstas son algunas de las diferencias que encontré a simple vista en Python y Ruby, pero lo que más me interesa mostrar es cómo hacer algo en un lenguaje utilizando alguna particularidad del mismo, que permita que sea super sencillo o que diréctamente en el otro no se pueda realizar de «ninguna forma«.

Vamos a ver que sale de todo esto. ¿Seguiré con Python o me pasaré a Ruby? ¡CHAN!

Etiquetado ,