jueves, enero 26, 2006

Críticas ante decreto que autorizaría uso de Java privativo en la Administración Pública

A continuación les envío tres documentos obtenidos por miembros de la Comunidad de Software Libre a través de varios contactos en el Ministerio de Ciencia y Tecnología, de un decreto que estaría por ser firmado por la ministra de Ciencia y Tecnología, Yadira Córdoba, respecto a una excepción que sería añadida en el Plan Nacional de Migración al Software Libre con respecto a las tecnologías Java que desarrolla y promueve la empresa transacional Sun Microsystems.

Dicho decreto autorizaría el uso temporal (pero sin especificar límites de tiempo) de las máquinas virtuales privativas Java de SUN, que usan un estándar controlado por dicha empresa pero que es calificado erróneamente como un "estándar independiente y abierto" por el proyecto de decreto. Además, se señala que "no es posible evitar el uso de Java en el Estado venezolano", afirmaciones falsas que en efecto podrían causar un efecto dominó, con otras empresas de software privativo exigiendo pronunciamentos similares para su software.

En este mensaje intento explicar de una forma muy sencilla qué es el Software Libre y el Decreto 3390, y las implicaciones de los 3 documentos que se anexan al final. El resumen está basado en parte en los emails (mucho más técnicos pero con más referencias) emitidos hoy en la lista de la comunidad de Software Libre ubicada en: http://conexionsocial.org.ve/pipermail/softwarelibre/2006-January/015519.html, que incluye opiniones de Francisco Palm (profesor de la ULA) y de otros usuarios de la lista.

QUE ES EL SOFTWARE PRIVATIVO Y EL SOFTWARE LIBRE

Como saben, las aplicaciones de computación que se usan en el Estado venezolano (en programas de nómina, contabilidad, administración, registros, etc.) se deben crear usando un "lenguaje de programación" (un conjunto de palabras que los profesionales en informática usan para darle órdenes a las computadoras). Muchos de esos "lenguajes" fueron diseñados por empresas como Microsoft o Sun Microsystems, y son "privativos": sólo la empresa transnacional sabe cómo fueron hechos y sólo esa empresa puede modificarlos y redistribuirlos.

Paralelo a esto, surgió desde hace más de 20 años el Software Libre: un movimiento con principios muy socialistas, basado en el hecho de que el conocimiento debe ser libre y todos deben tener acceso a él. Los programas escritos bajo los preceptos del Software Libre deben ser hechos en lenguajes de programación que no sean privativos, para garantizarse que cualquiera pueda ejecutar los programas, ver su código, mejorarlo y redistribuir las mejoras.

EL DECRETO 3390

Debido a lo compatible que es dicha filosofía con el proyecto bolivariano, hace un año se promulgó el Decreto 3390, que implica migrar las aplicaciones del Estado venezolano a Software Libre en un lapso inicialmente de 2 años.

Lamentablemente, la estrategia de empresas como Sun Microsystem y Microsoft, desde hace muchos años atrás, fue persuadir a las universidades de que debían enseñar a sus alumnos a usar principalmente los lenguajes privativos. Ello hizo que muchos de quienes hoy trabajen en la Administración Pública, (varios de ellos personas revolucionarias y de muy buena fe, pero otros son aliados de las transnacionales) sólo conozcan lenguajes de programación privativos y se resistan a los cambios que pide el Decreto 3390.

ESTARÍA POR SALIR OTRO DECRETO

El proyecto de decreto mostrado abajo alega que Java es un estándar abierto (es decir, que es público y fijado por una organización no comercial), lo cual es falso: su desarrollo es encabezado por la transnacional Sun Microsystems, junto a una comunidad de personas y empresas. Sun Microsystems maneja las decisiones finales y tiene derecho a vetar las decisiones de la comunidad que no le agraden.

Igualmente, Sun promueve y patrocina su implementación de Java, la cual es privativa. Existen implementaciones hechas por la comunidad de Software Libre, pero las mismas no están completas, en parte porque Java es un estándar dependiente de una empresa privada, y esa empresa podría cambiar las reglas del juego cuando lo necesite, lo que hace que muchos programadores lo abandonen en pro de tecnologías 100% libres.

