Tractis y Ruby on Rails

Lo bueno de estar en un proyecto como Tractis, es que puedes tomar decisiones, por muy estúpidas que estas sean. Una de las primeras que hubo que tomar a nivel técnico fue la elección de la plataforma de desarrollo. Después de considerar unas cuantas alternativas, al final nos quedamos con dos candidatos: Basado en Java utilizando Spring e Hibernate y Ruby on Rails. Estuvimos evaluando los pros y los contras de ambas plataformas. Tengo que reconocer que en principio yo estaba más inclinado a usar Java, supongo que impulsado por cierta inercia de haber desempeñado mi trabajo en esta plataforma durante los últimos años. Por otro lado teníamos bastante trabajo avanzado en esta dirección, diseño de la arquitectura, incluso un prototipo. Sin embargo, Tractis es una empresa con recursos muy limitados, necesitábamos desarrollar rápido con muy poca gente, por eso empezamos a considerar Ruby on Rails. Yo había visto los vídeos de DHH, y estaba realmente impresionado con el incremento de productividad. Incluso seguí un par de tutoriales sobre como hacer un motor de blogs, y cosas por el estilo. Sin embargo Rails carecía de características fundamentales para nuestro negocio, tales como validación de firmas digitales y certificados. Temíamos que lo que ganáramos en productividad por un lado lo perdiéramos por el otro. Durante esos días, recuerdo que cada día me levantaba decidido por una plataforma distinta que al acostarme. Al final hice lo único que podía hacer, ser cobarde y permitar que fueran otros los que tomaran la decisión por mí. Uno de nuestros colaboradores, Ernesto Jiménez, estaba entusiasmado con la idea de usar Rails. De repente, entro una variable de decisión inesperada, pero muy importante, la capacidad de atracción de talento al proyecto. Negonation, quiere ser una empresa con una decena de empleados y cientos de colaboradores. Si queríamos atraer a estos últimos debíamos ofrecerles diversión, y definitivamente Rails es mucho más divertido que Java. Los ensayos de Paul Graham, en particular, Beating the averages y The Python Paradox, fueron decisivos en este aspecto. La decisión estaba tomada, Tractis se iba a desarrollar en Ruby on Rails, utilizando Webservices escritos en Java para las funciones de validación de certificados y firmas.

Han pasado ya casi cuatro meses, y todo lo que puedo decir es que se tomó la decisión correcta. Rails es una plataforma de desarrollo impresionante. Nos permite a los desarrolladores y a los diseñadores trabajar con el mismo código. Tiene una de las comunidades de desarolladores más activas del momento y permite tener un código compacto fácil de entender. Por último existe una última ventaja muy importante para una startup. Nos hace terriblemente dinámicos, de forma que nos diferencia positivamente respecto a posibles competidores. Cuanto más grandes sean ellos, mucho mejor para nosotros.

Por Diego Lafuente
Guardado en: Programación, Tecnología, Tractis | 12 comentarios » | 27 de Junio de 2006

12 Comentarios en “Tractis y Ruby on Rails”

Gravatar de Rodrigo González Fernández

Rodrigo González Fernández
27 de Junio de 2006 a las 5:29 pm    

Aqui aprenderemos , saludos Rodrigo González Fernández, consultajuridica.blogspot.com

Gravatar de manu_drac

manu_drac
28 de Junio de 2006 a las 7:19 pm    

Según leo, no teniais ni idea de Ruby antes de empezar con el proyecto. ¿Has ha costado mucho adaptaros al nuevo lenguage y su manera de hacer las cosas?

Yo estoy acostumbrado a php, pero en un proyecto que estoy diseñando lo quiero hacer en Rails. He comenzado a aprender Ruby on Rails (aún estoy en fase de aprender globalmente como funciona) y según estoy leyendo, es genial si lo usas bien. Pero también es completamente distinta su filosofia, desde su lenguage, estructura, manera de programar, pruebas… y el miedo que tengo aún es si la curva de aprendisaje será dura.

Se me irá en cuanto me ponga en serio a programar :D

Grán proyecto el vuestro, ánimo.

Gravatar de Manolo Santos

Manolo Santos
29 de Junio de 2006 a las 12:52 am    

Ruby es un lenguaje muy facil de aprender, sin dejar de ser potente. La filosofía de Ruby precisamente es hacer un lenguaje de programadores para humanos, no para máquinas. Seguro que más de una vez al programar en cualquier lenguaje has querido saber la longitud de un array, yo siempre me hago la misma pregunta: ¿es array.size o array.length?. En ruby valen los dos. No hay que pensarlo. Tambien existen unas convenciones muy bien pensadas, por ejemplo, cuando una funcion devuelve un booleano se suele terminar en “?” y cuando modifica el objeto invocante se termina en “!”. Ruby posee una consola interactiva donde podremos hacer pruebas con el lenguaje, se llama irb:

libertad:~ manolo$ irb
irb(main):001:0> my_array = [1,2,2,3]
=> [1, 2, 2, 3]
irb(main):002:0> my_array.empty?
=> false
irb(main):003:0> my_array.uniq
=> [1, 2, 3]
irb(main):004:0> my_array
=> [1, 2, 2, 3]
irb(main):005:0> my_array.uniq!
=> [1, 2, 3]
irb(main):006:0> my_array
=> [1, 2, 3]
irb(main):007:0> exit
libertad:~ manolo$

En cuanto a Rails, que como ya sabrás se basa en Ruby, respeta al 100% la filosofía del lenguaje. La característica más sobresaliente es que favorece la convención frente a la configuración, es decir que poniendo los nombres adecuados a tus ficheros y a los métodos no tendrás que tocar cincuenta ficheros de configuración.

En definitiva, la curva de aprendizaje es muy, muy suave. De hecho, si ya tienes conocimientos de programación web y de conceptos de orientación a objetos puedes lanzarte directamente a Rails sin aprender Ruby a fondo. Poco a poco irás aprendiendo nuevos trucos en Ruby.

Espero haberte despertado el gusanillo.

Gravatar de manu_drac

manu_drac
29 de Junio de 2006 a las 11:43 am    

:D Gràcias por tu opinion. Y cierto, me muero por probarlo en serio, cuanto más leo sobre él en el libro más impresionante me parece. A ver si lo acabo esta semana, que solo me quedan unas 100 pàginas, y a divertirse …

Gravatar de Nadow

Nadow
30 de Junio de 2006 a las 7:34 pm    

¿Y por qué no Python y Zope?

Un saludo.

Gravatar de Manolo Santos

Manolo Santos
1 de Julio de 2006 a las 9:36 pm    

Bueno, estuvieron en la lista inicial. De hecho Python era mi lenguaje predilecto hasta que conocí Ruby. Pensamos en soluciones basadas en Django, pero nos pareció que Rails estaba más maduro. Tambien consideramos el uso de Plone, al fin y al cabo la gestión de contratos no debería ser tan distinta que la gestión de contenidos, pero al final se cayó de la lista.

Al hilo de este comentario, si el otro día decía que la curva de aprendizaje de Ruby es muy suave, si ya sabes Python, casi se hace cuesta abajo. Son dos lenguajes muy similares, aunque para mi gusto Ruby es un poco más purista en cuanto a Orientación a Objetos, en Python siempre me ha parecido un poco ad-hoc.

Gravatar de David Blanco

David Blanco
3 de Julio de 2006 a las 11:14 pm    

Para todos los interesados en aprender RoR, hemos abierto una Página en Negonation Blog con recursos útiles para aprender Ruby on Rails. Si conoceis algo que se nos haya pasado, por favor, decídnoslo.

Por si a alguien le interesa, he hecho un comentario en el blog de Diego explícando cuales fueron, en mi opinión, las causas de la elección de RoR en Tractis. Saludos.

Gravatar de Nicolas Orellana

Nicolas Orellana
10 de Agosto de 2006 a las 7:31 pm    

Yo he trabajado por varios año desarrollando aplicaciones web con PHP y algo de java para validar algunas cosas, estoy pensando seriamente en cambiar la plataforma, es muy cierto lo que lei en un articulo PHP is an a Fast & Dirty Camp, si bien es rapido en su desarrollo, es muy sucio a mi parecer, cuando comienzas a trabajar en PHP todo es bonito, pero cuando quieres reutilizar codigo o simplemente hacer algo simple usando lo que ya programaste surgen los problemas.

Lo positivo a mi parecer de PHP es su gran soporte a Hosting de pago, estoy por comenzar un proyecto en Chile y estoy buscando en que plataforma trabajarlo, tengo amplios conocimientos en JAVA orientado a Objetos y en PHP, creo que podre lanzarme sin problemas a Rails, pero mi gran pregunta… No tengo los recursos ni los conocimientos para montarme un propio servidor, será bueno montar un proyecto “transitado” en un hosting de pago? en este punto eh encontrado un hosting “barato” en comparación a otros que soporta Rails, BlueHost.com.

Porfavor les pido sus comentarios al respecto, Rails no es viable en Hosting de pago?

Saludos!

Gravatar de David Blanco

David Blanco
12 de Agosto de 2006 a las 5:01 pm    

Hola Nicolás, respecto al tema PHP vs RoR, hice un comentario en el blog de minid que quizás te interese.

De Bluehost no sé nada. Nosotros tenemos un servidor en Textdrive que soporta Rails y estamos bastante contentos. Para producción tenemos un servidor dedicado en ServerBeach pero ese lo instaló José Luis Gordo, nuestro sys-admin, desde cero.

En http://www.rubyonrails.org/ dicen que TextDrive es el proveedor oficial de RoR (TextDrive destina parte de sus ingresos a proyectos open source, entre ellos, RoR). También hay una Lista de proveedores de hosting de Rails.

Gravatar de Nicolas Orellana

Nicolas Orellana
13 de Agosto de 2006 a las 4:54 pm    

Gracias David

Muchas gracias, definitivamente para comenzar a probar me he decidido por DreamHost, al menos tienen buenas prestaciones en el papel y un buenisimo costo. Luego les cuento como me va.

Saludos.

Gravatar de Alberto

Alberto
23 de Septiembre de 2006 a las 5:06 pm    

Por que no utilizar uno de los tantos clones que han salido para PHP? Esto evitará que tengas que contratar un año completo en Dreamhost. A nosotros nos impresionó lo inflado de sus planes y los instaladores de aplicaciones, pero sinceramente no nos gustó nada la velocidad de los servidores.

Sosotros usamos el Akelos Framework y ha cambiado radicalmente nuestra productividad.

Valoramos usar Rails, pero teniamos un equipo excelente en PHP y empezar con el típico trial/error de un lenguaje nuevbo nos pareció bastante imprudente para proyectos profesionales.

Además, la mayoria de las webs que hacemos las hacemos en varios idiomas, y en eso los del Akelos se han esmerado.

Lo malo es que no tiene una comunidad abultada como Rails, pero su autor Bermi esta siempre disponible para solucionar dudas (en español claro).

Gravatar de Negonation Blog » Blog Archive » Shu Ha Ri

Negonation Blog » Blog Archive » Shu Ha Ri
16 de Enero de 2007 a las 1:14 pm    

[...] En muchos aspectos probablemente nos encontramos en la etapa del Shu. Hemos elegido ser ágiles y hemos elegido Rails como medios con los que alcanzar nuestros ambiciosos objetivos. Por tanto, estamos tratando de aprender, aplicar e interiorizar las técnicas ágiles (TDD, Refactoring, Integración Contínua, etc.) y la manera-Rails de hacer las cosas, según indican nuestros “maestros”. [...]

Más entradas en Negonation Blog