[imagen de un Brave GNU World]
Brave GNU World - Número 18
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
Permisos de copia al final.

Traducido por  Nicolás García-Pedrajas y Eloy Rafael Sanz-Tapia

[DE | ES | FR | JA | EN]

Bienvenido a Brave GNU World, de Georg. Una vez más espero haber encontrado una mezcla interesante de temas para este mes. Comenzaremos en el corazón de la tecnología, analizando dos lenguajes de programación muy interesantes.

GNU Sather

GNU Sather [5] es un lenguaje de programación orientado a objetos que surgió como un derivado de Eiffel, pero que ha cambiado tanto desde entonces que puede ser considerado un lenguaje independiente.

Sather comenzó como un proyecto científico en el ICSI de Berkeley, distribuído bajo una licencia muy alejada de los principios del Software Libre. Pero cuando el desarrollo se detuvo por motivos financieros en 1998 un grupo de personas consiguieron convencer al ICSI para liberar la última versión bajo la GPL/LGPL. Esto hizo posible que GNU Sather se convirtiera en un proyecto GNU.

Entre las características más reseñables de Sather está su concepto revolucionario de interfaz, que separa completamente el interfaz de una clase y su implementación. Esto facilita mucho la herencia múltiple. También es posible cambiar el código completamente, si fuera necesario, sin tocar el interfaz. El responsable actual de Sather, Norbert Nemec, también destaca el concepto de iterador, que permite implementar todos los conceptos de bucle de otros lenguajes usando una instrucción de ruptura (break). También pide que mencionemos que Sather no es sólo "otro estudio de diseño", sino un lenguaje diseñado desde el principio para ser rápido y cómodo para el desarrollador.

El estado actual de Sather podría describirse como "casi listo para el uso diario". El interfaz con C y Fortran es sencillo y está bien documentado, de modo que las posibilidades son enormes. La principal debilidad actualmente es que el compilador no optmiza todo lo que pudiera y tiene aún varios defectos. Obviamente, la construcción de un nuevo compilador está entre las primeras tareas a realizar, pero es algo que requerirá algún tiempo. La librería de funciones también necesita algo de trabajo, y en la Universidad de Waikato están dedicándose a ello.

A pesar de estos pequeños defectos, los desarrolladores interesados en la programación orientada a objetos deberían acercarse a conocer Sather. Será una experiencia interesante. Especialmente en lo que respecta al soporte de programación paralela (desde multihilo hasta clusters TCP/IP) y a la librería, que soporta internacionalización desde sus comienzos.

Ruby

Ruby [6], de Yukihiro Matsumoto es otro lenguaje de programación orientado a objetos. Nació en 1993 cuando el autor no pudo encontrar un lenguaje de guiones (scripting) orientado a objetos y decidió escribir uno. El nombre de Ruby se eligió porque el autor buscaba otro nombre de joya que simbolizase la cercanía del lenguaje a Perl. Su objetivo es hace que Ruby sea el sucesor de Perl y lo reemplaze. Para conseguirlo, ha tomado los puntos fuertes de lenguajes como Perl, Python, Lisp y Smalltalk y los ha incorporado a Ruby.

Al igual que Perl, Ruby es muy eficiente en el procesamiento de texto y se beneficia adicionalmente de su orientación a objetos. Todos los datos en Ruby son objetos, sin excepciones. El número "1", por ejemplo, es una instancia de la clase "Fixnum". Es posible añadir métodos a una clase (e incluso a una instancia) en tiempo de ejecución. Estas posibilidades hacen que Ruby sea muy flexible y extensible. Además soporta iteradores, excepciones, sobrecarga de operadores, recolección de basura y muchas otras características que se piden en un buen lenguaje. En consonancia con el objetivo de sustituir a Perl, Ruby es muy portable y se ejecuta bajo GNU/Linux (y otros UNIXes), DOS, Windows y entornos Mac.

Para dar a los lectores técnicos unas cuantas migajas de información mencionaremos que Ruby tiene clases que facilitan la programación CGI, y que existen módulos para Apache: eRuby (Ruby empotrado) y mod_ruby. El lenguaje tiene una clase para sockets muy bien diseñada y gracias a Ruby/Tk y a Ruby/Gtk es posible implementar interfaces gráficos de forma sencilla. También hay características especiales para el tratamiento de XML y un interfaz para la librería expat de análisis de XML.

Finalmente, se debe destacar que Ruby soporta multihilo de forma independiente del sistema operativo, incluso bajo MS-DOS. A pesar de esta complejidad, la sintaxis se mantiene lo más simple posible (algo inspirado en Eiffel y Ada).

Ruby puede ser distribuido bajo la Licencia Pública General GNU o bajo una licencia especial que da a los usuarios unos "derechos de atribución de propiedad" más fuertes, pero que podría considerarse también una licencia de Software Libre (aunque habrá que comprobarlo de forma exhaustiva).

Aunque todas estas características tienen probablemente un valor principalmente técnico, creo que incluso los no programadores pueden estar interesados en este tipo de desarrollos.

Y continuamos con asuntos técnicos en la columna. Una vez más, OKUJI Yoshinori nos ha hablado de un proyecto interesante.

a386

a386 [7], de Lars Brinkhoff es una librería que proporciona una CPU Intel 386 virtual ejecutándose en modo protegido como una máquina virtual. Esto puede ser de utilidad para los programadores del núcleo y para científicos, pero también puede ser interesante para usuarios interesados en probar otro sistema operativo sobre el que ya tienen instalado.

Con respecto a proyectos similares como el Brown Simulator o plex86, a386 presenta la ventaja de que ejecuta las operaciones privilegiadas más rápido debido a que las implementa como llamadas a función o código en línea (inline). Además, uno de sus objetivos es la portabilidad, tanto respecto al sistema operativo como respecto a la arquitectura de la CPU.

Actualmente se está trabajando en mejorar la versión para Linux, pero a medio plazo se intentará hacer que a386 se ejecute también en NetBSD y en Hurd. El objetivo a largo plazo es usar la experiencia obtenida con a386 para crear un nuevo modelo de máquina que será una abstracción de las CPUs de estaciones de trabajo y servidores, e implementarlo como una librería en C y un nanokernel que se ejecute directamente sobre el hardware.

Por supuesto, está distribuido bajo la Licencia Pública General de GNU. Si estás interesado en este tema, puedes encontrar más información en la página del proyecto [7].

Pero ahora me gustaría hablar de cosas que atañen al usuario final de forma más directa.

Guppi

Estrictamente hablando, Guppi [8] es tres cosas en una. En primer lugar es una aplicación para análisis de datos y creación de gráficos y diagramas. Además es un componente Bonobo que puede ser empotrado en otras aplicaciones y finalmente es un conjunto de librerías que pueden ser usadas por cualquier aplicación Gnome.

La aplicación como tal es importante para usuarios que necesiten visualizar y analizar datos científicos. Realmente Guppi es el único programa de su clase basado en una integración con Gnome desde el comienzo, por lo que parece que se está convirtiendo en el estándar de Gnome para visualización Por tanto, no es sorprendente que la hoja de cálculo de Gnome, Gnumeric, y el gestor financiero GnuCash se basen en Guppi.

Según Jon Trowbridge, el actual responsable de Guppi, las ventajas principales pueden resumirse en cuatro puntos. Primero, Guppi es programable mediante guiones (scripts): la interfaz (API) interna es accesible desde Guile y Python, lo que permite resolver problemas complejos sin necesidad de programar en C. Segundo, Guppi tiene un filtro de importación de datos muy flexible con capacidad de "adivinación" bastante buena, de modo que un fichero puede ser leído sin intervención del usuario. Tercero, mucha de la funcionalidad está dividida en módulos extraíbles (plug-ins) que lo hacen fácil de extender. Y finalmente Guppi tiene un interfaz WYSIWYG (visual) que no debería presentar problemas para el usuario.

Pero el usuario final todavía debe ser algo cuidadoso: Guppi está en desarrollo y el interfaz de usuario no está completo aún. Además, faltan aún algunas funciones y la documentación es escasa y en algunos aspectos inexistente. Ahora mismo, sólo los usuarios expertos deberían considerar su uso diario.

Otros miembros del equipo de desarrollo de Guppi son Jody Goldberg y Michael Meeks, que trabajan en la integración con Gnome, Andrew Chatham, que se encarga del enlace con Python, y Havoc Pennington que, aunque ya no trabaja activamente en Guppi, sí hizo una gran parte del trabajo inicial. Todos los que estén interesados en el desarrollo están invitados a contactar con Jon Jon [9], quien también me dijo que actualmente está cerca de la Universidad de Chicago y que estaría interesado en encontrar aficionados al Gnome en ese área.

Suficiente charla técnica por hoy. Hay tres asuntos relacionados con Alemania que me gustaría presentar.

¿Sociedad GPL?

En el servidor web del Proyecto Oekonux [10] hay un documento bastante interesante escrito por Stefan Merten y titulado "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" ("GNU/Linux - ¿en el camino hacia una sociedad GPL?") [11]. En el artículo, Stefan trata de analizar el significado social del Proyecto GNU.

Aunque se le han puesto esos adjetivos varias veces, es ampliamente sabido que Richard Stallman no es Marxista ni Comunista, y mi perspectiva es desde un ángulo diferente. Esto me hizo leer este estudio con aún más interés, puesto que el autor define su posición política com "Anarquismo con una buena parte de análisis Marxista". Muchas veces me he preguntado cómo se vería el Proyecto GNU desde este punto de vista y por eso esta fue una lectura fascinante, aunque creo que algunos aspectos se tratan de forma demasiado unidimensional.

La primera parte del documento describe a grandes rasgos los fundamentos de la sociedad, y los aspectos relativos a GNU/Linux se tratan en la segunda parte. El objetivo del documento es el estudio del desarrollo no comercial y su competencia con la producción comercial de software que está asociada principalente al modelo propietario. El software libre comercial prácticamente se ignora, lo que es comprensible dada la postura del autor, pero deja sin tratar un aspecto a mi parecer crucial del fenómeno del software libre.

La última parte formula la idea de que los indivíduos de una sociedad GPL harían las cosas que quisieran hacer gracias a la multiplicación, prácticamente sin coste, de bienes materiales. Algo que se puede considerar como mínimo problemático dado el estado actual de la tecnología. Esta última parte es, en mi opinión, un poco ingénua. Sin embargo sigo pensando que merece la pena leer este artículo (disponible, por lo que sé, sólo en Alemán) y que algunos aspectos del mismo pueden darnos nuevos puntos de vista.

El siguiente tema está en el otro extremo del espectro filosófico.

Bravehack

Bravehack [12], de Jens Sieckmann es un estudio subtitulado "Technische, wirtschaftliche und gesellschaftliche Aspekte von freier Software und Open Source; ihr Wesen, ihre Geschichte, ihre Organisationen und Projekte" ("Aspectos técnicos, científicos y sociales del Software Libre y de Fuente Abierta; su esencia, su historia, sus organizaciones y sus proyectos"). Este estudio está claramente orientado al aspecto comercial y el propio autor propone su uso como documento para gestores del sector informático.

Tras leer las primeras páginas, resulta claro que el autor es un gran seguidor de las teorías de Eric S. Raymond: la mayoría de las citas son suyas. Como se puede imaginar, el documento trata el movimiento de Software de Fuente Abierta (Open Source) de forma bastante poco crítica, aunque intenta ser imparcial en la descripción del mismo y en algunas partes lo consigue. Lo interesante es el hecho de que el autor a veces argumenta a favor de las posiciones del Software Libre, al parecer sin darse cuenta. Por ejemplo, explica que el movimiento de Fuente Abierta no se implica en los principios básicos del Software Libre y por lo tanto no tiene opinión sobre asuntos como las patentes de software. Pero al final hace un alegato en contra de las mismas, aduciendo que podrían acabar por destruir el movimiento.

O sea, que indirectamente dice lo mismo que Richard Stallman no se cansa de repetir: sólo teniendo presentes los principios y asegurándose de que los demás los conozcan podemos asegurarnos de que el movimiento sobreviva a largo plazo. Y eso trae la posibilidad de hablar sobre libertad, tal como Bruce Perens, autor de "La Definición del Software de Fuente Abierta" pedía en Slashdot hace unos meses. Parece como si los dos movimientos estuvieran descubriendo más puntos en común. Algo que me parece muy positivo.

Considerando la motivación bastante baja de los gestores alemanes para leer documentos en Inglés, esta parece una buena forma de presentarles los fundamentos del movimiento de forma sencilla. Aunque, por supuesto, no deberían conformarse con esto.

Por cierto, ambos documentos son dinámicos. El primero acepta comentarios en la propia página y Bravehack ha sido publicado bajo la Licencia de Documentación Libre de GNU.

Software Libre - ¿Zona sin ley?

El abogado y físico Jürgen Siepmann ha escrito un libro titulado "Freie Software - Rechtsfreier Raum?" ("Software Libre - ¿Zona sin ley?") que ha sido publicado por LinuxLand International [13]. Trata fundamentalmente sobre la aplicación de la GPL y LGPL en Alemania y es relativamente correcto en lo tocante a los principios del Software Libre. Es definitivamente una lectura obligada para cualquiera interesado en estos temas.

Fin

Bien. Esto debería ser suficiente por este mes. Como siempre, os animo a que enviéis vuestras ideas, comentarios, preguntas y sugerencias de nuevos temas por correo electrónico [1].

Info
[1] Envía ideas, comentarios y preguntas a Brave GNU World <column@gnu.org>
[2] Página del Proyecto GNU http://www.gnu.org/
[3] Página del Brave GNU World de Georg http://www.gnu.org/brave-gnu-world/
[4] Iniciativa "We run GNU" http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] Página de GNU Sather http://www.gnu.org/software/sather
[6] Página de Ruby http://www.ruby-lang.org/
[7] Página de a386 http://a386.nocrew.org/
[8] Página de Guppi http://www.gnome.org/guppi
[9] Jon Trowbridge <trow@gnu.org>
[10] Página de Oekonux (en Alemán) http://www.oekonux.de/
[11] "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" ("GNU/Linux - ¿en el camino hacia una sociedad GPL?") (en Alemán) http://www.oekonux.de/texte/meilenstein/default.html
[12] Bravehack (en Alemán) http://unixpr.informatik.fh-dortmund.de/~dbadmin/bravehack/
[13] Jürgen Siepmann, "Freie Software - Rechtsfreier Raum?", LinuxLand International (libro en Alemán) <info@linuxland.de>

[ número anterior | Página de Brave GNU World | número siguiente ]

Volver a Página de GNU.

Por favor envía las preguntas y peticiones de información acerca de FSF y GNU gnu@gnu.org. También hay otras formas de contactar con la FSF.

Por favor envía los comentarios sobre la columna Brave GNU World a column@gnu.org, envía los comentarios sobre estas páginas web a webmasters@www.gnu.org, envía otras preguntas a gnu@gnu.org.

Copyright (C) 1999 Georg C. F. Greve.

Se concede Permiso para realizar y distribuir copias literales de esta transcripción siempre  que aparezcan el copyright y esta nota de permiso.

Last modified: Mon Jun 26 14:27:41 CEST 2000