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
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 Microsystems 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 Microsystems.
- 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.