El decreto mostrado abajo, de ser aprobado, constituiría una grave y lamentable excepción al Plan Nacional de Migración al Software Libre emitido el año pasado por el Ministerio de Ciencia y Tecnología, el cual ya establecía algunas excepciones razonables para aquellos casos en los cuales sea muy difícil o complicado hacer la migración en el lapso de tiempo establecido. Además, el proyecto de decreto dice que "se autoriza el uso de las implementaciones no libres de Java de forma temporal", pero no se dan límites de tiempo.

Sería más o menos equivalente a decir que ninguna empresa cervecera puede hacer publicidad en televisión, exceptuando (por poner un ejemplo) a la Polar, porque ellos hacen donaciones benéficas. ¿Se imagina entonces a Brahma, Regional y todas las otras cerveceras pidiendo que también se hagan excepciones con ellos?

Pues eso mismo podrían hacer otras empresas de software privativo, como Microsoft o Red Hat: pedir que también se hagan excepciones con ellos. Esto paulatinamente permitiría ablandar o desmontar completamente al Decreto 3.390.

Otro de los documentos mostrados abajo indica además que se deben añadir "las razones por las cuales no es posible evitar el uso de Java en el Estado Venezolano", lo cual equivaldría a admitir (en nuestro ejemplo hipotético) que el venezolano no puede vivir sin ver la publicidad de determinada marca de cerveza.

Ningún lenguaje de programación es imprescindible, ello porque existe una amplia gama de lenguajes libres: C, C++, PHP, Perl, Python, Ruby, Gambas y muchos otros. El afirmar que "no es posible evitar" el uso de Java o de determinado lenguaje equivale a hacerle propaganda gratuita a una empresa privada y transnacional basándonos en una mentira.

Por último, no se está teniendo en cuenta el tema de la soberanía tecnológica. El hecho de que Estados Unidos haya prohibido a países como España o Brasil la venta de barcos y aviones a Venezuela es un ejemplo de los bloqueos tecnológicos o comerciales que Estados Unidos podría intentar contra nuestro país en un futuro cercano. El no dominar la tecnología que usamos, y el depender de máquinas virtuales y lenguajes privativos controlados por trasnacionales estadounidenses implica depender de empresas que, de un momento a otro, pueden cerrarnos las puertas haciéndonos más vulnerables que nunca. El trabajar con lenguajes libres indica que, aún en el caso de un bloqueo estadounidense, disponemos del código fuente del lenguaje y podemos modificarlo o arreglarlo según nuestras necesidades.

CONCLUSIONES

En efecto, la comunidad de Software Libre no está cerrada al uso de Java. Incluso Richard Stallman comentaba este miércoles en un evento en Caracas que Java podría utilizarse con las máquinas virtuales libres que existen, tales como GCJ, Kaffe y GNU/Classpath (hay, sin embargo, otras opiniones que alertan que SUN maneja patentes sobre su máquina virtual que, de ejercerse, podrían bloquear la creación de máquinas virtuales libres).

El peligro estriba en las excepciones y benevolencias que este decreto podría traer de ser aprobado (excepciones para el uso temporal de Java sin límites de tiempo; frases que indican que "no es posible evitar el uso de Java en el Estado venezolano" o el decir que es un estándar abierto e independiente), y en el efecto dominó que se produciría con otras empresas de software privativo.

Sin duda que no hay interés ni en la Comunidad de Software Libre ni en el Ministerio de Ciencia y Tecnología en iniciar una confrontación por el tema del software libre. Sin embargo, la aparición de documentos como estos, el fuerte interés de empresas como Microsoft y Sun en mantener sus negocios con el Estado venezolano, y el lento despegue y fuerte oposición que enfrenta el Decreto 3390 desde dentro y fuera de la Administración Pública Nacional, obliga a muchos a estar vigilantes y pedir a los compañeros del MCT una revisión del posible decreto y una respuesta ante las críticas y opiniones respetuosamente formuladas al mismo.


LOS DOCUMENTOS:

--------------------------------------------------------------------------------


DOCUMENTO 1: AUTORIZACIÓN TEMPORAL PARA LA ADOPCIÓN DE
LOS COMPONENTES DE LA TECNOLOGÍA JAVA


