Puzle Java

Hace unos días publicaba un tweet con un problema de Java aparentemente sencillo pero que tiene más complejidad que la que parece a primera vista. Como escribir la explicación en Twitter es un poco complicado y ante algunas preguntas que me habéis hecho a continuación va la solución del puzle y su explicación.

El problema

En primer lugar pongo de nuevo el problema en un formato en el cual es más fácil copiarlo, por si alguien lo quiere probar en su computadora

class A {   
    public void m(A a) { System.out.println("1"); }
}

class B extends A {
    public void m(B b) { System.out.println("2"); }
    public void m(A a) { System.out.println("3"); }
}

class Puzzle {
    public static void main(String[] args) {
        B b = new B();
        A a = b;
        a.m(b);
    }
}

La solución

Cualquiera puede comprobar que la solución dada es «3«. Algo que no resulta muy obvio a primera vista. Si alguien tiene dudas puede a probar a ejectuarlo on-line en el siguiente enlace: https://ideone.com/rUOtfB

La explicación

Para explicar el resultado hay que tener en cuenta los distintos aspectos de la orientación a objetos que están teniendo lugar.

Sobrecarga. En primer lugar sobrecarga, el método «m» está sobrecargado en la clase «B» (tiene dos métodos con el mismo nombre pero distinto tipo de parámetros). Si sólo entrara a jugar la sobrecarga Java se decidiría por el método «2» al ser el más específico. Por ejemplo, el siguiente código da como resultado «2».

class A { 
    // ...
}
class B  extends A {
    public void m(B b) { System.out.println("2"); }
    public void m(A a) { System.out.println("3"); }
}

class Puzzle {
    public static void main(String[] args) {
        B b = new B();
        b.m(b);
    }
}

Sobrescritura. No solo está ocurriendo sobrecarga sino también sobrescritura, el método «3» es una sobrescritura del método «1» situado en la clase padre. Cuado llamemos a ese método desde una instancia de la subclase se ejecutará la versión de la superclase.

Polimorfismo de inclusión (o de herencia). Una subclase puede pasarse en el lugar donde nos piden una superclase. En este caso a una variable definida de tipo A se le pasa una instancia de la clase B.

Restricción de llamada a la característica del tipado estricto. Básicamente dice que para llamar a un método desde una variable declarada de tipo A, entonces ese método tiene que estar en la clase A (o en alguna superclase).

Así que lo que ocurre es que al hacer la llamada a «a.m(b)», como la variable «a» está definida como de la clase «A» se busca al método «m» en la clase «A». Sin embargo como en la variable «a» hay una instancia de «b» (subclase de «A») se busca la versión sobrescrita de ese método en la clase «B». Pero es la versión del método que hay en «A», es decir, la que tiene un parámetro de tipo «A» como es el método que imprime «3».

Si en la clase «A» el método se define como «public void m(Object a)» entonces no hay sobrescritura e imprimiría «1», si el método fuera «public void m(B a)» habría sobrescritura con el otro método de «B» e imprimiría «2»

¿Cuál ha sido el lenguaje de programación más popular de 2012?

En el mundo de la informática es muy conocido el índice TIOBE que mide la popularidad de los lenguajes de programación. Este índice mide la popularidad de un lenguaje utilizando los motores de búsqueda más populares (Google, Bing, Yahoo!) y otras páginas como Wikipedia, Amazon, YouTube buscando cursos, vendedores, ingenieros cualificados, etc. La idea es que cuanto más popular es un lenguaje más entradas sobre el mismo habrá en las páginas anteriormente citadas. Por lo tanto es un índice de popularidad, no un índice sobre cuál es el mejor lenguaje o sobre qué lenguaje hay escritas más líneas.

fuente: www.tiobe.com
fuente: http://www.tiobe.com

