[Trisquel-devel] GNUkCaH || gnuHaCk

william Herrera shawoho at yahoo.com
Wed Jul 15 00:22:48 CEST 2009


Saludos,

Perdón por la demora, pero me ha llevado un poco de tiempo realizar los análisis prometidos.

La idea va  más o menos así:

Desde la comunidad de Trisquel GNU/linux iniciar un proceso de investigación, desarrollo e implementación de tecnologías libres, inicialmente para entornos de escritorios orientados a distribuciones GNU. Con buena suerte de los vientos, espero que podamos continuar con nuevos retos los cuales propondré al final del mensaje.

Las motivaciones son variadas, las principales son: desafío técnico, colaboración, aprendizaje y diversión; en otras palabras "happy gnu hacking".

Quiero aclarar que este mensaje no es una queja, sino una observación al estado actual de nuestros sistemas libres, todo esto es más bien un sentido personal de inconformidad y ejerciendo nuestra libertad de software según la FSF, todo lo que debemos hacer es colaborar, ya que todo lo hemos recibido libremente.

Mucho del apoyo viene atravez de la industria informática corporativa como Novell, Red Hat, Canonical, SUN Microsystems, etc.. la presencia de estas entidades como la del capital es beneficiosa, siempre y cuando se unan a la iniciativa inicial de GNU y no incluyan aspectos confusos, que no sean los ideales de libertad. Ciertamente el software libre trae consigo un modelo que ahorra costos de desarrollo y tiempo para innovación tecnológica, pero es más que sólo eso, así que debemos exigir que nuestros proyectos comunitarios se mantengan filosóficamente limpios. Así cuando las empresas necesitan indicar detalles y ventajas de comercialzación, lo que es totalmente válido, lo hagan desde sus puestos corporativos.

Al grano...

En el caso de GNOME, tenemos un proyecto oficial GNU, que cumple casi todas las expectativas tanto técnicas como funcionales. Tradicionalmente en los subproyectos de éste, no se establecen exigencias de estándares GNU, para ser considerados componentes oficiales. En principio está todo muy bien, ya que es software libre; Pero es muy dificil encontrar frases como "software libre", "gnu o gnu/linux"; Es más facil encontrar cosas como "OPEN SOURCE"  y "LINUX". Si no me creen revisen el contenido del sitio web de gnome y de sus dependencias ya sea de librerías o de aplicaciones. Otro punto es la cantidad exagerada de copyrights a nombres propios y/o marcas corporativas.
Estas son molestias menores, de hecho no creo que haya mayores problemas, sólo que en cuestiones de marcar una postura oficial GNU, se debe conservar la línea para no causar confusión y así no desviar objetivos.
Independientemente de lo antes mencionado, GNOME es más que un escritorio, es una plataforma de desarrollo. Sus bases son lenguaje C con estructuras muy bien organizadas, con ideas en objetos y extensibilidad para otros lenguajes. Tiene actualmente envolturas oficiales para c++, python, perl, guile, y muchos más. No hay mucho que anotar sobre gnome, todos lo conocemos muy bien y brilla por su amplia versatilidad.

En el caso de KDE, podemos encontrar las mismas razones, pero a diferencia de GNOME, este no es un proyecto oficial GNU. Pero es software libre y está bien para quienes gustan de esta tecnología.

GNUstep, es un entorno de desarrollo orientado a objetos que usa el lenguaje de programación objective-c, basado en una especificación abierta OpenStep de la compañia Next ahora Apple. Existen varios subproyectos para crear un escritorio compatible con esta tecnología, como GAP(gnustep application project) que consiste en crear tantas aplicaciones como sea necesario para conformar un entorno de trabajo. Etolié, usan como base GNUstep y añaden más tecnologías como smalltalk y conceptos nuevos.
Además ofrece una API muy elegante y tiene el potencial para crear todo lo que necesitamos rápidamente debido a GORM, una aplicación que relaciona objetos de nuestros programas. El inconveniente es que sigue una especificación que ya no sigue creciendo. Lo más cercano a mejoras es la API cocoa de Apple, pero ya en este caso no se manejan como especificación sino como librerías propias de la marca. Además este proyecto se enofoca en brindar un alto grado de compatibilidad y portabilidad con cocoa.
Respecto al lenguaje objective-c que lo tenemos en la linea de gcc, no es estandarizado, sólo Apple añade características oficiales, es poderoso y simple, a diferencia de c++ que puede llegar a presentar muchas complejidades. El grado de complejidad que necesita este lenguaje es facilmente obtenido del grandioso framework de GNUstep.
Realmente es un conjunto de frameworks, para GUI(gnustep-gui), no-GUI(gnustep-base), gnustepweb, gnustep database library 2 gdl2, gnustep-make, etc...

GNAT es ADA que es un lenguaje muy bueno, pero no muy difundido fuera del ámbito de sistemas de alto riesgo como el militar o la aviación. Pero la empresa ADA core está alineada con la FSF y brinda el soporte oficial ada para gcc. El proyecto posee una impresionante variadad de librerías hasta para embeber un web server en aplicaciones, tiene un IDE, todo realmente sorprendente. Pero su naturaleza militar crea una ilusión de que sólo se debe usar para tareas muy muy específicas y no es así.

Como plan de acción, he analizado las plataformas GNUstep, GNOME, ADA core, Java queda descartado por su dependencia de la máquina virtual.

Cada cual puede investigar las características de cada plataforma de desarrollo, pero entre los requerimientos necesarios se busca, ahorro de tiempo, tecnología probada, simplicidad, mucho poder y baja dependencias. Entonces:

GNUstep .- rápido desarrollo, tecnología parcialmente probada, muy sencillo, relativamente poderosa, baja dependencias.
GNOME .- desarrollo parcialmente rápido, tecnología 100% probada, complejidad media, mucho poder, relativamente baja dependencias.
ADA core .- desarrollo lento, tecnología muy probada, complejidad alta, mucho poder, baja dependencias.

Según mi opinión la plataforma debe ser GNOME, aunque confieso que GNUstep es muy llamativa. En todo caso, con gnome el ahorro de tiempo sería bastante notable a diferencia de los otros, al tener una gran cantidad de librerias y aplicaciones ya desarrolladas, sería mucho más facil hacer un hack de las funcionalidades que se necesiten y no tener que reinventar la rueda.
Para la estructura general del entorno se puede usar C++ que es ordenado, poderoso, estandarizado pero puede llegar a ser muy complejo. Sin importar la dificultad de c++, al tener soporte oficial para GNOME, ya es un avance. Lenguaje C(lingua franca de GNU) siempre va a ser necesario, pero usarlo para módulos que no necesiten mayor integración a la plataforma, osea para tareas muy específicas. Adicionalmente está python y guile, con todas sus características de extensibilidad y soporte para gnome.
Entonces GNOME brindaría una base para hackear, mucho soporte como plataforma, varieadad de lenguajes de programación, aunque en esto último hay que ser prudente sino las dependencias nos tomarán como rehen.

La propuesta oficial sería, un entorno de escritorio gráfico tipo GNOME con capacidades embebidas, moderno, ligero, potente e inteligente. Así las distribuciones GNU/* podrían empaquetarlo facilmente con un número de dependencias aceptables. La idea es crear un sobproyecto gnome, de hecho sería un GNOME adaptado y extendido, así cada quien usará el GNOME que le guste, y no sólo el que tenemos hoy en día.

Con capacidades embebidas me refiero a brindar funcionalidades atravez del escritorio en sí mismo y no de aplicaciones. En bajo nivel serían aplicaciones tambien, pero con tareas específicas, como si fueran modos emacs o módulos. Por ejemplo:
Abiword podría darnos la funcionalidad de procesamiento de texto, pero sólo eso; Gnumeric la de hoja de cálculos; Glom para formularios con B.D. y así con algunas aplicaciones más. Lo importante sería extraer su alma, osea su funcionalidad básica y compartir tareas que no tengan en común entre el resto del escritorio. Digo esto porque Abiword trae opciones para colaboración en línea, esto podría ser general para todo el escritorio, no sólo para una app. Todo esto es posible con tecnología de objetos.
De esta manera si creamos una plataforma de objetos que se comunican, obtendriamos escritorios a la medida de cada usuario según los objetos que necesiten y no aplicaciones enteras con redundancia de funciones. Otra forma de visualizarlos podría ser así, cuando quermos trabajar en un documento, que incluya cálculos, texto, imagen, correo, contenido web, etc.. sería cuestión de instanciar los objetos que brinden estas funciones y formariamos un superobjeto con un superdocumento. Cada uno sería archivos diferentes, manejadas por diferentes objetos pero visualizarlos como uno. Podríamos compartir parte de estos datos, etc.. solo es cuestion de imaginación. Por lo tanto nuestro escritorio sería inteligente, puesto que si queremos escribir nuestro entorno es un procesador, si queremos navegar, nuestro entorno es un navegador; etc... Vale la pena agregar que la web debería estar maś integrada en nuestros escritorios y no sólo en un navegador o app
 de mensajería. Sólo son ideas, ciertamente hay muchos buenos proyectos de aplicaciones que no pueden ni deben quedar fuera, como OpenOffice. Para estos fines se debe proporcionar un lanzador de aplicaciones de manera tradicional. Adicionalmente el escritorio debería ofrecer vistas, osea verlo como entorno embebido o tradicional tipo aplicaciones individuales. Así todos felices y al gusto personal.
Noten tambien que me referí siempre hacia un escritorio inteligente y no fácil o sencillo.

Estas son ideas que no me dejan vivir en paz hasta que las haga realidad, así que todo tipo de observación o comentario será bien recibido. Entre los objetivos de este mensaje hay una cosa importante: Crear la iniciativa "Prestigio GNU" en todos los idiomas para difundir el s.o. con su filosofía y la adherencia de proyectos alineados con estándares GNU.

El nombre de este proyecto GNUkCaH || gnuHaCk, se lo puede considerar como clave hasta que encontremos un nombre oficial. El mensaje original fué colocado en el foro de usuarios de trisquel, ahora redirigido en la lista devel para mejor enfoque. Gracias Rubén y Aitor.
http://trisquel.info/gl/gnustep-trisquel
Este mensaje no ha sido depurado ni revisado ;) muchos errores encontrarán, ya iremos ordenando las ideas...

Gracias,

William H.
GNU - Resistencia Digital


      
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.trisquel.info/pipermail/trisquel-devel/attachments/20090714/2fab0c28/attachment.htm>


More information about the Trisquel-devel mailing list