YaST reescrito en Ruby… ¿Será una buena idea?

Mayo llegó y se fue, y tal vez la noticia que más ha sonado en el mundo susero en ese mes ha sido acerca de la reescritura de YaST con el lenguaje de programación Ruby. La noticia ha sido tomada con mucho ánimo por la comunidad. De hecho esta noticia debe sonar como música para los oídos de los amantes de los lenguajes dinámicos y mas aún para los fanáticos Ruby… sin embargo y como no todo lo que brilla es oro (¿rubíes…?), este servidor tiene  razones para pensar que ésta no es una noticia 100% buena.

20130614-yast_icon.png 20130614-ruby-icon.png

YaST, tu asombrosa herramienta de configuración, o tan sólo otra herramienta de configuración. Un aplicativo que ha sido una de las estrellas en openSUSE desde hace muchos años… si no me equivoco, desde que SUSE se basaba en Slackware inclusive. Permite configurar prácticamente cada rincón del sistema operativo. Un buen aliado en el mundo Linuxero (aunque recomiendo enfáticamente aprender a realizar esas configuraciones a mano, porque en otras distros no vas a encontrar YaST) para los que recién se enfrentan a configuraciones no tan simples. Empero, YaST ha dejado/dejará de existir tal y cual lo conocemos para dar paso a su forma reimplementada (traducida… en Praga) a Ruby. El móvil que algunos exponen es, en resumen, que será “para hacerlo evolucionar mas facilmente”. Pero veamos, ¿qué acarrea todo esto?

Antes de continuar, recordemos que YaST sobre Ruby tiene un antecedente llamado WebYaST. Como su nombre lo indica. Una forma (¿frontend?) de YaST que permitía configurarlo remotamente, con (supuestamente) todas las facilidades de YaST, pero lógicamente por medio de tu browser. La gracia parecía muy útil y funcional (en efecto, lo es) y resultaba un complemento interesante al YaST que podías usar por consola (frontend ncurses, que al menos por SSH iba bastante bien).

De otro lado tenemos a Ruby. Lenguaje interpretado. Comúnmente acompañado cual dupla con Rails para el desarrollo de aplicaciones web. Amado por unos que dicen escribir haikus con él, odiado por otros que dicen que se trata de “el vómito de todos los lenguajes de programación” (ojo, que estas no son mis opiniones, sino la percepción que he recogido de la gente), o que en su defecto se quejan enfáticamente de su cuestionable desempeño. En resumen, con prosélitos y detractores, como cualquier cosa.

Yendo al grano, en noviembre tendremos un nuevo YaST (¿YaST3?) reescrito completamente en Ruby. Y es que YaST estaba escrito en parte en YCP, un lenguaje propio (no “propietario” como han estado escribiendo en todos lados) y específicamente para la herramienta. El problema es que es tan particular, que hacer que YaST siguiera creciendo sobre YCP era complicado, así que decidieron cambiar de rumbo… a Ruby. Mi pregunta es… ¿por qué Ruby?.

Aunque existen casos similares, como el caso de Metasploit, que fue reescrito de Perl a Ruby (con una excusa similar a la de YaST) y que hoy por hoy van bastante bien, no creo que este tenga que ser necesariamente el caso de YaST.
Recordemos que YaST es una herramienta de configuración, algo que podrías necesitar en una situación crítica… digamos, se malograron paquetes en el sistema (porque recordemos que YaST también tiene módulos que interactúan con libZYpp para manejo de paquetes), y digamos que en conjunto también se estropearon algunas cosas más que deberemos reconfigurar. Ahora… que tal si… oh sorpresa, entre los paquetes dañados existen dependencias de… Ruby. Respuesta, adiós YaST, solucione sus problemas a mano… Lo cual puede ser complicado para un usuario que recién aprende.

Y esto no es tan lejano como parece y para esto cito una comparación que hice hace tiempo comparando YUM, la herramienta de gestión de paquetes RPM que viene con las distribuciones basadas en Red Hat/Fedora, y Zypper, la herramienta para el mismo fín que viene en (open)SUSE. Zypper, tiene hoy en día el mejor desempeño en cuanto a gestión de paquetes, debido a su algoritmo SAT Solver y a otras cosas (no muchos lo saben). Zypper es bastante solido, y algo más, está escrito en C++, no depende de nada que pueda depender también (valga la redundancia) de otras aplicaciones, que vaya a actualizarse (o que necesite cambiar) y pueda romper algo por ahi. YUM por otro lado está escrito en Python (nada mal, de hecho me encanta Python, ya lo he mencionado antes). Sin embargo. cuando Python falle, se corrompa (acaso, por algún loco intentando compilar Python por su cuenta), o lo que sea… adiós YUM. Y no hace falta googlear mucho para encontrar ejemplos como este.

Finalmente, creo que la decisión de YaST portado a Ruby se ha tomado apresuradamente. No se si habrán fanáticos Ruby en el equipo de desarrollo (lo desconozco por completo) que hayan llevado a aquello. Tal vez un desarrollo en un lenguaje compilado hubiese sido más acertado. En fin, veamos que pasa mas adelante… mi última palabra será ¡forkeen YaST! o mejor aún ¡Qué alguien lo reescriba en otra cosa (que no sea Ruby)!. Sé que algunos ruby-fanáticos me van a odiar por esto, pero nada personal… solo una humilde opinión.

Links de interés:
En los foros:
http://forums.opensuse.org/english/get-technical-help-here/pre-release-beta/487511-yast-being-autotranslated-ycp-into-ruby.html
En las listas:
http://lists.opensuse.org/yast-devel/2013-05/msg00035.html
http://lists.opensuse.org/yast-devel/2013-05/msg00026.html

Puntuación: 0 / Votos: 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *