Hogar Mapa Indice Busqueda Noticias Arca Enlaces Sobre LF

Este documento está disponible en los siguientes idiomas: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

[Photo of the Author]
por Georges Tarbouriech

Sobre el autor:

Georges es un usuario viejo de Unix (comercial o libre). Siendo un "enamorado" de NeXT, le gustan mucho los proyectos libres basados en la filosofía de este estupendo SO.

Contenidos:

GNUstep, el OpenStep open source

Resumen:

Hace más de 10 años, aparecía una máquina increíble con un aún más increíble SO. Se llamaba NeXT y NeXTStep era el apellido del SO. Nunca habíamos visto tal cosa antes: era una máquina muy bonita, con un aspecto que quitaba el hipo. Al principio, el SO se basaba en BSD 4.2, y 4.3 un poco más tarde, con un kernel mach muy compacto. Con él, apareció la primera herramienta de desarrollo gráfica orientada a objetos: Interface Builder (gracias a Jean-Marie Hullot y Bertrand Serlet por esta increíble herramienta). Comercialmente, fue un fracaso, y NeXT decidió portar el entorno a diferentes SO, como Sun, por ejemplo. Este API se llamaba OpenStep, y a partir de ahí GNU empezó un proyecto muy importante, GNUstep http://www.gnustep.org, para proporcionar un OpenStep libre. Este artículo trata de presentar este grán trabajo, aunque se encuentra muy lejos de su fin.



 

Para empezar con...

...GNUstep, necesitan otro gran producto libre: Window Maker. Es un gestor de ventanas a la NeXT. Si todavía no lo conocen, pueden dar un vistazo aquí. En el momento de escribir la última versión es 0.64.0. Este gestor de ventanas forma parte del proyecto GNUstep y pueden obtenerlo desde http://www.windowmaker.org. Podemos añadir que Window Maker funciona en casi todas plataformas Unix, sean comerciales o libres. En cambio, GNUstep es un poco diferente. Funcionará en casi todos los sabores de Linux, NetBSD, FreeBSD, OpenBSD, siendo más o menos estable según el SO. Por lo parte de los Unixes comerciales, funcionará en Solaris, Irix... aquí también con más o menos estabilidad. Una vez que su pantalla parece a la de NeXTStep, pueden ir al site de GNUstep para descargar lo que necesitan.

Y qué necesitan? Evidentemente, un compilador objective C (recuerden, es un entorno orientado a objetos). gcc 2.8 y superiores valen. La librería libobjc está recomendada. Aparte de las herramientas necesarias para compilar, necesitan el "corazón" de GNUstep: es decir, por lo menos, la librería de base (base library), la librería del gui, el "backend" X11 (xgps o xdps), etc. Pueden descargar muchas cosas segun su gusto: hay una lista para elegir. Por ejemplo, pueden bajar Gorm, lo que es la implementación de Interface Builder (sólo CVS), los ejemplos o las aplicaciones de los usuarios.

 

Para instalar...

¡Sólo tienen que compilar lo que han bajado! En serio, tendrían que leer los README y los INSTALL. También tienen un GNUstep HOWTO, que recomendamos leer. Después de compilar, la mayoría del trabajo consiste en fijar variables de entorno y programas que arrancar al lanzar el sistema (el motor por ejemplo, llamado gdnc). Como ya hemos mencionado, pueden usar dos "backends" diferentes: el X y el dps, siendo este último la implementación libre de Display PostScript. Este dará mejor resultado pero es mucho menos adelantado que el X.

Según el SO, definan los caminos adecuados en las variables de entorno. Por lo menos, tienen que definir la variable GNUSTEP_SYSTEM_ROOT y el camino hacia los diferentes scripts o programas. Cuando hayan terminado con esta parte, pueden "jugar" con GNUstep.

 

Ejemplos

Hay muchos ejemplos disponibles en el site de GNUstep, sea en la parte "apps" sea en la parte "download". Proporcionan la mejor forma de familiarizarse con GNUstep si no conocen NeXTStep ni OpenStep. La mayoría son ejemplos que funcionan y permiten entender la filosofía detrás del entorno. Mirar el código enseñará mucho sobre Objective C. Para alguién que conozca al C, Objective C es muy fácil de aprender, y en cualquier caso, es mucho más fácil que C++ (bueno, sólo es mi opinion). Entre estos ejemplos, un muy bonito es el "font panel". Realmente se parece al original. A propósito, a lo largo de este artículo, enseñaremos fotos de pantallas de GNUstep y NeXTStep, así podrán comparar. Aquí tienen el primer ejemplo: el "font panel" de GNUstep y el de NeXTStep.
fontp.jpg fontpn.jpg