Esta página otorga al final del año el título de «Lenguaje del Año» a aquel lenguaje que haya crecido más durante esa etapa. No tiene porqué ser el lenguaje más popular (habitualmente no lo es) sino el que haya obtenido mayor crecimiento. La lista de lenguajes más populares se muestra en la siguiente imagen y muestra a lenguajes conocidos (Java, C, etc.) con otros no tanto (como Go, lenguaje promocionado desde Google, que tuvo su minuto de gloria en 2009 pero desde entonces poco más se ha sabido del mismo).

Como vemos en los últimos dos años el título ha recaido en Objective-C, el lenguaje de programación propio de los dispositivos Apple y que en concepto es muy parecido a C++ (se trata de un superconjunto de C que añade programación orientada a objetos al mismo). Que haya obtenido este título dos años consecutivos parece obvio. El auge de los iPhones, iPads, iMacx, MacBooks no ha pasado desapercibido para nadie.

Sólo hay que ver la gráfica de tendencias de los últimos años para ver que el crecimiento de Objective-C ha sido espectacular. Está lejos de amenazar el reinado conjunto de C y Java pero ya se ha colocado en tercera posición

fuente: www.tiobe.com
fuente: http://www.tiobe.com

Sin embargo me ha sorprendido este año encontrarme con un índice alternativo al TIOBE, que proclama que este último es erróneo. Se trata de PYPL, un índice que tiene una curiosa metodología: se basa en comprobar el número de búsquedas que se realizan para encontrar un tutorial de un lenguaje dado. Los datos se obtienen de Google Trends. El autor defiende en su página por qué esta aproximación es mejor que la de TIOBE.

Sin embargo los resultados son bastante curiosos, el lenguaje del año para PYPL es… ¡ C# ! (leído C sharp) el principal lenguaje de programación de los entornos de Microsoft. En la siguiente imagen está la gráfica de tendencia de PYPL donde, curiosamente, Objective-C no aparece entre los 10 lenguajes más populares.

fuente: PYPL
fuente: PYPL

Sin entrar a fondo en las metodologías usadas por los índices los resultados de PYPL resultan sorprendentes. Nadie duda de la importancia que tiene Microsoft ni en su cuota de mercado, pero si hay algo que Microsoft no tiene actualmente es popularidad (o «hype» que dirían los ingleses). Sólo hay que ver noticias como las siguientes: ladrones entran a robar en unas oficinas de Microsoft y sólo se llevan los iPads, Oprah Winfrey declarando su amor al tablet Surface desde un iPad, el lanzamiento de Windows 8 con unas tasas de adopción peores que las de Vista, o el ex-CEO de Google (Eric Schmidt) excluyendo a Microsoft del club de las cuatro empresas tecnológicas más influyentes (Apple, Google, Amazon y Facebook).

Existe otro índice más de lenguajes de programación. Se trata del «The Transparent Language Popularity Index» que sigue una metodología similar a TIOBE (buscando el número de resultados obtenidos en varios motores de búsqueda al preguntar por la programación de un lenguaje en particular) y que obtiene unos resultados bastante similares a este último (en la imagen se muestra la lista de los 10 lenguajes más populares).

fuente: The Transparent Language Popularity Index
fuente: The Transparent Language Popularity Index

En este caso no se otorgan títulos de popularidad pero se puede ver en la última tabla que los dos lenguajes que más han crecido en el último año (comparando el «share» actual con el del año pasado) son Java y Objective-C (por ese orden) seguramente debido al crecimiento de las plataformas móviles donde se usan (Android e iOS respectivamente). Y que la mayor caída entre los diez primeros lenguajes es la de C# (lo que contradice los resultados de PYPL).

De cómo Bill Gates se hizo el hombre más rico del mundo

De todos es conocido que Bill Gates, fundador de Microsoft, ha sido el hombre más rico del mundo durante mucho tiempo. Ahora ha sido desbancado por Carlos Slim, el magnate mejicano de las telecomunicaciones (pero quizá más debido a que Bill gates se encuentra centrado hoy en día en sus labores filantrópicas a cargo de su fundación).

Pero todo el imperio de Microsoft se empezó a gestar en un momento determinado de la historia, en la que la astucia para los negocios de Gates y la miopía para predecir el futuro de los ejecutivos de IBM se juntaron para poner la primera piedra de lo hoy en día es el gigante Microsoft.

