Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/03/2008, 10:22
Sit3UserX
 
Fecha de Ingreso: marzo-2008
Mensajes: 21
Antigüedad: 17 años
Puntos: 0
Desarrollo bajo ambiente GNU/Linux: Gambas + MySQL

En la institución donde curso una carrera de tecnología en informática, muy desordenada e ineficientemente nos han guiado hacia el análisis y desarrollo de sistemas de sistemas en entornos Windows: Visual Basic 6.0 (ya se “modernizaron” un poco e introdujeron VB 2005) + Access o SQL.

Por lo tanto, “lo más común” es que para nuestro trabajo final de grado (tesis), desarrollemos un sistema basado en la plataforma y tecnologías mencionadas.

Dando un vistazo a tesis de semestres anteriores en la biblioteca de la institución, se nota la poca variedad de temas y la enorme cantidad de personas que “recaen” en lo mismo: desarrollo de un sistema de control para biblioteca, sistema para control de inventarios, sistema de facturación, etc. Para peor, muchas tesis son copias de otras anteriores, incluso con los mismos errores ortográficos, gramaticales, sintácticos, éticos y profesionales.

Los profesores son algo cerrados en su mayoría (aunque hay muy buenas excepciones), viven y mueren en Windows, Visual Basic y Access.

Bajo este contexto, me sentí profundamente desanimado cuando hace algunas semanas tenía que decidir el tema de mi tesis. Quería hacer algo diferente, innovador, en consonancia con la actualidad tecnológica, pero no veía mucho de donde escoger. Tengo un especial interés por las tecnologías dedicadas a la web y tenía firme creencia (aun la tengo), que definir un tema orientado a este ambiente, sería algo innovador dentro de la institución, pero después de encontrarme con varios comentarios como “vas a hacer páginas web? aquí no nos interesa mucho eso”, sin contar las caras arrugadas o los que se quedan como un signo de interrogación con patas cuando les hablas del tema.

Después de “patalear de rabia”, no me quedó mas alternativa que seguirles la corriente, olvidarme de innovaciones y dedicarme a hacer algo “simple” para salir del paso.

Otro asunto desagradable es que de normal, para ir apegado a las reglas y desarrollar el sistema, tenía que meterme dentro de una organización, publica o privada, estudiar una unidad funcional y determinar las posibilidades de automatización de la misma. En otras palabras “automatizar de gratis el departamento X de una organización Y”.

Para librarme de sentirme incómodo con lo anterior, decidí aplicar esto a algún lugar en el que sintiera que estaba dejando un aporte. Por ello, visité algunas escuelas públicas y en una de ellas mostraron un total interés por automatizar la biblioteca de la institución.

Teniendo el lugar y viendo las posibilidades, me dediqué a redactar el anteproyecto de tesis, pero igual seguía disgustado con el tema y las múltiples trabas de los profesores al respecto de cosas distintas.

Un fin de semana, mientras seguía dándole vueltas a otros temas, me animé a instalar la distribución UBUNTU 7.10. Ya hacía varios meses probé la versión previa y tuve oportunidad de experimentar con el sistema.

Depuse de instalar UBUNTU, comencé a darle algunos toques personales, configurar a mi gusto, buscar información sobre el sistema, en fin, el montón de cosas que sueles hacer cuando instalas un nuevo sistema y estás como “niñito con juguete nuevo”.

Por casualidad, recordé que hacía tiempo, mirando en un sitio de alternativas de software libre, me encontré con algo que llamó mi atención. Un IDE algo semejante a Visual Basic, pero adaptado para el entorno GNU/Linux. Se trata de Gambas, que emplea un dialecto de Basic y recuerda bastante la manera de programar en VB, claro, hay diferencias entre ambos IDEs.

Busqué algo de información en google y después de un rato, ya tenía instalado Gambas. Hice un par de pruebas por demás sencillas, sólo para experimentarlo.

De pronto, surgieron algunas ideas:

Cita:
¿Gambas, eh? … Interesante, se asemeja a VB, pero orientado a GNU/Linux… ¿Y que tal si el tema de mi tesis se muda a GNU/Linux?... ¿Qué tal si les demuestro en primer lugar, que Windows no es el único sistema operativo en el planeta, que GNU/Linux está consolidándose como gran alternativa (tanto así que está siendo adoptado por gran cantidad de empresas privadas y organismos públicos), que GNU/Linux es un sistema accesible al usuario, que es posible desarrollar en él cualquier aplicación requerida, que incluso existe un IDE visual el cual emplea Basic?
En fin, una tormenta de ideas. Esto fue durante un día domingo, ya tenía adelantado los 2 primeros capítulos del anteproyecto y el lunes debía entregar el borrador del capítulo 3.

Ese domingo, hice absolutamente nada del Cap. 3. El lunes por la mañana, después de levantarme y sentarme a tratar de hacer algo por el mentado capítulo, decidí que definitivamente el tema ya seleccionado no era lo que deseaba y que no lo iba a desarrollar. En su lugar, me puse a ordenar las ideas del día anterior:

Cita:
1.- ¿quieren que desarrolle un sistema X empleando VB y una base de datos relacional en Access?
OK, sencillo, pero eso también puedo hacerlo en GNU/Linux, empleando Gambas + MySQL

2.- y si me preguntan: ¿por qué si te hemos enseñado a trabajar en Windows te vas a empeñar ahora con el “pingüinito”?
GNU/Linux es un sistema operativo estable, seguro, libre (no tienes que pagar para usarlo), lo que desarrolles en él, no te va a traer problemas de licencias, como en el caso de Windows que requieres de licencia para usar VB a menos que uses la versión Express 2005 o 2008. Además, en la actualidad, dentro de nuestra nación, se está expandiendo el empleo del software libre a nivel gubernamental, ya hay incluso un organismo que creó su propia distribución basada en Debian.
Al final, de todo lo pensado, concluí en el título “Programación de una aplicación demostrativa en un entorno de desarrollo integrado y visual bajo ambiente GNU/Linux”.

El objetivo es demostrar las posibilidades de programar en GNU/Linux mediante el empleo de Gambas + MySQL.

Entregué el anteproyecto y el asesor quedó satisfecho.

Ahora, después de toda esta “increíblemente extensa” introducción, paso a plantearles el motivo que me lleva a consultar sus opiniones.

Como verán, tengo que desarrollar un pequeño sistema a modo demostrativo del dúo Gambas + MySQL.

La tesis en si misma no está centrada al desarrollo de un complejo sistema con un montón de módulos, una inmensa base de datos y cientos y cientos de líneas de código. No es la idea. Al contrario, pretendo realizar una aplicación sencilla que mediante un interfaz se conecte a una base de datos y realice algunas tareas que demuestren lo que ya les comenté.

Valga la redundancia, quiero comprometerme más en el hecho de demostrar el uso antes que en el hecho de programar un complejo sistema.

Por lo tanto, hasta ahora sólo se me han ocurrido un par de cosas:

1.- Una libreta de direcciones (ejemplo típico) con sus correspondientes posibilidades de agregar, quitar, editar y eliminar registros de la base de datos. Además incluirle un pequeño módulo para anotar “cosas por hacer” (to-do list).

2.- Un “rudimentario” sistema experto o sistema de resolución de problemas o base de conocimiento. Por ejemplo, un sistema en el que un usuario nuevo de UBUNTU, pueda realizar una búsqueda al respecto de un problema en particular, sobre configuración, personalización del SO, etc. Podría tener una interfaz de usuario y una interfaz de administrador en la que este puede insertar categorías de problemas, los temas, palabras claves asociadas y por supuesto, la respectiva solución.

Aquí es donde quiero sus opiniones:
  1. ¿Que les parecen estas dos alternativas y en todo caso, cuál de ellas me recomiendan?
  2. ¿Qué otra aplicación sencilla y demostrativa me sugerirían?

P.D.:
Disculpen lo extenso del tópico, pero sentí que era necesario comentarles las cuestiones preliminares a mi inquietud.