xojo

Real Studio, un basic nada básico, por @bloguintosh

Desarrollo multiplataforma: Mac OSX, Windows, Linux y más

Muy pocos desarrolladores saben de la existencia del que, para mi, es uno de los entornos de desarrollo multiplataforma (OS X, Windows, Linux y despliegue Web) más potente que puedas encontrar actualmente: Real Studio.

Otros muchos sí lo conocen, pero recelan del nombre de su lenguaje (Realbasic, “basic”… ya sabes) o, simplemente, no están dispuestos a pagar un precio de licencia que parte de los 299 dólares con el conjunto de características que en mi opinión son más interesantes, tales como la compilación multiplataforma y la capacidad de trabajar de forma nativa con los principales motores de bases de datos, tales como MySQL o PostgreSQL (a lo que se suma cualquier conector compatible ODBC).

 

 

 

Realbasic: No es solo para aprender, también para ganar dinero

Sin embargo, de “basic” tiene poco y en realidad se trata de un lenguaje moderno y orientado a objetos que ofrece todas las características que podríamos esperar como herencia (simple), interfaces, polimorfismo, sobrecarga, casting, etc.; combinado con un toque de lenguaje procedural en el que contamos como tipos como enumerados, capacidad para utilizar variable estáticas, constantes, e incluso definir estructuras y bloques de memoria, que nos vienen muy bien cuando deseamos acceder desde nuestros métodos Realbasic a funciones de librerías y frameworks nativos de cada uno de los sistemas operativos soportados, o bien los proporcionados por terceros. (Otras características importante de Realbasic son el tipado fuerte, obligando a definir el tipo de las variables previo a su uso; cuenta con gestión de memoria automática por referencia, delegación, capacidad de introspección de tipos en tiempo de ejecución y espacio de nombres mediante Módulos.)

 

Kemeny & Kurtz, creadores de Basic, lenguaje al que muchos debemos nuestros primeros pasos. El 1 de Mayo de 1964, se ejecutó el primer programa en Basic.

Si bien los Declare son el modo directo de ampliar el lenguaje mediante el uso de librerías comentado en el párrafo anterior, también es posible ampliar el lenguaje (o sus capacidades) mediante la creación de plug-ins propios a través del SDK proporcionado por Real Software, con la instalación de plug-ins comerciales y gratuitos desarrollados por terceros o bien incorporando las clases en Realbasic que, gratuitas y comerciales, han sido diseñadas por otros desarrolladores. (Si quieres comercializar tus clases desarrolladas en Realbasic, seguramente querrás hacerlo utilizando la capacidad de cifrado disponible en el IDE.)

Un elemento también interesante para ampliar las capacidades de los programas diseñados con Realbasic en tiempo de ejecución es lo que podríamos considerar como el equivalente a los NSBundle de Cocoa o CFBundle de Carbon (y que a su vez no son sino wrapers de las funciones dlopen y demás dl* de la API OS X de un nivel inferior.) Se trata de los RBScript; en definitiva, una implementación del lenguaje Realbasic que permite escribir y ejecutar código en las aplicaciones ya compiladas (fuente de bugs y problemas de seguridad si no se utiliza con cuidado, como en la carga de los propios NSBundle…)

Más allá del lenguaje propiamente dicho, en el IDE también encontramos editores específicos para los menús, con previsualización directa sobre cómo quedarán en cada una de las plataformas soportadas, editor de cada una de las “pantallas” o formularios que componen nuestra aplicación, y el editor de código propiamente dicho con capacidades de autocompletado, extracción de métodos, búsqueda de ayuda por contexto, ocultación de eventos/métodos no utilizados, etc. En definitiva, capacidades dirigidas a facilitar y agilizar la escritura de código.

Sobre lo anterior también hay que añadir un muy útil depurador (con capacidad de depuración remota), el editor de reportes que agradecerán aquellos que deban presentar informes basados en los datos obtenidos y/o tratados a partir de bases de datos, el perfilador que nos permitirá hallar los principales cuellos de botella en nuestros programas y la posibilidad de crear localizaciones de nuestro programa de un modo tremendamente sencillo.

El IDE de Real Studio

