imagen tomada de Pixabay
Durante toda la semana he estado haciendo un pequeño proyecto para mejorar mis habilidades como programador en Ruby y más que nada porque me interesaba aprender a realizar GUI's (Interfaces Gráficas de Usuario, por sus siglas en inglés) con este lenguaje de Programación.
Para cuando yo conocí Ruby como lenguaje de programación ya tenía ese enfoque usado para el desarrollo web con su famoso Framework "Rails", sin embargo, se supone que este lenguaje de programación es multipropósito y se puede hacer de todo con este lenguaje, pero la realidad actual es que es tanto el enfoque que se tiene de Ruby hacia el desarrollo web, que pareciera que todo otro enfoque se ha dejado de lado.
Mis intentos por hacer GUI's
En Ruby existen o existían varias formas para crear GUI's, gracias a diferentes gemas (la forma de llamar a las librerías), las cuales eran "Shoes4" la cual se encuentra descontinuada, también se encuentra "TK" una librería aún vigente, aunque realmente la siento algo arcaica, después sigue QT, otra de las librerías mas conocidas, pero justamente su versión para Ruby se encuentra igual deprecada y por último se encuentra GTK a la que considero una de las librerías para crear GUI's mas populares, escritas en C y que si se encuentra actualizada para Ruby y es con la que me dispuse a practicar.
El problema con el que me encontré, es que no existe documentación actualizada de esta libreria, existen para lo que es su lenguaje principal C/C++ y otros lenguajes más populares, pero, sin embargo, para su versión de Ruby no se encuentra realmente actualizada, ademas que la web no ha tenido nada de mantenimiento.
Al final en la comunidad de Ruby, me pasaron el Github de otra gema que esta usando la libreria "libui" para que uno pueda hacer interfaces gráficas rápidamente, además que usa el software nativo del sistema operativo en el que estes trabajando, algo muy bueno a pesar de que se encuentra en una fase alpha.
Todo parecia perfecto, la documentación esta muy completa y con ejemplos, actualizaciones constantes y al final parecía que todo iba viento a popa, hasta que me termine topando con pared otra vez
Creando un ejecutable
Cuando uno termina creando un software de escritorio al final uno debe de crear un ejecutable, lo que los usuarios de Windows conocemos como el ".exe" ya sea portable o para instalar, porque no le puedes entregar el código así simplemente al usuario final, este no sabría qué hacer con él. Y es en esta parte donde termine chocando con pared.
La gema ocra es la mas conocida para poder crear ejecutables para windows, el unico problema es que la ultima actualización que tuvo fue en el 2020, con lo cual la versión de Ruby que uso parece ya no ser tan compatible (actualmente uso la versión 3.2 y creo que para los tiempos de esa librería es la versión 2.5).
Hice miles de intentos por sacar adelante el ejecutable, revise los "issues" del proyecto para saber si alguien había encontrado la solución al problema y solo termine teniendo más problemas, pasando días sin llegar a nada.
De igual forma usé ruby-packer que su última actualización fue en el 2021 y aunque se me hizo una propuesta interesante para poder crear mi ejecutable al final, no logre nada, mi esfuerzo quedo en vano y siendo un fracaso, la verdad es que hasta senti que fue una semana totalmente desperdiciada
Al final parece que para Ruby solo me puedo enfocar para hacer proyectos web (enfocandome en hacer API's) y bueno para crear GUI y software de escritorio, al final tendré que buscar otros métodos.
Bueno, si algo me sirvió es que por fin hizo que me interesara por aprender C# y de igual forma ando probando a usar ElectronJS, un framework de JavaScript para hacer de igual forma software de escritorio, pero eso es material para un próximo post, sobre todo porque apenas ando experimentando con el, junto a las bondades de React