La escena es la siguiente, estamos e, 1980, IBM está fabricando su famoso IBM Personal Computer (IBM PC) siguiendo la estela de otros ordenadores personales de la época como los Commodore, Atari o Apple. IBM necesita un sistema operativo para su computador y se pone en contacto con Digital Research para introducir su sistema operativo CP/M (el sistema operativo dominante de la época) en su PC. Pero las negociaciones con Digital Research no llegan a buen puerto e IBM decide abrirse a otras posibilidades.

Las geniales condiciones de Gates a IBM

En este resquicio abierto en la puerta de IBM se iba a colar Microsoft con toda la caballería. Microsoft hasta la época era conocida poco más que por desarrollar un interprete BASIC (quién haya tenido un MSX recordará que este sistema arrancaba en dicho interprete). El caso es que, conociendo Gates las dificultades de IBM para encontrar un sistema operativo para su máquina decide, en una reunión histórica, ofrecerle su propia versión del sistema operativo, sujeto a las siguientes condiciones:

  1. Microsoft no vendería el sistema operativo a IBM, sino que le vendería una licencia que permitiría su uso en el IBM PC. Es decir, Microsoft seguía teniendo en sus manos el copyright del código del sistema operativo.
  2. Microsoft se reservaba el derecho a vender licencias a otras empresas aparte de IBM. Esperando, como finalmente ocurrió, que otras empresas clonaran el hardware de IBM y Microsoft pudiera venderles de nuevo su sistema.

Sorprendentemente IBM aceptó estas condiciones ¿por qué? en descargo de IBM podemos decir que por aquella época el software no se veía realmente como un negocio, o por lo menos como un negocio tan provechoso como la venta de hardware. Existía una cultura hacker en la que la gente compartía el código libremente y del cual es un digno representante Richard Stallman (del que ya hablamos en esta entrada). Sin embargo, la idea de un software privativo protegido por copyright y del cual no comprabas su posesión sino simplemente una licencia que te permitía usarlo bajo ciertas condiciones se fue imponiendo poco a poco en el negocio del software. Un hecho paradigmático de esta forma de ver el software lo podemos ver en la carta que el propio Gates envió a los aficionados de las computadoras acusándolos de piratear su interprete de BASIC.

El farol de Gates

Pero lo más alucinante de esta historia es que Gates no tenía el sistema operativo que le estaba ofreciendo a IBM, simplemente se plantó en la mesa de los ejecutivos de IBM y les soltó un farol con poco que perder y mucho que ganar. Entonces ¿de dónde salió el sistema operativo? pues de un programador llamado Tim Paterson que trabajaba para la empresa Seattle Computer Products (SCP) y que había desarrollado un sistema operativo denominado 86-DOS. Lo que Microsoft hizo fue inicialmente comprar un licencia para el uso de 86-DOS y contratar al propio Paterson para adaptar dicho sistema al IBM-PC. Posteriormente Microsoft compró de SCP todos los derechos sobre 86-DOS y lo renombró como PC-DOS (al licenciarlo a IBM) y finalmente como MS-DOS, el nombre más popular (al venderlo a otras compañías).

Pero más que contarlo con palabras podéis ver este momento histórico en el siguiente vídeo extraído de la película Piratas de Silicon Valley, la escena está en el minuto 7:15 (4:48 si queréis ver la escena entera que finaliza aquí aunque hay que tener en cuenta que los hechos reales se simplifican para adaptarlos a la película).

Esta película es muy recomendable ya que cuenta los inicios de Bill Gates (Microsoft) y Steve Jobs (Apple) en el mundo de la informática. La podéis seguir fácilmente en Youtube o Megavideo (eso si, como poca calidad), o directamente buscarla en google para bajarla con calidad de DVD.

Conclusión