Otro ejemplo interesante es Edit app. No funciona completamente pero es un trabajo muy bueno y muy cercano al original. Uno de los ejemplos más didáctico se llama GSTest. Arrancar GSTest permite entender todo lo relativo a ventanas, botones, scrollers... ¡Es un todo en uno! Mirar el código fuente es mejor que un libro. Aunque ésto no significa que los otros ejemplos no tengan interés: ¡lo tienen! El autor de muchas de las aplicaciones, Nicola Pero, hizo un trabajo estupendo. Otra gran aplicación del mismo Nicola, se llama Finger. Es un interfaz gráfico para finger, ping, traceroute. Aquí lo tienen:
finger.jpg
Podríamos mencionar muchas otras aplicaciones pero dejamos el placer de descubrirlas al lector.

 

Los Pesos Pesados

Una de las revoluciones de NeXTStep era Interface Builder. Como dice su apellido, era una herramienta de creación de interfaz para una aplicación. ¡Pero qué herramienta! Recuerden que esto pasaba a finales de los años 80. ¡Increíble!

¿Por qué fue una revolución? Por que podían construir una ventana con todo lo que necesita en menos de 5 minutos. Es decir, una ventana con su menú, sus botones, sus sliders, etc, se creaba moviendo objetos desde una paleta hacia la ventana. Después se podían unir éstos objetos a otras ventanas, menús, o lo que fuera. Esto generaba un código mínimo que tenían que completar. Y estos objetos podían ser utilizados de nuevo en otra parte. ¡Increíble a esta época!

Desde entonces, los mayores editores de software han tratado de hacer lo mismo, aunque a mi humilde parecer, nunca han conseguido alcanzar al original. Y ahora, podemos tener tal herramienta gratis. Se llama Gorm (GNUstep Graphics Object Relationship Modeller) y el autor se llama Richard Frith-Macdonald. Gorm sólo está disponible en CVS desde el site GNUstep. La versión sólo es 0.1 en el momento de escribir este artículo, pero funciona aunque le falten algunas características. Para descubrir la filosofía detrás de Interface Builder, Gorm es LA herramienta.

Aquí tienen un ejemplo muy sencillo (y estúpido), otra vez con el equivalente bajo NeXTStep.
gorm.jpg ib.jpg

Como hemos dicho antes, esta herramienta y su modelo Interface Builder se usan para crear la parte gráfica de una aplicación. Claro, no basta para que dicha aplicación funcione. Tendrán que completar el código generado y mantener las diferentes fuentes como lo harían en cualquier proyecto. Y al final, tendrán que compilar todo el trabajo Es donde llega la segunda herramienta "pesada", llamada Project Builder bajo NeXTStep y ProjectCenter bajo GNUstep. ProjectCenter es la obra de Philippe C. D. Robert y la versión es 0.2. Otra vez, esta herramienta funciona a pesar de su numero de versión. Pueden mantener un proyecto como lo harían bajo NeXTStep. Claro, queda mucho que hacer en el también, pero vale la pena bajarlo.

Aquí pueden ver a qué parece comparado con su "padre".
prcent.jpg pb.jpg

Usar estas dos herramientas es bastante fácil si conocen NeXTStep u OpenStep. Si nunca los han usado, tendrán que entender la idea detrás. Hay mucha documentación disponible y es recomendado (para no decir obligatorio) leerla. Pero una vez entendido como funcionan... ¡No pueden vivir sin ellas! Han sido avisados.

Tenemos que mencionar otros grandes trabajos como GWorkspace o GSBench. El GNU 3DKit es otra gran obra. Es una API creada para funcionar encima de OpenGL. La encontrarán en http://www.nice.ch/~phip/softcorner.html con muchas otras aplicaciones.

 

Utilidades

Las herramientas que vamos a mencionar aquí fueron creadas para portar aplicaciones desde OpenStep hacia GNUstep. Pero, de hecho, van mucho más lejos, puesto que permiten también portar aplicaciones Mac OS X. Ese es un punto importante: más sobre el asunto un poco más tarde.

Primero, hay una herramienta llamada OpenStep2GNUConverter, permitiendo convertir un PBProject (proyecto de Project Builder) en un Makefile GNUstep. Es decir, podrán compilar un proyecto OpenStep en su máquina Linux (por ejemplo). Para compilar este proyecto, necesitarán otra herramienta llamada nfmake. Una herramienta llamada nib2gmodel permite convertir un fichero nib (producido con Interface Builder) en su equivalente bajo GNUstep, llamado gmodel. Por último, pueden obtener gstep-db, lo que es una librería de base de datos y aún más, un interfaz Oracle. NeXTStep y OpenStep proveían interfaces para Sybase y Oracle, para consultar bases de datos de éstos editores. GNUstep ofrece lo mismo gratis (bajo NeXTStep u OpenStep, necesitaban el kit de desarrollo que era muy caro, pero recibían Enterprise Object Foundation gratis: toneladas de ejemplos). Claro, todas estas herramientas pueden ser bajadas desde el site GNUstep.

Desafortunadamente no pude probar todo eso, puesto que "sólo" tengo una vieja NeXTstation y estoy esperando (con impaciencia) la llegada de Mac OS X al trabajo. Pero he tenido confianza en GNU desde hace unos 15 años y no voy a cambiar hoy ! Quiero decir: seguro que todo eso funciona. De todo modos, en unos meses probaré todo eso...

 

Documentación

Si les interesa desarrollar bajo este gran entorno, tienen mucha documentación disponible, como ya hemos dicho. La facilidad de uso no es leyenda, pero aún así necesitan unos conocimientos sobre su funcionamiento. En el site GNUstep, encontrarán muchos enlaces interesantes. Sin embargo, algunos de ellos merecen una atención particular.

Si van a http://www.gnustep.org/resources/documentation.html encontrarán la documentación general de GNUstep, es decir el libro del Objective C, instrucciones de instalación, FAQ... También hay una documentación sobre la librería GNUstep. Aún más, encontrarán tutoriales. El de Nicola es muy recomendable. Y pueden visitar http://www.gnustep.it/nicola/Tutorials Otra parte para visitar es la de los recursos: hay toneladas de enlaces hacia artículos, sites de desarrollo... http://www.gnustep.net/ también es de gran interés. Es decir, pueden encontrar todo lo que necesitan para empezar con GNUstep.

 

Y NeXT (después) ?

La extraña historia de NeXT sigue, esta vez esperamos con éxito, bajo el apellido Mac OS X. ¡Que buena cosa! ¿Qué piensan de un SO con más de 10 años empezando una nueva carrera? Era muy adelantado, ¿no creen?

Pero ¿qué significa para nosotros? Bueno, probablemente muchas aplicaciones muy buenas, puesto que las que existen pueden ser facilmente recompiladas. Y no olvidemos, que tanto Mac OS X como NeXTStep son sistemas Unix. Esto quiere decir toneladas de aplicaciones potencialmente disponibles, también para Unixes libres. En consecuencia, GNUstep es el entorno que necesitan... Podríamos decir que es un sueño: por fin, podremos elegir el software que queremos para el uso que necesitamos. Desafortunadamente, tenemos sol y sombra.

Sol
Un ejemplo: hoy, según el SO utilizado, no tienen mucha alternativa por lo que concierne los navegadores web. Será Netscape (y sus derivados) o Exploder, es decir dos fábricas con muchos bugs, agujeros de seguridad, etc. Mac OS X propone OmniWeb: es un muy buen navegador. Usarlo bajo NeXTStep es un placer, incluso siendo una versión bastante antigua. Es el tipo de navegador en el cual pueden soñar hoy, cuando trabajan bajo Unix o las cosas de M$. La única manera de encontrar navegadores "finos" viene de lo que llamamos SO alternativos: tales como NetPositive bajo BeOS o AWeb, por ejemplo, bajo AmigaOS. Claro, Opera parece atractivo, pero hasta ahora no me ha convencido (pero sólo es mi opinión). Lo que quiero decir, es que Mac OS X y GNUstep, van a proveer "nuevas" herramientas, a menudo mejores que las que utilizamos hoy. Ya hemos tenido tales herramientas hace unos diez años... \!con NeXTStep!

Estp es así para muchos tipos de software, y no solo para navegadores. Si van a http://www.omnigroup.com/ podrán ver muchas herramientas disponibles. La diferencia principal entre GNUstep y Mac OS X viene del uso del X Window System por el primero y no por el segundo. Esto ya fué una queja para NeXTStep. Aquí es donde GNUstep se vuelve tan importante: permite usar estas aplicaciones bajo X. Es probablemente una de las fuerzas del proyecto: esta gente hizo un trabajo estupendo.

Sombra
Podemos tener miedo a la llegada a Mac OS X de Exploder y otras m...aletas de software del mismo fabricante. Eso es un poco horroroso. Si estas aplicaciones son nativas Mac OS X, podemos esperar lo peor: la entrada insidiosa del ejército de Redmond en el mundo del Unix libre. Claro, aquí libre no significa gratis puesto que estamos hablando de los ladrones de M$, pero... Si quieren conocer a las aplicaciones en desarrollo para Mac OS X, echen un vistazo a http://www.apple.com/macosx/applications/
Vamos a decir que es la manera pesimista de pensar: ¡Esperen y vean!

No obstante, no olvidemos que GNUstep está especialmente diseñado para desarrollar. Cuando esté un poco más acabado, podrán desarrollar aplicaciones facilmente, como se hacía bajo NeXTStep. GNUstep es mucho más que un simple entorno, podríamos decir que es un verdadero IDE (Integrated Development Environment). Lo más importante es que estas aplicaciones podrán ser fácilmente portables, hacia Mac OS X, por ejemplo. A propósito, no olvidemos el open source de Apple, Darwin, que pueden ver en http://www.opensource.apple.com//

Evidentemente, hay mucho más que decir sobre GNUstep pero estaría más allá del propósito de este artículo. El objetivo era darles ganas de probar este grán producto y, por qué no, participar en el proyecto.

 

Y la orquesta sigue tocando

Uno de mis placeres alrededor del software libre viene de éstos proyectos que tratan de compensar las errores comerciales. Para mi, NeXTStep era una verdadera revolución. Soy muy feliz con mi vieja workstation y sus 10 años, y no creen que está cubierta de polvo: la uso cada día a pesar de su CPU 68040/25 Mhz. Por suerte (o desafortunadamente), mucha gente parece pensar lo mismo. Gracias a GNUstep y Window Maker por proveernos tan gran trabajo.

La cosa más rara alrededor de NeXTStep viene del hecho que muchos editores han tratado de "clonarlo"... y lo han logrado donde el modelo salió mal. Otra vez, tenemos que mencionar el Reino de Redmond: ¿han notado las ventanas de W95 y sus gadgets? Bueno, echen un vistazo a las fotos de pantallas de NeXTStep más arriba. NeXTStep apareció en 1987 en los Estados Unidos y alrededor de 1990 en Europa. Como dice su apellido, la cosa de M$ apareció más de cinco años más tarde. Las hojas volando de un directorio a otro, inventadas en los alrededores de Seattle, se encontraban en NeXTStep 2.1, es decir alrededor de 1991... Sin embargo, ¡por una vez, no han copiado in Redmond! Lo hicieron mucho mejor: "compraron" gente de NeXT... Supongo por mucho, mucho dinero. ¡Pero no hay derecho! Esto para decir que NeXTStep nunca dejó la gente indiferente, lo que es un eufemismo.

GNU es la referencia absoluta concerniendo el software libre. El mundo entero debe mucho a GNU: cada SO se pudo beneficiar de su trabajo. Sus compiladores son probablemente los mejores nunca visto, cualquier que sea el SO. Eso es cierto para muchas otras herramientas. Aún más, sus proyectos son a menudo (sino siempre) tan buenos como sus herramientas. GNUstep es uno de ellos. A propósito, NeXTStep tenía un directorio GNU... Si como a mí, no les gustan mucho los muy conocidos entornos de Unix (comercial o libre), prueben GNUstep, van a "quererlo". Aún más, no podrán trabajar sin él.
¡Disfruten!

¡Qué época estupenda vivimos!  

Formulario de "talkback" para este artículo

Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
 Ir a la página de "talkback" 

Contactar con el equipo de LinuFocus
© Georges Tarbouriech, FDL
LinuxFocus.org

Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus
Información sobre la traducción:
en -> -- Georges Tarbouriech
en -> es Georges Tarbouriech
es -> es Javier Palacios

2001-03-18, generated by lfparser version 2.1