|
|
Este documento está disponible en los siguientes idiomas: English Castellano ChineseGB Deutsch Francais Nederlands Turkce |
por Georges Tarbouriech <georges.t(at)linuxfocus.org> Sobre el autor: Georges es un viejo usuario UNIX. El adora GNUstep y las herramientas que esta gran infraestructura proporciona. Taducido al español por: Leo Trujillo (homepage) Contenidos:
|
Gorm y ProjectCenter, las herramientas RAD de GNUstepResumen:
RAD significa Desarrollo Rápido de Aplicaciones (Rapid Application Development). A finales de los 80's, cuando NeXTstep fue liberado, venia con una herramienta increible, llamada InterfaceBuilder. Usada en conjunto con otra herramienta, llamada ProjectBuilder, permitían construir aplicaciones gráficas en un instante. GNUstep ofrece una versión Libre de estas herramientas, llamadas Gorm.app y ProjectCenter.app. |
Desde la prehistoria de las computadoras, el desarrollo de software ha tenido un gran cambio.
Las computadora eran bastantes grandes en tamaño comparadas con su bajo poder.
Eran demasiado caras, no habia demasiadas y los desarrolladores no tenian la capacidad de usarlas tan frecuentemente
como ellos desearían, ya que tenian que compartirlas con otras personas.
Entonces, los investigadores trataron de encontrar una forma de hacer que las computadoras ejecutaran más de una
tarea a la vez para mejorar la eficiencia. Obviamente, tuvieron que diseñar y crear
lenguajes de programación desde cero, tomando en cuenta los pobres recursos de las máquinas disponibles.
De este modo, durante los 60's nuevos lenguajes de programación aparecieron: LISP,
FORTRAN, BASIC, Algol68, BCPL, etc. Luego vino el lenguaje B derivado de BCPL que mencionamos más arriba,
el cual muy pronto dió origen al lenguaje C.
Este último cambió el mundo de la programación.
Los Lenguajes Orientados a Objetos (SmallTalk, Objective C, C++, etc) aparecieron más tarde, en la "Era
Gráfica".
En los 80's algunas máquinas proporcionaron Sistemas Operativos gráficos (Apple Macintosh, Commodore
Amiga, Atari ST, etc) y el X Window System estaba ya en funcionamiento. Al mismo tiempo,
una compañía estaba trabajando en una GUI (Interface Gráfica de Usuario) para el OS2 de IBM, llamada Presentation Manager.
Antes de terminar este trabajo, esta compañía liberó su "propia" GUI para el DOS, llamado...
Windos. Las dos primeras versiones fueron apenas usables, pero... con la tercera dió inicio todo.
¡ La MvAI (Microsoft very Artificial Intelligence) había nacido !
Esto es, cada usuario vino a convertirse en un científico de la computación. Ya que nosotros hemos estado
escribiendo "grandiosas" aplicaciones usando Excel o Word y Visual Basic:-(
¡ No se preocupe !
Afortunadamente, mucho antes que llegaramos a la situación mencionada, NeXTstep habia nacido
y con él, llegó Interface Buider. Esta herramienta le permite crear una GUI para
su aplicación en un breve lapso de tiempo y de manera muy fácil. De allí, esta clase
de herramientas se ha extendido. Entre otros,
podemos mencionar Omnis, 4D, Delphi, Kylix, etc. Algunas de ellas son multiplataforma
mientras que la vasta mayoría están dedicadas a Windos. También mencionaremos que existen
herramientas libres usando semejante filosofía, Gtk (Gimp Tool Kit) por ejemplo.
Los Unixes propietarios también proporcionan esta clase de herramientas.
La más importante característica de dichas herramientas es que usted no tiene que escribir código
para las 200 ventanas de su aplicación, sino solo administrar los datos.
Que le gusten o no esta clase de herramientas, no es el punto. El tiempo de desarrollo es corto:
eso es un echo (de allí el nombre, "Desarrollo Rápido de Aplicaciones" - ["Rapid Application Development"]).
GNUstep nos proporciona herramientas RAD libres.
Estas son llamadas Gorm y ProjectCenter. Naturalmente, estas herramientas son muy "jóvenes"
pero funcionan. Pasemos a ver cada una de ellas.
Para ser capaz de usar tanto Gorm como ProjectCenter, necesita instalar GNUstep.
El cómo hacerlo esta lejos del alcance de este artículo. Encontrará todo lo que necesita
en el sitio web de GNUstep. Este incluye
código fuente, HOWTOs, tutoriales, etc.
También puede revisar estos artículos: GNUstep, el OpenStep open source y GNUMail.app, la evidencia de la portabilidad.
La prueba del presente artículo ha sido realizada bajo FreeBSD 4.7 con Window
Maker 0.80.1, usando gnustep-make-1.5.0, gnustep-base-1.5.0, gnustep-gui-0.8.2 y
gnustep-back-0.8.2. Estos últimos son de la más reciente versión no estable de GNUstep.
Pueden, si lo desean, usar las versiones estables. Por último, pero no menos importante,
se uso el compilador gcc 3.0.4.
Gorm viene de Graphic Object Relationship Modeler (o tal vez de GNUstep Object
Relationship Modeler, como se indica en el archivo README). Este es un clon de
NeXTstep Interface Builder, mencionado más arriba (o lo que hoy es MacOS X).
Gorm es el trabajo de Richard Frith-Macdonald que ha arrancado el proyecto.
Hoy Gregory Casamento lo mantiene y hace la mayor parte del trabajo con
Pierre-Yves Rivaille. La presente versión es la 0.1.9.
Los más recientes CVS snapshot (que contiene periodicamente cambios) están disponibles desde http://savannah.gnu.org/projects/gnustep.
Puede descargar la más reciente versión estable desde el sitio web de GNUstep.
La filosofía detrás de Gorm (y de Interface Builder) es proporcionar al usuario objetos que se encuentran en
paletas y arrastrar estos objetos en ventanas vacias para diseñar los componentes gráficos de su aplicación.
Los objetos pueden ser botones, cuadros de texto, cuadros de verificación, paneles, etc. Esto es, todo
lo que usted puede agregar a una ventana para hacerla amigable al usuario. A continuación, puede modificarlos
usando los inspectors. Desde los inspectors, puede cambiar los atributos, definir
conexiones, tamaño, ayuda y manipulación de clases para los objetos seleccionados. Después
creando una clase, usted puede agregar salidas y acciones a los objectos.
Luego que inicializa la clase, el cual crea un nuevo objeto (la instancia) en la ventana principal de Gorm,
conecta las salidas y acciones a los componentes correspondientes. Usted solo arrastra el mouse desde la instancia
al objeto seleccionado para conectar las salidas y desde el objeto a la instancia para conectar las acciones.
Por último, crea el esqueleto de la clase de los archivos fuente, y habrá terminado.
Más sobre esto más tarde.
ProjectCenter, como su nombre lo indica, es el "corazón" del proyecto. Es un clon de Project Builder
que se encuentra bajo NeXTstep y Mac OS X.
ProjectCenter es el trabajo de Philippe C.D.Robert y la presente versión es la
0.3.0. Al igual que Gorm, puede descargarla desde el sitio web de GNUstep dirigiéndose a la sección Developer
apps. Naturalmente, puede obtener una snapshot de CVS: para este artículo usamos la versión 0.3.1.
Desde ProjectCenter puede crear un proyecto, su interface (usando Gorm), escribir su código fuente;
puede construir este proyecto y ejecutarlo (la depuración aún no esta disponible). En breve, puede
administrar todos los recursos requeridos por el proyecto: código fuente, documentación,
librerías, subproyectos, interfaces, etc.
Cuando usted crea un nuevo proyecto, puede elegir su tipo. Puede seleccionar
entre una aplicación, bundle, herramienta, librería y una aplicación Gorm.
Entre otras cosas, ProjectCenter le proporciona un editor con el cual será capaz de completar el código del esqueleto Gorm.
¿ Cómo se hace que Gorm y ProjectCenter trabajen juntos ? Muy bien, ¡ Gracias !
Hablando ya seriamente, usaremos dos ejemplos para ilustrarlo.
Este artículo NO es un Tutorial. La idea es mostrar lo fácil que es usar estas herramientas
mientras insistimos en el echo de que usted será capaz de usar el mismo codigo tanto para GNUstep
(esto es, para muchas plataformas Unix... y, si le gustan los "conflictos" también bajo Windos)
y MacOS X. La única cosa que tiene que hacer es diseñar la interface en cada plataforma,
dado que los archivos nib (InterfaceBuilder o Gorm) no son portables (al menos por ahora).
El artículo mencionado más arriba sobre GNUMail.app mostraba la portabilidad desde un punto de vista del usuario.
Este artículo se enfocará desde el punto de vista del desarrollador, aún manteniendo la portabilidad en mente.
Esto es, en GNUMail.app usamos el trabajo de Ludovic y amigos
y aquí crearemos una GUI de aplicación tanto para GNUstep como para MacOS X.
Existen muchos tutoriales disponibles, ya sea para MacOS X o GNUstep. Puede investigar más
sobre GNUstep desde el sitio web de GNUstep o bien desde http://www.gnustep.net,
aunque aquí mencionaremos algunos de ellos.
- Una aplicación usando Gorm y
ProjectCenter por Pierre-Yves Rivaille.
- La página de tutoriales de Nicola Pero
- Un viejo tutorial de cómo crear un HTMLEditor: http://stepwise.com/Articles/Technical/HTMLEditor/
Para aprender más, puede revisar el codigo fuente, los archivos nib, etc, de las aplicaciones existentes de
GNUstep (Gorm, ProjectCenter, GNUMail, GWorkspace, etc) y obviamente, de los ejemplos gnustep.
Entre los numerosos tutoriales de MacOS X para InterfaceBuilder disponibles en la red,
usaremos el siguiente como un primer modelo:
http://www.macdevcenter.com/pub/a/mac/2001/05/18/cocoa.html.
El autor Mike Beam, escribió
muchos tutoriales más sofisticados disponibles desde http://www.macdevcenter.com/pub/ct/37.
¿ Por qué usaremos este ? Porque le proporciona el funcionamiento de un editor de texto sin escribir una sola
línea de código. Esto muestra el poder de estas herramientas de desarrollo,
ya sea que esté trabajando bajo MacOS X o bajo GNUstep.
Usando ProjectCenter.app y Gorm.app bajo GNUstep crearemos un editor de texto muy simple
capáz de cortar, copiar, y pegar. Obviamente, no será capaz de guardar su trabajo:
recuerde, nosotros no escribimos una sola línea de código. Usando ProjectBuilder y InterfaceBuilder bajo
MacOS X haremos exactamente lo mismo. Queda claro que, no hay mucho que mejorar a este editor
y se dejará esto como un ejercicio para el lector. Una vez más, ¡ este artículo no es un tutorial !
Aquí vamos.
Abrir ProjectCenter.app y crear un nuevo proyecto llamado Editor. Seleccione un proyecto de Aplicación Gorm
en la parte inferior antes de guardar su nombre.
Esto le proporcionará una partida de interfaces en la columna izquierda de
ProjectCenter.
Haciendo clic en las Interfaces mostrará Editor.gorm.
Hacer doble clic en Editor.gorm abre Gorm.app. Seleccione la ventana por defecto
(MyWindow) y usando la herramienta de inspector cambie el nombre a Editor en los Atributos.
Desde la paleta, arrastre un TextView a la ventana de Editor. El TextView es el mayor objeto
que se encuentra en la paleta seleccionada, usando el ícono más a la derecha en lo alto de la ventana
de Paletas (Palettes). Redimencione este objeto para hacer que llene la ventana, y habrá terminado.
De nuevo, usando el inspector GormInternalViewEditor (mientras el TextView está seleccionado), elija Size
y cambie los valores para hacer que coincidan con los valores de tamaño de la ventana Editor. Estos
últimos son obtenidos de la misma forma, es decir, seleccionando la ventana y revisando el tamaño
en el inspector GormNSWindow. Si no cambia los valores de X y de Y, por ejemplo,
no será capáz de usar el ancho total del editor, ya sea que redimencione la ventana o no.
Guarde todo desde el menú Document de Gorm y salga para regresar a ProjectCenter.
Seleccione el ícono Build y de clic en el nuevo ícono en la segunda mitad horizontal
de la ventana. Todo debería ir bien si definió correctamente las preferencias de su compilador,
depurador, etc. Por ejemplo, usando FreeBSD, debe cambiar de make a gmake (incluyendo la ruta)
dando clic en el ícono Settings (Configuración) de
ProjectCenter. Revise también las rutas del menú de Preferences (Preferencias) en ProjectCenter.
Si la construcción (built) ha sido todo un éxito (¡ Que así debería ser !), haga los mismo con Run y
verá entonces la aplicación Editor. Juegue un poco con él, escriba algo, corte,
pegue, etc. Naturalmente, puede reiniciarlo más tarde usando el comando openapp.
¿ Cuánto toma hacer todo esto ? Bueno, yo diría que unos pocos minutos.
No hay mucho que decir dado que se hará lo mismo que lo mostrado más arriba. Así es como se ve
mientras se diseña la GUI:
Ahora seleccionaremos otro ejemplo de Mike Beam. En esta ocasión es una aplicación completa en
funcionamiento, capaz de administrar datos: un libro de direcciones. Es recomendado leer el tutorial de Mike
acerca del libro de direcciones (asi como muchos otros) para entender como es que la "cosa" trabaja.
También revise el listado del tutorial dado que Mike proporciona diferentes pasos en el proceso de
desarrollo para la misma aplicación que permitirán mejorarla.
Volveremos a crear y ejecutar la aplicación tanto para GNUstep como MacOS X.
Así como lo hizo para el Editor simple, inicie ProjectCenter.app. Seleccione una aplicación Gorm
y llámelo AddressBook. Desde ProjectCenter lance Gorm
dando doble clic en Interfaces -> AddressBook.gorm. Arrastre un
TableView desde la paleta a la ventana por defecto. En otras palabras, siga el tutorial de Mike
como lo haría estando bajo MacOS X. Tendrá que adaptar algunas cosas dado que estas funcionan diferente
en Gorm y en InterfaceBuilder.
Por ejemplo, el número de columnas
en la TableView no puede ser definido desde los atributos del inspector en
Gorm. Mantengamos las cosas simples, solo copie una columna y a continuación obtendrá
el número requerido (4 en nuestro caso). Debería obtener algo como esto:
Mike Beam hizo el trabajo completo: ¿ Qué más podría yo agregar ?
Obviamente, las herramientas de desarrollo GNUstep no pueden ir más allá que las de Apple.
Apple y NeXT representan 15 años de experiencias con cientos de desarrolladores.
GNUstep es el trabajo (sin renumeración) de unos cuantos individuos que tienen que hacer algo para vivir.
Por ende, no será soprendente encontrar, por ejemplo, muchas más clases disponibles en
InterfaceBuilder que en Gorm. Recuerde, Gorm esta en su versión
0.1.9 (o 0.2.0).
Además, hicimos las pruebas de la forma "dura". Esto es, nosotros "portamos" desde OS X hacia
GNUstep. La otra forma debería de ser mucho más fácil poque que como se mencionó más arriba
existen diferencias entre las herramientas.
Por ejemplo, portar aplicaciones de desarrollo bajo MacOS X 10.2 debería ser mucho más difícil
dado que las nuevas herramientas de desarrollo de Apple tiene muchas mejoras. Como ya lo mencionamos,
existen muchas clases nuevas disponibles y mucho más elaboradas.
Sin embargo, las herramientas cuentan con la misma filosofía ya sea que funcionen bajo GNUstep
o MacOS X... y GNUstep mejora cada día. Una cosa que se ve muy agradable para mí:
la gente de GNUstep realmente trabaja en conjunto. Ellos se ayudan entre sí cuando proyectos individuales
están comprometidos y también contribuyen en mejorar el núcleo de GNUstep.
Esta es la manera de trabajar del Software Libre que me gusta. Felicitaciones por este comportamiento
a Mr.Fedor y amigos.
La meta de este artículo era mostrar el poder de las herramientas "RAD" de GNUstep,
Gorm.app y ProjectCenter.app. A pesar de su "juventud" estos pueden ayudarle a desarrollar
aplicaciones agradables de una manera muy sencilla.
Además, estas herramientas proveen una grata forma de trabajo y por el momento muy eficiente.
Objective C es un lenguaje muy compacto y, en mi opinión, mucho más fácil de aprender
que C++ para aquellos que tengan conocimientos de C (Lo sé, ¡ Ya lo he dicho !).
Esto permite diseñar aplicaciones con buen aspecto (bueno, esto es cuestión de gustos,
pero a mi me gusta este aspecto y comportamiento)
mientras las mantiene en un tamaño realmente reducido.
Debo admitir que nunca me he recuperado del shock que recibí
cuando me encontré por primera vez con la máquina NeXT. El echo de que Apple
liberara una moderna versión de NeXTstep me complació. Esto es también porque yo soy muy
aficionado a proyectos tales como GNUstep o Window Maker. Sin embargo,
amo el software libre pero no soy un "fundamentalista" y por ende,
no estoy en contra del software propietario (bueno,
tal vez un poco en contra de un editor específico... pero, ¡ sólo un poco !).
GNUstep puede beneficiarse de Apple... pero Apple puede beneficiarse de GNUstep también.
GNUstep no es un competidor de Apple, es software libre. Hasta donde yo sé,
el software libre es ampliamente usado en OS X. Esto indica que brindar aún más software libre
a Apple no puede ser una cosa mala. Lo que Ludovic y amigos hicieron con
GNUMail.app es un buen ejemplo de lo que podría suceder.
"Yo tuve un sueño"... Apple estaba proporcionando muchas de sus herramientas de desarrollo con código fuente
a GNUstep. Los desarrolladores de GNUstep y Apple
estaban trabajando juntos para brindar grandiosas aplicaciones a los usuarios de Unix.
Y lentamente, la gente estaba comprendiendo que ellos podrían vivir sin Windos...
Desafortunadamente, era solo un sueño ;-)
De cualquier manera, si usted no conoce GNUstep y sus aplicaciones, siéntase libre de conseguirlos y probarlos.
Recuerde que, GNUstep es una infraestuctura, y herramientas tales como Gorm y ProjectCenter
le proporcionan todo para crear, para inventar. En otras palabras, con un poco de imaginación,
puede desarrollar "productos" muy diferentes que se pueden ver hoy en día : ¡ como clones de aplicaciones Windos !
¡ Vivimos una época maravillosa !
A la gente de GNUstep: A.Fedor, N.Pero, G.Casamento, P.Y.Rivaille, N.Roard, L.Marcotte,
R.Frith-Macdonald, P. C.D.Robert, E.Sersale, A.Froloff, F.Kiefer, M.Viviani,
M.Guesdon y todos aquellos que pudiese olvidar
por el gran trabajo tanto para el entorno de trabajo o las aplicaciones.
A la gente de Window Maker: A.Kojima, D.Pascu y amigos por brindarnos una interface libre de NeXTstep
para X.
A J.M.Hullot y B.Serlet por inventar InterfaceBuilder.
A "Steve Jobs INC." por brindarnos NeXT, NeXTstep y MacOS X.
A toda la gente no mencionada aquí que ha contribuido para hacernos una vida profesional
mucho menos triste.
|
Contactar con el equipo de LinuFocus
© Georges Tarbouriech , FDL LinuxFocus.org |
Información sobre la traducción:
|
2002-12-19, generated by lfparser version 2.34