martes, 13 de noviembre de 2012

De C#.NET a Ruby

Como les contaba antes, debido al nuevo reto en mi trabajo de trabajar con RhoElements, debo empezar una nueva etapa que me tiene incluso bastante animada, se trata como ya es obvio con el título de esta entrada, de cambiarse de .NET a Ruby, bueno, no de cambiarse, simplemente de aprender.

Recién estoy mirando los conceptos básicos tal como si empezara de cero otra vez y además decidí en paralelo buscar fuentes y personas que hablar del paso de .NET a Ruby y ha sido una experiencia que mentalmente te golpea.

Lejos de si estoy de acuerdo con los argumentos de las personas que he leido o escuchado, creo que el nivel de agresividad con el que se dirigen a los desarrolladores de .NET los demás desarrolladores, es brutal e innecesario cuando de motivar a otro se refiere, y espero que aunque llegue a enamorarme de Ruby lo suficiente, no me de por hablar de ese modo, en ese tono o esos términos jamás.

Nunca me ha molestado .NET, me ha pasado que toda la vida me han tocado cosas que yo considero fáciles, QBASIC, Pascal, Power Builder, Java, VB6 y por último y donde he permanecido largo tiempo C#.NET diría, con quien he crecido lo años más importantes de mi vida laboral. Pues bien, por escuela o no, siempre encontré en los IDE una forma de ser bastante productivo, lejos de lo ofensivo de llamarnos perezosos o idiotas en algunos casos, a las personas las hace lo que son y lo que pretenden aprender y hacer con lo que aprenden, y no necesariamente que tanto se quiebran la madre haciéndolo.

Si alguno de mis estudiantes me preguntaba de razones usaba un ejemplo muy sencillo y fácil de entender: Si quisieras abrir una lata de sopa tienes varias opciones, compras lata de sopa con abre fácil, usas un abre latas electrico, usas un abrelatas mecánico, o finalmente usas un cuchillo y lo haces a la antigua ¿el resultado? Comes sopa ¿verdad? En algunas de las opciones, más rapido y sin peligro, en otras con mayor esfuerzo, peligros de cortes y cosas asi, pero todos felices finalmente comen sopa (ojalá el software fuera tan simple). Después de esto les cuento como a pesar de los años, de los abre fácil y de los abre latas eléctricos, a mi madre le sigue pareciendo más fácil abrir las latas con un cuchillo y vieran lo hábil que es, mientras yo misma muchas veces daño los abre fácil y me toca usar un cuchillo :P.

Se que si alguno de los bastante ofensivos personajes que uno se encuentra en la red lee mi post, algo se inventará del mismo nivel ofensivo para escribir, antes que se ponga a planificarlo, el contexto de mi explicación va a un adolescente que está empezando a entender, y que vainas, parece que me gusta lo fácil, yo soy así y me gusta mucho hacerle entender a la gente de forma sencilla, debe ser por eso que me gustan los IDE y no tener que luchar con herramientas de linea de comando o instalar cientos de componentes adicionales, lo único que se es que en un IDE tan poderoso como Visual Studio te preocupas exclusivamente por hacer software y ya, eso no tiene por que ser tan endemoniadamente malo de ver.

Ahora, si sobreviviste a mis comentarios superficiales, aqui viene la parte en donde yo, que me siento tan feliz con Visual Studio decidí que es hora de aprender algo más, bueno, además de que como alguna vez con Java siento la necesidad de simplemente probar algo diferente y demostrarme a mi misma que puedo y además de que mi trabajo me lo pide, en mi cabeza quedó rondando hace semanas ver como lo primero que encuentras en todos los sitios que hablan de trabajar con base en editores de texto, es que los IDE son Satán o algo por el estilo y que el Intellisense es para idiotas.

Eso me dejo pensando, si que es cierto, pero ni mucho menos por semejantes razones tan tontas, yo misma uso IDE y al pasar años con mis alumnos teniendo que encontrar todos los errores de digitación que cometen tan solo con mirar sus pantallas considero que es un tema de costumbre y disciplina.

Creo que el tema de usar un IDE o no, no determina al nivel de que tan hábil u ordenado eres, no tiene que ver, incluso en las ultimas casas de software que trabaje, ademas del IDE instalábamos herramientas de estilo que nos permitian ver si los programadores seguian con orden el codigo, asi que ser ordenado o disciplinado con el código se trata no más que de uno mismo, teniendo un super IDE uno puede hacer las cosas mas terribles que pueda imaginar.

Ahora, lo que si es cierto es algo, en 7 años entre mas cosas nuevas salen, cada vez me veia con menos tiempo en mis materias para dejarles cosas utiles a la vez de actualizadas, y este semestre a razón de leer tantas criticas por el uso de IDEs empece a mirar el trabajo de mis alumnos con otros ojos, y como al tener una herramienta que hace tantas cosas por ellos, se limitan a que la herramienta lo haga y no a pensar, y ahí es donde no estuve de acuerdo, y me dejé como tarea personal salir de mi zona de comfort, pues tuve la necesidad personal y deseo de querer aprender y tener mas puntos de vista por mi cuenta y evitar defenderme de algo que no conozco, sin comportarme como los que no conocen o conocieron hace mucho algo, pero deciden simplemente criticar y criticar. 

Me voy por un tiempo al universo Ruby, allá donde vivir sin IDEs les parece tan divertido y donde demorarse más tiempo haciendo todo es tan admirable, su razón ha de tener, eso si, espero aprender que dicen los clientes cuando las estimaciones de funcionalidades duran más y todo eso. No pienso que vuelva atrás, de hecho y es más que obvio voy adelante, a aprender cantidades de cosas, a ver que tan cool es todo lo cool de lo que hablan, la diferencia es que podré tener ambos criterios en real y no en imaginario.

Algo para finalizar que me gustó y en lo que definitivamente tienen razón, es que cuando usas un producto como Visual Studio, si no tiene alguna característica pues te limitas a esperarla en la siguiente versión, aunque bueno puedes construir, extensiones, snippets, paquetes de Nutget y demás, pero digamos que en algo tienen razón, la gente que trabaja con software libre, tiene más el espíritu de colaborar y crecer juntos, pero igual no son la mayoría como lo pretenden hacer creer los que te ofenden, lo que sí es que evidentemente son más, cosa que no hace cierta que en el lado de los que poco usamos software libre no haya gente con espíritu de colaboración.

Por el momento les comparto algunas cosas chéveres que encontré por ahí buscando como dar el paso lentamente por que lo que sí, es que sería mejor empezar de cero que con todos esos vicios de los IDE :P (Oh Dios, soy uno de ellos ahora XD #justkidding)

http://www.ruby-lang.org/es/
http://www.infoq.com/presentations/From-NET-to-Ruby
http://rubysource.com/category/switching-to-ruby/switching-to-ruby-from-dot-net/
http://rubybits2.codeschool.com

Saludos y deseenme éxito.

Sorey

PD: Les recomiendo unos videos de EnvyLabs a mi parecer muy chistosos, comparando Ruby con .NET, PHP y Java entre otros.

10 comentarios:

ALEJANDRO ROMERO dijo...

interesante punto de vista, pero no me queda claro ¿por qué Ruby? por gusto, por filosofía, por rendimiento, por documentación, por curva de aprendizaje, me queda la duda :)

Y con respecto a las personas y sus comentarios, me resta decir que opino lo que dice Linus Torvalds; Hablar es barato. Muéstrame el código.

Sorey García dijo...

Amm, verás es con lo que empiezo mi post, con un enlace a otros post donde explico que me va a tocar trabajar con un Cross Platform que usa Ruby

Aquí lo puedes leer ;)

Gracias por el comentario :)

Unknown dijo...

Genial artículo.
por ahora no he probado con Ruby, sin embargo te digo: trabajar sin un IDE a veces puede llegar a ser frustrante para quienes llevan tiempo trabajando con herramientas como intellisense, creación visual de GUIs y otros es muy difícil pasar a hacer todo casi que a mano

ALEJANDRO ROMERO dijo...

Me queda muy claro el porque van a usar Ruby, interesante estas herramientas RhoMobile, RhoElements , me cuentas en un futuro como es el benchmark de estas tecnologías.

ALEJANDRO ROMERO dijo...

Respecto a los IDE me parece genial esta frase:
No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo”.

http://www.dancingdogdesigns.com/humor/laws.html

Anónimo dijo...

Se puede programar para Ruby y Python en Visual Studio. Sublime Text 2 es un semi IDE mucho mas rápido cuando de programar para lenguajes dinámicos se trata.

MrChecho dijo...

Muy interesante tu articulo y puntos de vista que tienes.

En la parte de cross plataform que hablas, con las herramientas que has evaluado, es cross plataform con HTML 5 o se puede generar codigo nativo??

Dado el caso que no quiera renunciar hacerlo con C# la unica forma es con Xamarin o la unica salida es con HTML5??
Gracias :)

Asgaroth dijo...

Sublime no es un IDE... es un editor de Texto, yo tambien vengo de un IDE, no tan poderoso como visual estudio, trabajaba en Eclipse, y posteriormente Aptana, ahora amo sublime.

Me parece un post interesantisimo, yo mismo estoy tratando de aprender ruby.

Algo que no estoy enteramente de acuerdo, es con que sea mas lento, o estimaciones mas largas, suena como si simplemente fuera "mas dificil" y "mas lento". cuando en realidad si bien puede ser mas demorado, estas entregando cosas de mejor calidad (obviamente es relativo), pero incluso como desarrollador, estas creciendo mas. tu misma lo menciones en tu post, y es algo que no pasa solamente con los estudiantes, los profesionales en general, se terminan limitando a lo que les ofrece el IDE.

He conocido algunos casos, donde como el IDE les genera muchas cosas, incluso el javascript, entoncones el dia que necesitan hacer algo un poco mas interesante, que el IDE no sabe generar, quedan mirando para el techo, porque no saben escribir 3 lineas de javascript (dios ya sueno como si fuera de los malos).

Mi punto es, que si... los IDEs son malos, y no estoy hablando de .NET solamente si no en general, son malos digamos como... la television :)

ALEJANDRO ROMERO dijo...

Interesante el debate sobre los IDE, yo creo que el problema no radica en ellos, sino en el momento en que se genera dependencia del mismo, al ingeniero de software no lo hace un IDE, lo hacen sus conocimientos y bases sobre desarrollo, algoritmos, destreza y experiencia; entonces no debemos pretender que el IDE nos resuelva todo, más bien saber cuando usar cual :)

Unknown dijo...

Yo desarrollo en RoR y uso Aptana estudio como IDE. Cuando de editar un archivo aislado se trata uso vim.