Yo, MARLENE YADIRA CÓRDOVA, titular de la cédula de identidad Nº V.-4.581.205, en mi condición de Ministra de Ciencia y Tecnología, designación que consta en Decreto Nº 2.382 de fecha 29 de Abril del 2003, publicada en la Gaceta Oficial de la República Bolivariana de Venezuela Nº 37.681 de fecha 02 de Mayo del 2003, en representación de la República Bolivariana de Venezuela por órgano del Ministerio de Ciencia y Tecnología, y actuando como máxima autoridad administrativa de dicho órgano expongo:

CONSIDERANDO

Que es menester dar cumplimiento a lo establecido en los artículos 01, 02, 03, y 14 del Decreto Nº 3.390, de fecha 28 de Diciembre del 2004, publicado en la Gaceta Oficial de la República Bolivariana de Venezuela Nº 38.095, en los cuales se define lo que es software libre, propietario y estándares abiertos, se dispone que la Administración Pública Nacional empleará prioritariamente Software Libre desarrollado con Estándares Abiertos, si permite un mecanismo de excepción, y se declara al Ministerio de Ciencia y Tecnología como coordinador de la ejecución del Decreto 3390.

CONSIDERANDO

Que el Ministerio de Ciencia y Tecnología es el ente rector en materia de Tecnologías de Información en el Ejecutivo Nacional, de acuerdo a lo establecido en el artículo 26 de la Ley Orgánica de Ciencia, Tecnología e Innovación, publicada en la Gaceta Oficial de la Republica Bolivariana de Venezuela Nº 38.242 de fecha 03 de Agosto del 2005.

CONSIDERANDO

Que las especificaciones de la tecnología Java, las cuales definen tanto el lenguaje de programación como los componentes de arquitectura, son establecidos por una organización independiente denominada “Java Comunity Process” o “JCP” y reconocidos internacionalmente como un estándar abierto.

CONSIDERANDO

Que los componentes de arquitectura de la tecnología Java definidos por la JCP sirven de estándar para que las empresas y demás organizaciones puedan desarrollar sus implementaciones propias, las cuales pueden ser libres o propietarias.

CONSIDERANDO

Que son muy pocos los componentes de la tecnología Java que no disponen de por lo menos una implementación basada en software libre.

CONSIDERANDO

Que en los casos de componentes de arquitectura Java cuyas implementaciones propietarias no disponen de una implementación libre equivalente, estas se encuentran en curso de desarrollo o mejora.

RESUELVE

Reconocer que las especificaciones de la tecnología Java definidas por la Java Comunity Process son un estándar abierto tal como lo entiende el artículo 2 del Decreto 3390. Estas especificaciones de la tecnología Java incluyen la definición del lenguaje de programación así como también los componentes de arquitectura.

Declarar las implementaciones de los componentes de la tecnología Java que cumplan con el decreto 3390, de uso prioritario sobre aquellas implementaciones de los componentes de la tecnología Java que no lo cumplan.

Otorgar a los órganos y entes de la Administración Pública Nacional, autorización temporal para la utilización de las implementaciones no libres de los componentes de la tecnología Java que no disponen de un equivalente en software libre basado en estándares abiertos. Esta autorización temporal será válida hasta el momento del desarrollo y publicación de una solución equivalente que sea software libre basado en estándares abiertos. El ministerio de Ciencia y Tecnología velará por hacer oficial la aparición y publicación de implementaciones de componentes libres de Java basados en estándares abiertos.

Declarar que las aplicaciones existentes en la Administración Pública Nacional que han sido desarrolladas gracias a implementaciones de componentes de Java no libres, deberán ser migradas a implementaciones de componentes de Java que respeten la presente resolución, o a cualquier otra solución de software que respete el Decreto 3390.

Todo esto, sin menoscabo de lo contenido o regulado en las leyes, decretos, reglamentos o resoluciones que regulen la materia.

La presente autorización temporal se expide en la Ciudad de Caracas, a los ---- días del mes de --------- del dos mil cinco (2005).

MARLENE YADIRA CÓRDOVA

MINISTRA

OTI/100-0001/ABCD


--------------------------------------------------------------------------------


DOCUMENTO 2: Reunión OTI sobre Java 21/12/05

Presentes:

Carlos Longart, Fátima Giusti, Hector Riera, Lisseth García, Neiry Hidalgo, Nestor Rondón, Rafael Rodríguez, Tulio Moncada, Yuleica Sojo.

Base de la discusión:

Se expuso la propuesta de resolución que afectará de manera general a los órganos y entes de la Administración Pública Nacional en el sentido siguiente (resumen):

Se reconoce la tecnología definida por las especificaciones de la Java Comunity Proces (JCP) como un estándar internacional

Se hace prioritario el uso de las implementaciones de Java que ya son libres sobre las que no lo son

Se autoriza a utilizar las implementaciones no libres (maquina virtual y bibliotecas) hasta la aparición de un equivalente libre.

Observaciones de forma:

Se propusieron algunas redacciones diferentes al texto propuesto, las cuales fueron adoptadas.

Se propuso la supresión del texto de los artículos de ley citados en la resolución.

Se propuso agregar una frase que indique que el MCT reconocerá oficialmente la aparición de soluciones equivalentes libres.

Se propuso la inclusión de un glosario de términos técnicos.

Observaciones de fondo:

Algunas personas consideran que no hay que dar al tema de Java un tratamiento tan especial, pues de cierta manera es hacerle propaganda a Java.

Varias personas no están de acuerdo en que Java sea tratado por la vía de una resolución ministerial, prefieren que cada caso genere una solicitud de autorización según el artículo 3 del Decreto 3390 y el proceso de autorización correspondiente.

Se propuso que se justifique las razones por las cuales no es posible evitar el uso de Java en el Estado Venezolano

Otras observaciones:

Varias personas están totalmente de acuerdo con el texto propuesto, con las razones expuestas y con las mejoras aportadas. Ellos reconocen la importancia para el Estado Venezolano de utilizar la tecnología Java.

Punto extra:

Se agrega un resuelve que hace obligatorio para las aplicaciones desarrolladas con componentes no libres su migración a implementaciones que respeten la presente resolución o a soluciones de software que respeten el decreto 3390. Esto último resuelve no fue conversado en la reunión.


--------------------------------------------------------------------------------

DOCUMENTO 3:Resumen del resultado del evento Java

El ambiente Java se puede considerar bajo varias facetas:

Lenguaje de programación y especificaciones técnicas de la JCP

Implementaciones de la tecnología Java (herramientas de programación)

Implementaciones de la “Virtual Machine” (VM)

Lenguaje de Programación y las especificaciones técnicas de la JCP

En tanto que lenguaje de programación Java y las especificaciones técnicas de la JCP es un estándar reconocido internacionalmente. El principal garante de su estabilidad es la Java Comunity Process. Por lo tanto en este aspecto cumple con el Decreto 3390.

Implementación de la Tecnología Java (Herramientas de Programación)

Las diferentes implementaciones existentes son en algunos casos libres y en otros no libres (como por ejemplo la de Sun Micro Systems) y por lo tanto ciertas implementaciones cumplen con el decreto 3390 y otras de ellas no lo cumplen.
En el caso de implementaciones libres, el código está abierto y puede ser leido, lo cual no siempre es así con las implementaciones no libres. además se pueden modificar y redistribuir.
Se considera que la mayoría de las implementaciones libres de Java no tienen las mismas prestaciones de las implementaciones no libres, muchas de ellas no están completas.
Independientemente de las libertades, actualmente no se pagan regalías por las implementaciones de la tecnología Java.
Existen consultores independientes que pueden dar soporte a las herramientas libres.
Implementación de la Máquina Virtual (VM)

Si bien la implementación de la VM de Sun micro Systems es privativa, existen varias implementaciones libres pero no tienen el mismo rendimiento ...

Conclusiones:

Se propone que el Estado, en conjunto con la comunidad y el Java Community Procces, apoye el desarrollo de implementaciones libres y en particular de las máquinas virtuales. El Estado debe implementar una solución de soporte técnico para dichas implementaciones.
El personal formado a Java es una fortaleza.
Recomendaciones:

Reconocer el lenguaje de programación Java como un estándar.
Aceptar el uso de las implementaciones de Java cuando sean libres
Aceptar el uso de una VM no libre hasta la publicación de una implementación completamente libre.
Proponer la liberalización de las Bibliotecas (librerías) de Sun Micro Systems.
Promover y dar a conocer las Bibliotecas (librerías) e implementaciones tecnológicas que son libres para orientar a la APN en el uso de Java.
Migrar las aplicaciones creadas con implementaciones no libres de Java a implementaciones libre.
Proponer a Sun que libere la JDK.

No hay comentarios.: