Hoy hablaré de las patentes de software. Las patentes de software, para los mortales, son una forma de "adquirir" la propiedad intelectual de cierto comportamiento que tiene un progrma escrito por ese aguien.
Por empezar, este tema tiene muchos matices de gris, ya que esto puede tener muchos enfoques, por un lado si pensamos en el software en sí, no es mas que un importante conjunto de llamadas a instrucciones de un procesador, las cuales fueron puestas ahí por el fabricante de dicho procesador para que el usuario las use, si lo vemos como si fuera un auto, las instrucciones podrían ser el acelerador, freno, embrague, palanca de cambios, radio, etc; los cuales fueron puestos allí para ser usados. La misma perspectiva podemos tener si subimos varios niveles en la cadena evolutiva con las apis del sistema operativo, o mas arriba, las instrucciones de las máquinas virtuales. Está claro que desde este punto de vista resulta tán ridícula la idea de patentar software como la de patentar una determinada forma de manejar un auto.
Viendolo desde un enfoque completamente distinto uno puede llegar a pensar que su algoritmo resuelve un problema determinado de una forma super elegante y planea comercializarlo, ahora bien desde este punto de vista resulta natural querer patentarlo ya que es una creación y las creaciones se patentan de forma que el creador pueda tener exclusividad sobre los beneficios de las mismas.
El asunto de todo esto es ¿Que debemos considerar creación y qué no? Ahí es donde se encuentran los matices de la cuestión. Si por ejemplo uno mira la patente de "ribbon" de microsoft, posiblemente diga algo como "Botones de interfaz de usuario insertados dentro de pestañas de interfaz de usuario". Increible no? Tanto los botones de interfaz de usuario como las pestañas de interfaz de usuario existen desde hace años, ambos personalizables, dicha combinación se ha utilizado multitud de veces por distintos fabricantes de software y la idea en sí incluso es bastante obvia. ¿Es eso una creacion?.
Por otro lado existe una empresa, ahora no recuerdo cual, quien patentó AJAX, (si, eso que se encuentra en casi todos los sitios web modernos). AJAX no tiene nada en especial, simplemente carga partes de páginas web "por detrás" sin que el usuario lo note, para esto simplemente usa un objeto provisto por el navegador para tal fin. Otra vez a mí no me parece una creación en absoluto, mas bien utilizar herramientas que fueron pensadas para tal fin.
Ejemplos de cosas patentadas ridículamente tengo como para escribir varios post, pero la idea no es aburrir, la siguiente gran pregunta es:
¿Que es entonces una creacion?
Una creación en software es mucho mas profundo que lo que se ha venido discutiendo, y en efecto no es el software en sí la creación, sino el concepto. Por ejemplo yo podría patentar un algoritmo computacional que reconoce caracteres de imágenes el cual es el resultado de una extensa investigación, o una estructura de datos diseñada para utilizarse en discos duros la cual es ultra eficiente. Si lo miro mas de cerca realmente no estoy patentando software, lo que realmente estoy patentando es un descubrimiento.
Y aún así, existen descubrimientos que son tan amplios que resulta ridículo patentarlos, por decir algo el árbol B, o los algoritmos de redes neuronales, o los archivos XML.
Por lo expuesto creo que resulta bastante obvio que patentar software por sí mismo sería tan ridículo como patentar el pedaleo de una bicicleta.
En fin, esa es mi humilde opinión, Saludos!