Lo que pasó después es de sobra conocido, el IBM-PC se comercializó finalmente con dos sistemas operativos, el PC-DOS de Microsoft, que se vendía por 60$ y el CP/M-86 de Digital Research, que se vendía por 240$ (esto último fruto de un acuerdo judicial entre IBM y Digital Research). Al final el precio de los productos fue decisivo en la elección de los usuarios, que se decantaron masivamente por el de Microsoft. Posteriormente cuando aparecieron los primeros ordenadores clónicos Microsoft vendió su sistema comercializándolo como MS-DOS y consiguiendo que la gente asociara su software con el ordenador y no con el hardware subyacente que había debajo. Poco a poco IBM fue perdiendo cuota de mercado y en 2005 vendió su división de PCs a la compañía china Lenovo.

Digital Research intentó competir con Microsoft sacando al mercado una revisión de su sistema operativo que fuera compatible con MS-DOS y que la compañía bautizó como DR-DOS. Pero las sucias maniobras de Microsoft barrieron a DR-DOS del mercado, algo a lo que nos tendría acostumbrados la compañía en los años posteriores y que es la base de buena parte de su mala fama actual. Por ejemplo, hizo que su nuevo software, el renombrado Windows, lanzara mensajes de error si detectaba que estaba corriendo sobre DR-DOS y no sobre MS-DOS.

Evidentemente, el hecho que narramos en esta entrada es solo la punta del iceberg en el crecimiento de Microsoft, la compañía necesitó de mucha más batalla antes de hacerse con el dominio de los sistemas operativos, por un lado con la propia IBM y por otro lado con otros competidores como Apple, pero eso ya es otra historia…

P.D.

Y que fue de Paterson, pues fue contratado por Microsoft en varios momentos de su vida, generalmente para trabajar sobre el lenguaje Visual Basic y actualmente dirige su propia compañía de hardware denominada Paterson Technology y tiene un blog (poco actualizado) donde cuenta aspectos técnicos de su sistema. Probablemente le quede la sensación amarga de haberse sentido un peón en una partida de ajedrez entre gigantes de la informática.

Error 8001050F en la PlayStation 3 y otros errores catastróficos en la historia

Leo anonadado en las últimas horas como un error en la PlayStation 3 está dejando a todas estas consolas inservibles, por lo menos inservibles para su función principal que es jugar. Aunque hay mucha confusión con el verdadero motivo del error el problema parece estar en el reloj interno de la consola, que se ha vuelto loco al pasar del 28 de Febrero al 1 de Marzo de 2010. Al ponerse el reloj interno en una fecha inadecuada todo el contenido asociado a esa fecha (partidas guardadas, partidas on-line, etc.) se ha vuelto inoperativo. Y al ser un problema del reloj interno no se soluciona cambiándole la fecha a la consola sino que necesita de una actualización del firmware de la propia consola.

Al parecer al pasar el día problemático (el 1 de marzo que la consola interpretaba erróneamente como el 29 de febrero) parece que las consolas vuelven a funcionar. Si Sony se evita de tener que actualizar el firmware se habrá librado de una buena, pero el daño a la imagen de marca ya estará hecho.

Hay algunos conspiranoicos que acusan a Sony de fomentar las ventas del modelo Slim de la PS3 (al parecer no afectado por el problema), pero pienso que es más correcto acogernos al Principio de Hanlon que dice:

Nunca le atribuya a la maldad lo que puede ser explicado por la estupidez

Vamos a diseñar programas como se diseñan edificios

Este error no es nada menos que un paradigma de la profesión en la que nos movemos los informáticos, en la que un pequeño problema puede tumbar todo un sistema. Muchas veces se hace la analogía entre informática y arquitectura, y se dice que los programas hay que hacerlos como las casas, primero un buen diseño, con sus planos, sus maquetas, etc. Diseños realizados por arquitectos (ingenieros informáticos) que no se ensucian las manos y que dejan a los arquitectos técnicos (ingenieros técnicos) el desarrollo de sus ideas, que son los que finalmente dirigen a los albañiles (programadores de FP) en las obras (programas).

Sin embargo, quien haya programado alguna vez sabe que esta comparación es una falacia, más que nada porque a la mitad de la obra de un estadio de fútbol al arquitecto no le dicen que han cambiado de idea y que quieren hacer una iglesia, algo bastante común en el desarrollo de software. Además los edificios, con toda la complejidad que conllevan sí pueden especificarse en un modelo con un grado de determinismo muy cercano a la realidad, algo complicado de hacer en un programa complejo, el cual hay que desarrollar en base a incrementos funcionales en iteraciones de análisis-diseño-implementación-prueba, a ser posible cortas y en contacto continuo con el cliente. Y por último, si en un rascacielos te olvidas de poner el embellecedor del timbre del portal este no se viene abajo, pero puede que tu sistema se caiga si no sabes calcular correctamente los años bisiestos.

Los «bugs», esos adorables bichitos

Los errores informáticos se conocen como bugs (bichos en español). Al parecer esta terminología viene de cuando los ordenadores se fabricaban con piezas mecánicas por lo que el hecho de que se te metiera un bicho en un relé podía hacer que se parara todo el sistema. El primer bug documentado de la historia se debe a Grace Hopper que incluyó la siguiente anotación en un libro de log después de que se detectara un fallo de funcionamiento en uno de los primeros ordenadores electromecánicos (Mark II) debido a un bicho que se había introducido en el sistema. Esta anotación está hoy en día expuesta en el Museo Nacional de Historia Americana.

El error más caro de la historia de la informática – Ariane 5

El fallo software que llevó a la destrucción del cohete Ariane 5 de la Agencia Espacial Europea (ESA) está considerado el más caro en la historia de la informática. Este error estaba situado en el software de control de dicho cohete espacial que, en un momento de su lanzamiento, realizó una conversión de un valor flotante de 64 bits en un entero de 16 bits sin comprobar que se produjeran desbordamientos. Esto produjo un dato erróneo que el ordenador central entendió como verdadero interpretando que el cohete se estaba desviando de su trayectoria. El intento posterior de enderezar la trayectoria fue demasiado brusco y el cohete finalmente se destruyó a los 37 sg. del despegue. Al parecer por motivos de eficiencia se habían eliminado ciertas comprobaciones de error en tiempo real que podrían haber evitado la destrucción del cohete.

Otro error famoso – Mars Climate Orbiter

La Mars Climate Orbiter fue una sonda espacial lanzada por la NASA hacia Marte en 1998. El proyecto estaba valorado  en 327 millones de dólares y la sonda, como todos los proyectos científicos, trabajaba usando el sistema métrico decimal. Sin embargo, de todos es sabido que los anglosajones son muy suyos con eso de las medidas estándar y prefieren seguir con su sistema de pulgadas, pies, yardas, etc. Es más, los Estados Unidos es uno de los pocos países del mundo que no ha acogido (al menos oficialmente) el Sistema Métrico Decimal. Así que al final acabamos con unos trabajadores en tierra mandandole datos y parámetros a la sonda usando el sistema inglés de medidas, obteniendo como resultado final una sonda que no utilizó la trayectoria correcta para la entrada en el planeta y fue destruida por la fricción de la atmósfera. Hubiera sido más rápido y divertido haber quemado toda esa pasta en una hoguera de San Juan.

El derecho a leer

Como últimamente hemos estado hablando de ciencia ficción en el blog, y como últimamente mucho se ha hablado en el MundoReal TM de derechos sobre la propiedad intelectual y de como las entidades de gestión de estos derechos intentan criminalizar actitudes que a todos nos parecen normales (intercambiarnos música, libros, o representar obras de autores clásicos que llevan siglos muertos, etc.) me ha venido a la mente un cuento corto de ciencia ficción escrito por Richard M. Stallman en 1996 (aquí podéis encontrar el original en inglés).

(de «El camino a Tycho», una colección de artículos sobre los antecedentes de la Revolución Lunar, publicado en Luna City en 2096)

Para Dan Halbert el camino a Tycho comenzó en la universidad, cuando Lissa Lenz le pidió prestado su ordenador. El de ella se había estropeado, y a menos que pudiese usar otro suspendería su proyecto de fin de trimestre. No había nadie a quien se atreviera a pedírselo, excepto Dan.

Esto puso a Dan en un dilema. Tenía que ayudarla, pero si le prestaba su ordenador ella podría leer sus libros. Dejando de lado el riesgo de ir a la cárcel durante muchos años por dejar a otra persona leer sus libros, la simple idea le sorprendió al principio. Como a todo el mundo, se le había enseñado desde la escuela primaria que compartir libros era algo malo y desagradable, algo que sólo los piratas harían.

Además, no había muchas posibilidades de que la SPA (la «Software Protection Authority», o Autoridad de Protección del Software), no lo descubriese. En sus clases de programación Dan había aprendido que cada libro tenía un control de copyright que informaba de cuándo y dónde fue leído, y quién lo leía, a la oficina central de licencias (usaban esa información para descubrir piratas, pero también para vender perfiles personales a otras compañías). La próxima vez que su ordenador se conectase a la red, la oficina central de licencias lo descubriría. Él, como propietario del ordenador, recibiría el castigo más duro, por no tomar las medidas adecuadas para evitar el delito.

Lissa no necesariamente pretendería leer sus libros. Probablemente lo único que ella necesitaba era escribir su proyecto. Pero Dan sabía que ella provenía de una familia de clase media que a duras penas se podía permitir pagar la matrícula, sin pensar en las tasas de lectura. Leer sus libros podía ser la su única forma de terminar la carrera. Entendía la situación; él mismo había pedido un préstamo para pagar por los artículos de investigación que leía (el 10% de ese dinero iba a parar a los autores de los artículos, y como Dan pretendía hacer carrera en la universidad, esperaba que sus artículos de investigación, en caso de ser citados frecuentemente, le dieran los suficientes beneficios como para pagar el crédito).

Más tarde, Dan descubrió que hubo un tiempo en el que todo el mundo podía ir a una biblioteca y leer artículos, incluso libros, sin tener que pagar. Había investigadores que podían leer miles de páginas sin necesidad de becas de biblioteca. Pero desde los años 90 del siglo anterior, tanto las editoriales comerciales, como las no comerciales, habían empezado a cobrar por el acceso a los artículos. En el 2047, las bibliotecas de acceso público eran sólo un vago recuerdo.

Había formas de evitar los controles de la SPA y la oficina central de licencias, pero también eran ilegales. Dan había tenido un compañero de su clase de programación, Frank Martucci, que consiguió un depurador ilegal, y lo usaba para evitar el control de copyright de los libros. Pero se lo contó a demasiados amigos, y uno de ellos lo denunció a la SPA a cambio de una recompensa (era fácil tentar, para traicionar a sus amigos, a estudiantes con grandes deudas). En 2047 Frank estaba en la cárcel; pero no por pirateo, sino por tener un depurador.

Dan supo más tarde que hubo un tiempo en el que cualquiera podía tener un depurador. Incluso había depuradores libremente disponibles en la red. Pero los usuarios normales empezaron a usarlos para saltarse los controles de copyright, y finalmente un juez dictaminó que ese se había convertido en su uso práctico. Eso quería decir que los depuradores eran ilegales y los programadores que los habían escrito fueron a parar a la cárcel.

Obviamente, los programadores necesitan depuradores, pero en el 2047 sólo había copias numeradas de los depuradores comerciales, y sólo disponibles para programadores oficialmente autorizados. El depurador que Dan había usado en sus clases de programación estaba detrás de un cortafuegos para que sólo se pudiese utilizar en los ejercicios de clase.

También se podía saltar el control de copyright instalando un núcleo del sistema modificado. Dan llegó a saber que hacia el cambio de siglo había habido núcleos libres, incluso sistemas operativos completos. Pero ahora no sólo eran ilegales, como los depuradores: no se podía instalar sin saber la clave de root del ordenador, cosa que ni el FBI ni el servicio técnico de Microsoft te darían.

Dan llegó a la conclusión de que simplemente no podía dejarle su ordenador a Lissa. Pero no podía negarse a ayudarle, porque estaba enamorado de ella. Cada oportunidad de hablar con ella era algo maravilloso. Y el hecho de que ella le hubiese pedido ayuda podría significar que sentía lo mismo por él.

Dan resolvió el dilema haciendo algo incluso más increíble, le dejó el ordenador, y le dijo su clave. De esta forma, si Lissa leía sus libros, la oficina central de licencias pensaría que quien estaba leyendo era él. Seguía siendo un delito, pero la SPA no lo detectaría automáticamente. Sólo podrían saberlo si Lissa lo denunciaba.

Si la universidad descubriese que le había dado su clave a Lissa significaría la expulsión para los dos, independientemente de para qué hubiese usado ella la clave. La política de la universidad era que cualquier interferencia con sus métodos de control sobre el uso de los ordenadores era motivo para una acción disciplinaria. No importaba si se hubiera hecho o no algún daño, el delito era el hecho de dificultar el control. Se asumía que esto significaba que se estaba haciendo algo prohibido, y no necesitaban saber qué.

En general los estudiantes no eran expulsados por eso -no directamente-. En su lugar se les prohibía el acceso a los ordenadores de la universidad, lo que inevitablemente significaría suspender todas sus asignaturas.

Dan supo más tarde que ese tipo de políticas en la universidad empezaron en la década de 1980, cuando los estudiantes comenzaron a usar ordenadores masivamente. Antes de eso, las universidades tenían una actitud diferente: sólo se penalizaban las actividades dañinas, no las que eran meramente sospechosas.

Lissa no denunció a Dan a la SPA. Su decisión de ayudarle llevó a que se casasen, y también a que cuestionasen lo que les habían enseñado cuando eran niños sobre el pirateo. Empezaron a leer sobre la historia del copyright, sobre la Unión Soviética y sus restricciones sobre las copias, e incluso sobre la constitución original de los Estados Unidos. Se mudaron a Luna, donde se encontraron con otros que de la misma forma intentaban librarse del largo brazo de la SPA. Cuando empezó el Levantamiento de Tycho en 2062, el derecho universal a leer se convirtió en uno de sus objetivos fundamentales.

Copyright 1996 Richard Stallman

Sobre la obra y su contexto

Richard Mathew Stallman es un conocido programador de origen estadounidense y activista sobre la libertad del software. Es el fundador de la Free Software Foundation, una fundación sin ánimo de lucro que promueve el desarrollo de software libre (pero libre no en el sentido de gratuito sino el el sentido de libre de distribuir, copiar y modificar). Uno de los mayores exponentes del software libre es el sistema operativo Linux.

Puede que a algunos el texto le parezca una exageración propia de novelas de ciencia ficción (al estilo de «1984» o «Fahrenheit 451») pero es notable lo premonitorio que ha sido este escrito si tenemos en cuenta que en el año en que se escribió (1996) prácticamente no existían ninguna de las restricciones digitales (DRM) que asolan a los productos tecnológicos de las últimas generaciones.

Acaso hoy en día no podemos ver como canciones bajadas con el programa iTunes sólo pueden ser reproducidas si tienes un iPod. O libros comprados en la tienda de Amazon sólo pueden ser leídos si te has comprado el lector de eBooks que ellos mismos comercializan (Kindle). En este último caso es paradigmático como la empresa Amazon utilizó la conexión a Internet del Kindle para entrar en ellos (sin el permiso de sus propietarios) y borrar un libro que había sido comercializado sin tener los adecuados derechos. Para colmo de la ironía el libro era «1984».

También podemos ver como productos electrónicos como el iPhone, el nuevo iPad o las consolas de videojuegos controlan hasta la saciedad el software o hardware que instalas en los mismos prohibiendo instalar dispositivos (en un aparato electrónico que no olvidemos que es de tu propiedad) que anulen dichas restricciones del fabricante.