diff options
Diffstat (limited to 'talermerchantdemos/blog/articles/es/java-trap.html')
-rw-r--r-- | talermerchantdemos/blog/articles/es/java-trap.html | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/talermerchantdemos/blog/articles/es/java-trap.html b/talermerchantdemos/blog/articles/es/java-trap.html new file mode 100644 index 0000000..e7bf979 --- /dev/null +++ b/talermerchantdemos/blog/articles/es/java-trap.html @@ -0,0 +1,289 @@ +<!--#set var="ENGLISH_PAGE" value="/philosophy/java-trap.en.html" --> + +<!--#include virtual="/server/header.es.html" --> +<!-- Parent-Version: 1.77 --> + +<!-- This file is automatically generated by GNUnited Nations! --> +<title>Libre pero encadenado. La trampa de Java - Proyecto GNU - Free Software +Foundation</title> + +<!--#include virtual="/philosophy/po/java-trap.translist" --> +<!--#include virtual="/server/banner.es.html" --> +<h2>Libre pero encadenado. La trampa de Java</h2> + +<p>por <a href="http://www.stallman.org/">Richard Stallman</a></p> + + +<div class="announcement"><blockquote><h3>Nota</h3> +<p>Después de que se publicara este artículo, Sun (ahora parte de Oracle) <a +href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html">relicenció</a> la +mayor parte de la implementación de referencia de su plataforma Java bajo la +Licencia Pública General de GNU, de manera que ahora existe un entorno de +desarrollo libre para Java. Así pues, el lenguaje Java ya no es una trampa.</p> + +<p>No obstante, debe ser precavido, pues no toda plataforma Java es libre. Sun +sigue distribuyendo una plataforma Java ejecutable que no es libre, y +también otras compañías lo hacen.</p> + +<p>El entorno libre para Java se denomina «IcedTea» —que es donde se +incluye el código fuente liberado por Sun—, de manera que es este el +entorno que se debe utilizar. Muchas distribuciones GNU/Linux vienen con +IcedTea, pero algunas incluyen plataformas Java que no son libres.(Nota, +añadida en octubre de 2015: La implentación libre de Java se denomina +OpenJDK en muchas distribuciones GNU/Linux).</p> + +<p>Para tener la seguridad de que sus programas Java funcionarán correctamente +en un entorno libre, tiene que escribirlos utilizando IcedTea. En teoría, +las plataformas Java deberían ser compatibles, pero no lo son al cien por +cien.</p> + +<p>Además, hay programas privativos que incluyen la palabra «Java» en el +nombre, como sucede con JavaFX, y existen paquetes Java que uno podría +sentirse tentado a utilizar pero que hay que rechazar, pues no son +libres. Si utiliza Swing, asegúrese de que sea la versión libre, que viene +con IcedTea.(Nota, añadida en octubre de 2015: Se ha publicado un reemplazo +libre de JavaFX llamado OpenJFX.)</p> + +<p>Dejando a un lado los aspectos que se refieren específicamente a Java, el +asunto general aquí descrito continúa siendo importante, pues cualquier +plataforma de programación o biblioteca que no sea libre puede provocar un +problema similar. Hemos de aprender de la historia de Java para evitar así +otras trampas en el futuro.</p> + +<p>Véase también: <a href="/philosophy/javascript-trap.html">La trampa de +JavaScript</a>.</p> +</blockquote> +</div> + +<p>12 de abril de 2004</p> + +<p> + Si su programa es software libre, básicamente es ético, pero hay una trampa +a la que debe estar atento. Su programa, aunque en sí mismo sea libre, puede +estar limitado por alguna dependencia de software que no es libre. En la +actualidad este problema se da sobre todo en los programas Java, por lo que +lo llamamos «la trampa de Java». +</p> + +<p> + Un programa es software libre si sus usuarios tienen ciertas libertades +esenciales. Sin entrar en detalles, éstas son: la libertad de ejecutar el +programa, la libertad de estudiar y modificar el código fuente, la libertad +de redistribuir el código fuente y los binarios, y la libertad de publicar +versiones mejoradas (véase <a +href="/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>). +Que un programa en forma de código fuente sea software libre depende +únicamente de los términos de su licencia. +</p> + +<p> + Que el programa pueda ser usado en el mundo libre por personas que quieren +vivir en libertad es una cuestión más compleja. No es algo que esté +determinado únicamente por la licencia del programa, porque ningún programa +funciona aislado. Todos los programas dependen de otros programas. Por +ejemplo, un programa necesita ser compilado o interpretado, por lo tanto +depende de un compilador o de un intérprete. Si es compilado en +<cite>bytecode</cite>, depende de un intérprete de +<cite>bytecode</cite>. Además, necesita bibliotecas para ejecutarse, y +también puede invocar a otros programas aparte que se ejecutan en otros +procesos. Todos estos programas son dependencias. Las dependencias pueden +ser necesarias para poder ejecutar el programa, o pueden ser necesarias +solamente para ciertas funciones. En cualquier caso, el programa entero, o +alguna parte del mismo, no puede funcionar sin las dependencias. +</p> + +<p> + Si algunas de las dependencias de un programa no son libres, entonces ese +programa o una parte de él no se puede ejecutar en un sistema completamente +libre: es inutilizable en el mundo libre. Ciertamente podemos redistribuir +el programa y tener copias en nuestras máquinas, pero eso no sirve de mucho +si no podemos ejecutarlo. El programa es software libre, pero en la práctica +está encadenado por dependencias que no son libres. +</p> + +<p> + Este problema puede suceder en cualquier tipo de software, en cualquier +lenguaje. Por ejemplo, un programa libre que solamente funcione en Microsoft +Windows es claramente inútil en el mundo libre. Pero el software que +funciona en GNU/Linux también puede ser inútil si depende de otro software +que no sea libre. En el pasado, Motif (antes de que tuviéramos LessTif) y Qt +(antes de que sus desarrolladores lo convirtieran en software libre) fueron +importantes causantes de este problema. La mayoría de las tarjetas gráficas +3D solamente funcionan a pleno rendimiento con controladores que no son +libres, que también originan este problema. Pero hoy en día la causa +principal de este problema es Java, porque los programadores que escriben +software libre a menudo se sienten atraídos por Java. Cegados por su +atracción hacia el lenguaje, descuidan el problema de las dependencias y +caen en la trampa de Java. +</p> + +<p> + La implementación de Java de Sun no es libre. Las bibliotecas estándar de +Java tampoco son libres. Sí que tenemos implementaciones libres de Java, +como el <a href="http://gcc.gnu.org/java/">compilador de GNU para Java</a> +(GCJ) y <a href="/software/classpath">Classpath de GNU</a>, pero todavía no +tienen todas las funcionalidades. Aún estamos trabajando en ello. +</p> + +<p> + Si usted escribe un programa Java sobre la plataforma Java de Sun, está +expuesto a usar funcionalidades exclusivas de Sun sin ni siquiera +advertirlo. Para cuando se dé cuenta, quizás las haya estado usando durante +meses, y rehacer el trabajo podría llevarle aún más tiempo. Podría pensar: +«Volver a empezar es demasiado trabajo». Entonces su programa habrá caído en +la trampa de Java y será inutilizable en el mundo libre. +</p> + +<p> + La manera más eficaz de evitar la trampa de Java es tener en su sistema +solamente una implementación libre de Java. Así, si usted usa una +funcionalidad o biblioteca de Java que el software libre todavía no soporta, +se dará cuenta enseguida, y podrá reescribir ese código de inmediato. +</p> + +<p> + Sun continúa desarrollando bibliotecas «estándar» adicionales de Java, y +casi ninguna es libre. En muchos casos, incluso la especificación de la +biblioteca es un secreto comercial, y la última licencia de Sun para estas +especificaciones prohíbe publicar nada que no sea una implementación +completa de la especificación (para encontrar ejemplos, véase <a +href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf">http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a> +y <a +href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html">http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html</a>). +</p> + +<p> + Afortunadamente, la licencia de esa especificación permite publicar una +implementación como software libre. A quien reciba la biblioteca se le +permite modificarla y no se le exige adherirse a la especificación. Pero el +requisito tiene el efecto de prohibir el uso de un modelo de desarrollo +cooperativo para producir la implementación libre. El uso de ese modelo +implicaría la publicación de versiones incompletas, algo que aquellos que +han leído la especificación no están autorizados a hacer. +</p> + +<p> + Durante los primeros años del Movimiento del Software Libre era imposible +evitar la dependencia de programas privativos. Antes de que tuviéramos el +compilador C de GNU, todos los programas en C (libres o no) dependían de un +compilador C que no era libre. Antes de que tuviéramos la biblioteca C de +GNU, todos los programas dependían de una biblioteca C que no era +libre. Antes de que tuviéramos Linux, el primer núcleo libre, todos los +programas dependían de un núcleo que no era libre. Antes de que tuviéramos +BASH, todos los textos para el intérprete de órdenes [<cite>shell +scripts</cite>] tenían que ser interpretados por un intérprete de órdenes +[<cite>shell</cite>] que no era libre. Era inevitable que nuestros primeros +programas se vieran obstaculizados por estas dependencias, pero lo aceptamos +porque nuestro plan incluía su posterior rescate. Nuestra meta final, un +sistema operativo GNU autosuficiente, incluía sustitutos libres para todas +estas dependencias. Si alcanzábamos la meta, todos nuestros programas serían +rescatados. Y así sucedió: con el sistema GNU/Linux, ahora podemos ejecutar +estos programas en plataformas libres. +</p> + +<p> + Hoy en día la situación es diferente. Tenemos potentes sistemas operativos +libres y muchas herramientas de programación libres. Cualquier tarea que +usted quiera hacer, la puede hacer en una plataforma libre; no hay necesidad +de aceptar una dependencia que no sea libre, ni siquiera temporalmente. La +principal razón por la que la gente cae hoy en la trampa es porque no +piensan en ello. La solución más fácil al problema de la trampa de Java es +enseñar a reconocerla para que las personas no caigan en ella. +</p> + +<p> + Para mantener su código Java a salvo de la trampa de Java, instale un +entorno de desarrollo Java que sea libre y úselo. De forma más general, +cualquiera que sea el lenguaje que use, mantenga los ojos abiertos y +compruebe que los programas de los que depende su código sean libres. La +manera más fácil de verificar si un programa es libre es buscarlo en el <a +href="http://www.fsf.org/directory">Directorio de Software Libre</a>. Si un +programa no está en el directorio, puede comprobar si su licencia está en la +<a href="/licenses/license-list.html">lista de licencias de software +libre</a>. +</p> + +<p> + Estamos intentando rescatar los programas atrapados en Java, así que si a +usted le gusta el lenguaje Java, le invitamos a colaborar en el desarrollo +de Classpath de GNU. También es útil probar sus programas con el compilador +GJC y con Classpath de GNU, e informar de cualquier problema que encuentre +en las clases que ya están implementadas. Sin embargo, finalizar Classpath +de GNU tomará tiempo. Si se siguen añadiendo más bibliotecas que no sean +libres, es posible que nunca dispongamos de todas las versiones más +recientes. Así que, por favor, no encadene su software libre. Cuando escriba +una aplicación, escríbala para que funcione desde el principio en entornos +libres. +</p> + +<h3>Véase también:</h3> +<p><a href="/philosophy/sun-in-night-time.html">El curioso incidente de Sun a +medianoche</a></p> + +<div class="translators-notes"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.--> + </div> +</div> + +<!-- for id="content", starts in the include above --> +<!--#include virtual="/server/footer.es.html" --> +<div id="footer"> +<div class="unprintable"> + +<p>Envíe sus consultas acerca de la FSF y GNU a <a +href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. Existen también <a +href="/contact/">otros medios para contactar</a> con la FSF. <br /> Para +avisar de enlaces rotos y proponer otras correcciones o sugerencias, +diríjase a <a +href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> + +<p> +<!-- TRANSLATORS: Ignore the original text in this paragraph, + replace it with the translation of these two: + + We work hard and do our best to provide accurate, good quality + translations. However, we are not exempt from imperfection. + Please send your comments and general suggestions in this regard + to <a href="mailto:web-translators@gnu.org"> + + <web-translators@gnu.org></a>.</p> + + <p>For information on coordinating and submitting translations of + our web pages, see <a + href="/server/standards/README.translations.html">Translations + README</a>. --> +El equipo de traductores al español se esfuerza por ofrecer traducciones +fieles al original y de buena calidad, pero no estamos libres de cometer +errores.<br /> Envíe sus comentarios y sugerencias sobre las traducciones a +<a +href="mailto:web-translators@gnu.org"><web-translators@gnu.org></a>. +</p><p>Consulte la <a href="/server/standards/README.translations.html">Guía +para las traducciones</a> para obtener información sobre la coordinación y +el envío de traducciones de las páginas de este sitio web.</p> +</div> + +<p>Copyright © 2004, 2010, 2015 Richard Stallman</p> + +<p>Esta página está bajo licencia <a rel="license" +href="http://creativecommons.org/licenses/by-nd/4.0/deed.es_ES">Creative +Commons Reconocimiento-SinObraDerivada 4.0 Internacional</a>.</p> + +<!--#include virtual="/server/bottom-notes.es.html" --> +<div class="translators-credits"> + +<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.--> +<strong>Traducción: Quique, 2004.</strong> Revisiones: Maximiliano Curia, +Exal de Jesus Garcia Carrillo, Javier Fdez. Retenaga, Sergi Ruiz Trepat.</div> + +<p class="unprintable"><!-- timestamp start --> +Última actualización: + +$Date: 2019/09/15 21:06:02 $ + +<!-- timestamp end --> +</p> +</div> +</div> +</body> +</html> |