Pero si bien podrás (y necesitarás) escribir tus clases desde cero para tus proyectos, un buen entorno cuenta con un framework propio para acelerar la creación de aplicaciones; y en Real Studio esta también es otra de sus fortalezas. Si echas un vistazo a la Referencia del Lenguaje es casi seguro que te entrarán ganas de escribir un programa de inmediato, y de hecho sus clases y funciones simplifican en extremo muchas de las operaciones que por lo general consideramos como más complejas: desde las comunicaciones, hasta la creación de servidores, demonios o aplicaciones de Consola, interfaz y uso de bases de datos, gráficos, etc.

Diseño de interfaces en Real Studio

El entorno de desarrollo Real Studio facilita enormemente el diseño de las interfaces gráficas de usuario al estilo de Interface Builder pero muy simplificado cuando se trata de añadir el código que ha de responder por cada uno de los eventos soportados por dicho control. Por ejemplo, en el caso del evento Action que se dispara cuando el usuario hace clic sobre un botón, o el código que se ejecutará antes de cerrar una ventana, al abrirla o al cambiar de plano. (Eso sí, podría decirse que en este caso el controlador no es tan independiente de la vista; aunque por lo general ambos componentes suelen ser los menos reutilizables en el patrón MVC.)

Como se trata de un entorno de desarrollo multiplataforma, y a diferencia de lo que ocurre con otras opciones, Real Studio utiliza en cada despliegue los controles nativos de la plataforma de destino de modo que la experiencia de usuario será plena, evitando los horrores que producen algunas combinaciones de lenguajes de script y librerías gráficas.

Compilar en Real Studio

También hay que destacar el hecho de que los despliegues realizados con Real Studio serán aplicaciones compiladas para cada una de las plataformas soportadas, y no interpretadas. Esto significa que no tendrás ningún problema en publicar tus aplicaciones, por ejemplo, en la Mac App Store; además de que también serán más difíciles de modificar o “trastear” en comparación con las diseñadas mediante otros lenguajes/frameworks.

En el caso de las aplicaciones Web generadas con Real Studio también contaremos con un producto binario ejecutable, lo que significa una barrera más segura ante posibles “hackeos” y que podrás desplegar sobre servidores Apache o IIS, ya sea como aplicaciones servidor autónomas con URL del estilo http://www.miservidor.com:5360, o bien como aplicaciones CGI en las que se utilicen URL del estilo http://www.miservidor.com/cgi-bin/myapplication/myapplication.cgi

Real Studio: Una herramienta completa

No quiero decir que Real Studio sea la mejor opción para todo tipo de proyectos, tal y como ocurre con cualquier otro lenguaje; pero lo cierto es que podrás desempeñar sin problema (y más rápido) la mayoría de ellos.

Personalmente, cada vez que decido comenzar un nuevo proyecto termino abriendo el IDE de Real Studio. Sé que el tiempo total desde la concepción inicial hasta el despliegue será inferior, y eso significa un mayor retorno de la inversión. Además, si lo deseo, sé que la posible base de usuarios no estará limitada a la de OS X, sino que con un mínimo esfuerzo también podré sacar el producto para Windows.

En definitiva, Real Studio no se trata de una herramienta de desarrollo trivial o solo para quien quiere aprender a programar; sino que supone una opción muy válida para la creación y despliegue de aplicaciones comerciales o que deben funcionar con la máxima estabilidad y fiabilidad en empresas.

Personalmente, conozco muchas aplicaciones tremendamente exitosas que se están utilizando actualmente tanto en OS X como en Windows, tanto en sus vertientes de “consumo” como en grandes empresas (alguna de ellas se encarga de guardar tu dinero ;-)), otras se ocupan de tu ocio, y de agencias gubernamentales de las de siete llaves y siete candados en diferentes países. No creo que, especialmente estas últimas, confíen sus desarrollos a herramientas de desarrollo “poco serias” o “basicas”.

 

El autor, Javier Rodríguez (@Bloguintosh)

Javier Rodriguez, más conocido como @Bloguintosh, es co-fundador de Macsoluciones.com, experto en productos Apple y desarrollador OS X, iOS y Windows.

Acerca de Javier Rodríguez

iOS, OS X Dev. Macsoluciones co-founder and Writer. Xojo evangelist. Proud daddy in constant learning. I'm (sometimes) a teacher. Trying to live for real.

Share this: