miércoles, 3 de octubre de 2007

GeneXus for dummies

Hace algún tiempo estaba junto a un gran amigo haciendo un asado en el fondo de casa. Solemos reunirnos regularmente junto con su mujer y su hijo que se lleva muy bien con mi niña.

Entre papitas, maníes y whisky la charla derivó al trabajo y en determinado momento hizo la pregunta que seguramente muchos de los que lean este post alguna vez escuchó por parte de un outsider … ¿Pero que es lo que hace a GeneXus algo único?

Si alguno se enfrentó a esa pregunta o alguna similar estará de acuerdo que no es algo fácil de explicar, por lo cual enseguida intenté pensar en alguna analogía que me permitiera trasmitir las bases de GeneXus a una persona que sabe poco y nada de computación. Esto es más o menos lo que me salió:

Los programadores para “escribir” las aplicaciones que usas en tu maquina utilizan lo que llamamos un lenguaje de programación. A los lenguajes de programación los podes ver como idiomas, por ejemplo chino, japonés, ingles, francés, etc. Digamos que para aprender a programar tienes que aprender un idioma en particular y aprender a usar las reglas sintácticas y semánticas de ese idioma.

En un determinado momento hay algunos idiomas que se puede decir que son los que están de moda y son los más usados por los programadores; pongamos por ejemplo el inglés y el chino. El problema es que cada cierto tiempo esos idiomas se vuelven obsoletos y los programadores necesitan empezar a utilizar otros idiomas para poder escribir sus aplicaciones, por ejemplo japonés y francés. Esto trae muchos problemas claros a los programadores, pero los más importantes son:

· Se necesita aprender los nuevos idiomas.
· Se necesita reescribir toda la aplicación del chino al japonés por ejemplo.

La idea es que Genexus propone otro idioma al cual podríamos llamar esperanto. Internamente además GeneXus tiene un traductor que permite traducir del esperanto a los leguajes más usado en el momento, por ejemplo inglés y chino. A su vez GeneXus garantiza a sus usuarios que a medida que vayan saliendo nuevos idiomas realizará nuevos traductores del esperanto a esos nuevos idiomas.

Con esto GeneXus resuelve los problemas que había mencionado anteriormente:

· Solo se necesita saber un idioma… el esperanto
· No se necesita reescribir toda la aplicación cuando se quiera tener el programa en uno de los nuevos idiomas.

Adicionalmente el esperanto es un idioma mucho mas fácil de aprender y en el cual hay que escribir muchas menos palabras para expresar una idea.
Por ejemplo para “describir” un automovil en un idioma al cual podríamos llamar español hay que escribir algo así :

· Un auto es un vehículo que se impulsa mediante un motor que usa combustible. Tiene una caja de cambios, un caño de escape, frenos, embrague, volante, velocímetro, cuenta kilómetros, etc….

En esperanto (el idioma de GeneXus) esto lo podríamos describir como:

· Un auto es un vehículo para transportar personas de un lugar a otro.

Esto luego por medio del traductor GeneXus al español se traduce a lo escrito en primer lugar.

Hasta acá notaba que mi amigo escuchaba atentamente, pero en realidad seguramente estaba mas preocupado en que no se quemaran los chorizos y estaría pensando para que caramelos habré hecho esa maldita pregunta… Yo mientras tanto pensaba que más o menos había explicado la multiplataformidad y facilidad de programación de GeneXus… me falta explicar las reorganizaciones y estoy cumplido. …
Pensé, pensé, pero no se me ocurría ninguna analogía para explicar las reorganizaciones sin confundir a mi interlocutor y teniendo en cuenta que ya hace un rato que estaba hablando y si lo seguía haciendo iba a dejar todo el asado quemado la deje por ahí.

Pregunte entonces… entendiste mas o menos?Si, si dice mi amigo…. Los chorizos ya están prontos no?... dijo mi amigo como para cambiar de tema.

Pa… este loco no entendió nada, pensaba para mí. Fue ahí cuando me dice… Che, lo que seria una pegada seria poder hacer un traductor de alguno de los idiomas de moda a esperanto no? así podes hacer que esa gente que no usaba GeneXus pueda pasar sus aplicaciones a lo nuevos idiomas y ya quedan enganchados con GeneXus.

Sin lugar a dudas mi amigo es una persona muy inteligente! :)