* Notas/Script de la conferencia presentada ante un auditorio de la Universidad de Bucaramanga, Colombia, el 10 de Octubre de 2001. Este texto pertenece a Luis Miguel Arteaga (larteaga@yahoo.com) y puede ser copiado integramente siempre y cuando se conserve esta nota. -- Este documento intencionalmente no contiene acentos -- -- Introduccion Lamina Sin Numero Lamina 1 Cuando German Velasquez me pidio amablemente que dirigiera unas palabras ante este auditorio, le sugeri el tema y el titulo de esta platica. Quisiera ahora hacer de su conocimiento que el titulo tiene un error totalmente voluntario, que quise introducir desde un principio, como punto inicial de mi disertacion. Lamina 2 "Ventajas del software libre sobre el software comercial" debe explicarse en base a las definiciones de ambos tipos de software. En realidad, eso no es tan sencillo. Existen muchos tipos de software, entre los que se pueden nombrar como mas conocidos son el de Codigo abierto, mejor conocido por su nombre en Ingles de "Open Source", Propietario, comercial, shareware, freeware y otros muchos.(1) Como nota adicional de esta lamina, freeware se aplica a veces a software que es gratuito, pero que no se incluye el codigo fuente en el, por lo que solo se considera un regalo. Hay que tenerlo en cuenta para no caer en este error. Lamina 3 Estan viendo en este momento el diagrama de las categorias del software, diseniado por Chao-Kuei, donde se muestran de manera muy grafica los diversos tipos de software, representados por las principales categorias. De manera general, podemos decir que existen dos grandes tipos, el de la izquierda, que incluye una yuxtaposicion del open source y free software dentro de los cuales hay otros subtipos, y la columna de la derecha, donde se muestra el software propietario y cerrado. Una curva encierra parte de los dos grandes tipos, indicando aquellos programas que pueden ser obtenidos por medio de la internet o con una copia fisica, muy de vez en cuando se confunde el hecho de poder "bajar" o "descargar" un programa de la internet con la caracteristica de que sea libre. Generalmente, cuando hablamos de "software comercial", nos referimos a aquellos programas que son cerrados en su codigo, que debe pedirse algun tipo de permiso (ya sea por una cuota o sin ella) para modificarlo, verlo o distribuirlo. Es muy importante hacer notar que la diferencia entre el software libre y el comercial de ninguna manera se deriva del hecho de pedir una cantidad monetaria por el uso, esta es una falacia que comunmente es aceptada. Es posible legalmente obtener un beneficio economico por una pieza de codigo sencilla o compleja sin alterar su categoria. En el diagrama de la lamina no se incluye ninguna division por el costo o valor del software. Para evitar entonces esta falsa impresion, es preferible usar la frase "Software propietario", pues denota mas claramente la categoria de esos programas en los que las libertades han sido arrancadas a los usuarios, manteniendo el autor del mismo alguno o todos los derechos. Lamina 4 Asi pues, esta conferencia con todo derecho, debe titularse "Ventajas del software libre sobre el software propietario". Las categorias del software tambien nos traen otro problema, pues muchos de los programas de uso comun en ambientes libres (tales como los metodos de encriptacion PGP) son semi-libres. Es decir, que los usuarios tienen permiso del autor de usarlo, copiarlo, distribuirlo y a veces hasta para modificarlo, pero solo para efectos no lucrativos. La libertad ha sido dada, pero no plenamente, y aunque este tipo de programas son mucho mejores que los propietarios, aun tienen ciertos problemas eticos que no pueden ser desechados a la ligera. Definir el software libre es relativamente dificil, ya que se requieren una serie de condiciones para que sea considerado como tal, en contraparte, el caso del software propietario es mucho mas facil: los propietarios o autores ponen a sus programas bajo un copyright, con el objetivo de que solo ellos sean capaces legalmente de copiar y fisicamente de modificar el codigo fuente para de esta misma manera ser los unicos que se beneficien economicamente del mismo. No es el objetivo de esta platica hablar de las categorias del software, puesto que podriamos discutir los pequenios detalles durante horas sin parar. Asumiremos que solo existen los dos tipos mencionados en el titulo que ahora hemos acordado y tendremos en cuenta que existen mas variantes que se inclinan hacia uno u otro extremo. De igual manera, establecere algunas comparaciones usando ejemplos con software que es casi libre, como el caso del servidor web Apache. Lamina 5 -- Software libre y Open source Algunas de las ventajas del software libre que presentare se deben a una de las caracteristicas de este tipo de programas: la publicacion del codigo fuente. Dicha publicacion es apoyada por la OSI "Open Source Initiative" o iniciativa el codigo abierto, por sus siglas en ingles. En los ultimos anios y sobre todo en los ultimos meses ha habido una agria discusion en cuanto a la posicion francamente divergente de los grupos e individuos que apoyan la OSI y aquellos que apoyan a la FSF, la fundacion para el software libre. En realidad, la OSI no tiene ninguna posicion en contra de los objetivos de la FSF, de hecho en los materiales del sitio oficial para el open source, dice textualmente que el "codigo abierto es un sistema de mercadeo para el software libre" (11). El open source y el free software no son contendientes, aunque sus lideres reconocen que tienen motivaciones completamente diferentes. La meta final del movimiento de open source es lograr un software tecnologicamente avanzado, mientras que el del software libre lograrlo con medios eticos y socialmente correctos. El open source y el software libre son dos diferentes facciones -se podrian llamar politicas- de lo mismo. Difieren en los principios basicos, pero mas o menos recomiendan lo mismo, por lo que se puede trabajar -de hecho se hace de manera constante- en proyectos especificos, de ninguna manera se ven como enemigos, sino como lo que son: dos corrientes de pensamientos que dirigen sus diferentes medios a un mismo objetivo: la desaparicion del software propietario. Lamina 6 Existen muchas ventajas por las que alguien deberia de usar programas libres en vez de algun programa propietario, - Apertura del codigo fuente - Libertad de uso y reuso - La ventaja Educativa - La ventaja Economica - El desarrollo sostenido - Seguridad - Estabilidad - Respaldo o Soporte - Democracia del software - El ahorro cooperativo - Caracteristicas vs. funcionalidad - Ventaja Sectorizada Estas son, a mi manera de ver las ventajas mas importantes del software libre. Hay que recalcar que este es mi particular punto de vista, hay quienes , como Richard Stallman dejarian de lado alguno de estos temas y pondrian otros puntos con mas contenido social. Casi me atreveria a decir que cada uno de los que nos decidimos por usar el software libre lo hacemos por motivos particulares. Cada uno de ustedes, si es que se decide a usar software libre, tendra sus propias razones. Lamina 7 - Apertura del codigo fuente Quiza la caracteristica mas importante del software libre. Algunas de las libertades que nos da este tipo de software precisamente son consecuencia de esta apertura, o tienen la consideran un prerequisito. Es tambien el principal punto de union con otros movimientos como los del open source. El hardware cambia y evoluciona a una velocidad superior a la que se puede predecir. Hace poco se celebraban los primeros 20 anios de la PC de IBM, la primera computadora personal y hoy tenemos ordenadores muchos miles de veces mas rapidos que apenas hace unos anios. La apertura de codigo nos da la facilidad de adaptar programas funcionales a nuevas plataformas, o a modificaciones necesarias para condiciones cambiantes. Recuerdo que muchos juegos que fueron desarrollados para la plataforma 80286 tuvieron que ser modificados porque las nuevas computadoras basadas en procesadores 386 eran tan rapidas que hacian el juego imposible de manejar, pues el programador inicial contaba con las perdidas de tiempo en el procesamiento de la plataforma que tenia a su alcance. Hoy en dia, un buen programador toma en cuenta los posibles cambios futuros en la plataforma para la que este trabajando, pero no sabe si alguien querra portar su software a otros sistemas, digamos de una Mac a un Unix. El que el codigo fuente este disponible le da la oportunidad a alguien con el conocimiento suficiente de portar esa aplicacion para su plataforma sin tener que pasar por el proceso total del desarrollo. Muchos expertos han llegado al acuerdo que para efectivamente extender el tiempo de vida de un programa, una precondicion es contar con el codigo fuente. Se calcula que un ningun software de hace diez anios ha podido sobrevivir sin cambios en la forma binaria, mientras que muchos otros que fueron diseniados y originalmente codificados en los ochentas, siguen trabajando, aunque obviamente adaptados al entorno actual. El compilador de C de GNU es una muestra real de este trabajo, tiene casi veinte anios y las plataformas Unix deben gran parte de su existencia a este compilador. Por lo que sabemos, seguira siendo parte importante de esta plataforma por un buen tiempo. Otra gran ventaja de contar con el codigo fuente es la posibilidad de crear dos proyectos a partir de uno inicial, o crear uno alternativo si una parte de la comunidad de usuarios o programadores creen que de alguna manera no ha sido bien manejado o tiene un fin diferente al percibido de manera particular o general. Esto es considerado a veces como una desventaja, porque se tienen que manejar dos sets de codigo fuente en vez de uno solo. Un "fork", como es llamado en ingles a esa separacion, a veces es manejado por dos organizaciones diferentes, pero no siempre. Puede darse debido a problemas con las licencias, o a razones tecnicas. Estas ultimas son motivo de debate frecuente, ya que hay mas de una manera de hacer alguna tarea en especial y los programadores no siempre se ponen de acuerdo en cual es mejor. Si la comunidad es suficientemente grande como para permitir que se dividan en dos y cada uno siga un camino separado, entonces es posible llegar a un acuerdo. Si estas razones han dejado de tener importancia, a veces es posible reunificar los proyectos en uno, como es el caso reciente de gcc y egcs. En otros casos similares, este fork, o division es llevado a cabo por razones practicas. un ejemplo es el desarrollo del kernel Linux, que tiene dos proyectos uno llamado "estable" y otro llamado "experimental". De esta manera es posible introducir nuevas caracteristicas, variantes, que pueden resultar peligrosas o estan poco probadas sin romper el codigo que se encuentra en el "estable". La gente interesada en conocer esas nuevas tecnologias puede probarlas usando el proyecto "experimental", pero los servidores de produccion deberian siempre usar el "estable". Aun asi, recientemente los lideres de movimientos como el Software Libre y el Open Source, el creador del proyecto Gnome y el CEO Red Hat han firmado una carta abierta a Microsoft, (6) llamada "Stand Together", "mantengamonos juntos". En ella, invitan al gigante verde a unirse a la campania del Free software, asi como se han unido usuarios, desarrolladores y ahora grandes empresas como HP e IBM. Cualquiera, esta invitado a participar de la misma manera. La misma microsoft ha decidido dar un paso adelante, con la iniciativa "shared source", codigo fuente compartido, que se traduce en "Vean, pero no toquen, y nosotros controlamos todo". No puedo negar que no es lo que se espera, pero que es un avance importante en ese sentido. Lamina 8 - Libertad de uso y reuso En cuanto a la libertad de uso, tenemos cuatro vertientes importantes, la posibilidad de cambio, la creacion de nuevas comunidades, la igualdad de circunstancias y el uso del software en cualquier caso dado. La libertad, el derecho de redistribuir modificaciones y mejoras al codigo, la posibilidad de uso de partes de codigo de otros en los propios hacen que se formen grandes comunidades en torno a esos proyectos. En sustancia, el hecho que la redistribucion de esa libertad no puede ser revocada y que es universal, es lo que atrae a las masas no solo de programadores, sino tambien de usuarios finales. En suma, se puede decir que estas libertades establecidas de manera igualitaria con todos los usuarios y programadores de cada proyecto les da una base inicial sin desventaja para nadie. Una gran empresa puede contar con un equipo de programadores y todas las facilidades para desarrollar un gran proyecto, pero no por eso el individuo que trabaja por su cuenta debe considerar que no puede competir con la corporacion, pues el software libre allana las diferencias y pone a todos en igualdad de condiciones iniciales. Quien sea, puede tomar parte del codigo ya hecho y aplicarle ideas o metodos nuevos con lo que efectivamente esta ahorrandose el camino que otros ya recorrieron, adelantando en su terminacion. Una idea innovadora puede llegar al mercado mas eficientemente si llega pronto, si se basa en trabajo que ya esta hecho, si no se redescrubre el hilo negro. Si se comenzara cada vez desde cero, quiza, cuando esta idea alcance a las masas ya no sea tan innovadora. Por otra parte, una comunidad extensa de usuarios regulares, a los que no se ha logrado juntar por medio de publicidad, sino por medio de un software de calidad, se puede convertir facilmente en un mercado potencial para el soporte y posible "customizacion" del proyecto. Esto a su vez, comienza un ciclo, donde los usuarios ayudan a mejorar la calidad y funcionalidad del producto, atrayendo a su vez a mas usuarios. Este ciclo se repite una y otra vez. El "Uso y reuso en cualquier caso" es una ventaja exclusiva del free software con la que no cuenta el open source. Apple ha liberado algo de su codigo fuente, pero a pide que cualquier cambio sea regresado a ellos para su aprobacion y una posible introduccion de este parche en versiones subsecuentes. Tambien prohibe el uso de software modificado para usos particulares, exige que todos los cambios sean publicados. Definitivamente Apple ha avanzado hacia una licencia libre, pero todavia no llegan a ella. Lamina 9 - La ventaja Educativa Una ventaja primordial del software libre es que es educativo. Si yo quiero convertirme en un escritor de libros, puedo ir y comprar una novela de mi autor favorito, leerlo y descubrir el estilo. Si quiero ser realmente bueno, puedo comprar muchos libros, leerlos todos e ir conociendo mas del tema que quiero escribir, llamese novela, poesia, ensayo. Ademas, siempre puedo ir a una escuela o contratar a un tutor para que me ensenie redaccion. Pero nada en una escuela puede superar a lo que yo aprenda leyendo. De la misma forma, puedo aprender a construir una casa viendo los planos de la misma o armar un juguete para mi hijo leyendo las instrucciones. Cualquiera de estas actividades no entrania ningun secreto, como no sea el punto exacto de la mezcla de arena, agua, cal y cemento necesarios para el empaste de las paredes que quiero levantar en la supuesta casa. Junto con los planos, las instrucciones o las palabras originales, la practica puede hacer de mi un buen maestro en una de estas actividades, y si a eso le aniado una educacion formal o informal, puedo dominar en un tiempo razonable la materia. Una casa, un juguete y un libro son objetos que puedo tocar y desarmar para aprender como estan construidos, que materiales fueron usados. A diferencia de un programa en forma binaria que ademas esta protegido por un copyright, una patente o una ley. En una clase de literatura, pueden hablar de un cierto libro en particular, hacer que los alumnos lo lean y despues escriban un ensayo elogiando la prosa o haciendole ascos al estilo del autor. Eso se llama aprender literatura. Sin embargo, en un mundo donde el software propietario prevalece, es imposible para un estudiante promedio acceder al codigo de un programa de uso comun, modificarlo y ver como se comporta en diferentes situaciones y con los cambios introducidos. Los cursos de programacion se hacen con bases teoricas, como si de filosofia o etica se tratara. Se ensenia un lenguaje a los alumnos, se les pide desarrollen algun ejemplo usando las nuevas herramientas, una vez que hacen eso se da por enseniado. Eso no se llama aprender programacion. El uso generalizado del software libre permitira a un estudiante de programacion o de materias equivalentes, acceder al codigo fuente, modificarlo segun sus necesidades de investigacion y distribuirlo a otros individuos o entidades sin tener que pedir permiso o pagar por ello. Tambien debe ser posible aplicar parte del codigo ya escrito para construir nuevos programas. Eso es a lo que yo llamo aprender programacion. Lamina 10 -- La ventaja economica Como lo exponia al principio, una concepcion equivocada generalizada acerca del software libre es que este no cuesta nada: que por este tipo de software se debe cobrar nada o casi nada. Esta es una idea, quiza para algunos nueva, completamente falsa. En realidad se insta a la gente a que cobren tanto como puedan o quieran cuando distribuyan software libre. La confusion se origina debido a que en el idioma ingles, solo se cuenta con una palabra para definir algo que es gratuito, que no tiene costo y algo que es libre. Free software puede significar sin costo o libre. Afortunadamente en castellano existe tal diferenciacion: cuando hablamos de libre no estamos implicando el tema economico. Hablando en terminos generales, el software libre es aquel que cumple con cuatro condiciones basicas: El usuario puede 1. correrlo las veces que quiera en la situacion que desee. 2. cambiar el programa. 3. Distribuir el programa con o sin cambios. 4. Hacer publicos los cambios que ha hecho al programa, si los hubo. Estas son las unicas reglas para considerar un software como libre. Si ponemos atencion, ninguna de estas cuatro condiciones basicas habla del dinero, de costos, de valor. Esto no hace ninguna diferencia. Alguien puede vender un paquete cerrado de un programa propietario por una suma increiblemente alta u ofrecer una copia sin costo a un amigo, sin que esto convierta en libre a ese programa. Con costo o sin el, el programa no es libre porque no ofrece las cuatro libertades basicas. Lamina 11 Redistribuir software libre puede ser un buen negocio. Algunas empresas, por dar un simple ejemplo, estan vendiendo una caja con algunos discos compactos conteniendo una version de GNU/Linux. Otras, venden sistemas de punto de venta basados en PostgresSQL, un manejador de bases de datos semi-libre. Y las distribuciones de GNU/Linux casi siempre contienen otros muchos programas libres (y a veces no tan libres). Ese es su negocio, y hablaremos de ello y de otros modelos de negocios mas adelante. Por lo pronto dejamos en claro que es posible tener negociar con este software y que no necesariamente lo que es libre es gratuito o viceversa. Lamina 12 -- La ventaja del desarrollo sostenido "Si he visto mas alla que los demas, es porque me he apoyado en hombros de gigantes", dijo Newton. La ciencia avanza porque no se descubre todo una y otra vez. La medicina moderna se basa en los descubrimientos que se han sucedido en los ultimos siglos. La fisica, la quimica y cualquier otra rama del conocimiento humano se benefician ampliamente de lo que ya sabe, de lo que es del dominio publico o que se encuentra escrito en bibliotecas para crear nuevos conocimientos. Teniendo software propietario se consigue precisamente lo contrario. Una empresa desarrolla un nuevo metodo y lo protege, vendiendolo como un binario solo ejecutable. Cinco anios mas tarde, alguien mas necesita ese metodo y debe reinventar algo que ya fue hecho, en vez de tomar el anterior y mejorarlo. Se pierden muchisimas horas hombre en este ciclo redundante y el arte de desarrollar software avanza a un ritmo mucho menor de lo que deberia. Un ejemplo que podemos mencionar en este punto: a principios del 99, la empresa de electronica Siemens comenzo a migrar sus sistemas SAP, basados en un sistema operativo propietario y obsoleto a uno con GNU/Linux. Sin embargo, se toparon con un problema: el kernel de Linux solo soportaba en ese tiempo 2Gb de RAM, lo cual suele ser muy poco en las aplicaciones de bases de datos intensivas y de alta criticidad. Siemens y SuSE, una de las empresas que trabajan vendiendo distribuciones de GNU/Linux, combinaron esfuerzos, desarrollaron un parche y consiguieron su adicion a la siguiente version del kernel. Con esto, obtuvieron lo que necesitaban sin tener que haber invertido millones en desarrollar su propio kernel. (3) Tomaron el que ya estaba hecho y lo modificaron. Alguien se imagina haciendo eso con otro software que no hubiera sido libre? No solo fue necesario que el codigo estuviera disponible, sino tambien que la facilidad del cambio fuera dada por el autor original, en este caso por Torvalds, desarrollador del kernel Linux. Lamina 13 -- Seguridad por metodo , no por oscuridad -- Comentario acerca de la conferencia de seguridad -- La seguridad se ha convertido hoy en dia en el tema de mas actualidad en cuanto al computo se refiere. Podria apostar que la mayoria de ustedes han escuchado en las ultimas semanas los danios causados por los viruses que en su mayoria se aprovechan de errores, fallas y puertas abiertas en sistemas de uso comun. Se calculan en millones de dolares las perdidas por dichos viruses. Los expertos no se han puesto de acuerdo, pero la mayoria seniala sin lugar a dudas que el free software y en particular el codigo abierto que se propone dentro de este esquema es mucho mas seguro, ya que el acceso a este codigo por muchos y no solo por unos cuantos, permite a cualquiera descubrir posibles fallas o codigo malicioso. En general, los problemas suelen ser mas rapidos de identificar y por ende resolver que en el software propietario. Los argumentos a favor de la seguridad en el codigo abierto son muchos y variados, pero la mayoria rondan alrededor de la "revision multiple", que consiste simplemente en que muchos tienen el poder de tomar un vistazo a lo que pasa debajo y detras de la interface, y las posibilidades de identificar y detener un problema a tiempo son mucho mayores. Esta idea es comunmente expresada en la frase de Eric Raymond -el gran abogado del codigo abierto- que reza "Dados suficientes ojos, todos los bichos se descubren". En contraste, los usuarios del software propietario son totalmente dependientes del proveedor para identificar y resolver fallas, y si bien es cierto que este proveedor tiene una motivacion economica para encontrar esos errores, tambien es cierto que un fabricante de software destina la mayor parte de sus recursos a proveer de nuevas caracteristicas en sus programas, que son mas visibles. Si hay que elegir entre resolver un escondido error en una rutina ya olvidada y proporcionar al usuario con una caracteristica vistosa, el resultado obvio es esto ultimo. Lamina 14 Los riesgos a los que se enfrenta una empresa que instala software propietario para aplicaciones que requieren alta seguridad se pueden resumir en cuatro puntos: 1. La no disponibilidad del codigo fuente reduce la adaptabilidad y la reparabilidad. - Una empresa puede descubir por si misma un error en el software que utiliza y creer que es tan fatal que puede alterar sus operaciones, por lo que se decide a hacer la modificacion por sus propios medios.El free software demuestra aqui la necesidad de su existencia, no solo es necesario tener el codigo fuente a la mano, pues es tambien es necesaria la libertad de modificarlo y usarlo en las nuevas condiciones. 2. La Inescrutabilidad del codigo prohibe la "revision multiple". - En el software propietario, tan solo unos cuantos programadores son capaces de cambiar un fallo aparente o visible, pero estan demasiado ocupados codificando las nuevas caracteristicas. 3. Falta de interoperabilidad, que a veces lleva a elegir soluciones complejas, pero monoliticas. - Un callejon sin salida: instalar aplicaciones que solamente pueden interactuar con otras aplicaciones del mismo vendedor puede resultar comodo al principio, pero es un callejon sin salida cuando uno de esos componentes debe ser remplazado por cualquiera que sea la causa. 4. Complicacion de integracion con otros sistemas debido a interfaces propietarias. En suma, los proveedores creen que el usuario debe confiarse en el codigo cerrado y propietario por un acto de fe, y el software libre es una salida obvia para quienes quieren evitar estos y otros riesgos en sus operaciones. Las herramientas GNU, por poner un ejemplo, han resultado ser mucho mas seguras que otras parecidas en ambientes Unix comparables. Un estudio llevado a cabo por Barton P. Miller y otros investigadores (4) demostraron que aunque los sistemas comerciales mejoran en cada version, las herramientas libres GNU llevan una ventaja importante en cuanto a seguridad se refiere. El anio pasado, la Agencia consultora de tecnologia e Informacion del ministerio del interior aleman, paso un propuesta para que las agencias federales alemanas adopten software libre y en particular software al que se pueda accesar el codigo fuente. La propuesta pone en primer termino el posible riesgo de seguridad por usar formatos propietarios, concluyendo que el "software de codigo abierto no es seguro per se, sino que es una precondicion fundamental para que la seguridad sea obtenida". (7) Resulto muy indicativo que al poco tiempo, los miembros del parlamento Frances han propuesto de la misma forma que las agencias y ministerios federales tengan una politica que les impida usar software propietario en sus operaciones. Citan las mismas razones, simplemente con diferente derrotero. En el area de la criptograficacion, las revisiones por parte de personas externas a quienes desarrollan los metodos matematicos de encriptacion se ha reconocido desde siempre com un elemento esencial en el desarrollo. La unica forma de probar fallas de seguridad en un software es probandolo, y la mejor forma de facilitar esa prueba es publicando el codigo fuente. El software libre usa estandares publicados y aceptados, lo cual facilita la interoperabilidad con otros programas. Ambas propuestas, la francesa y la alemana, hacen especial mencion en que el uso de estandares publicos es un punto de seguridad a considerar. Y es que muchos programas propietarios usan interfaces y formatos que limitan su uso a otros programas del mismo vendedor, o a un rango limitado de productos "autorizados". Ocurre que frecuentemente, este rango tan limitado de productos no cumplen con los requerimientos de seguridad del usuario, entonces se convierte en un fallido punto de seguridad. Lamina 15 -- Lo que no se ve Por supuesto, el uso de software NO libre tambien puede tener otras amenazas ocultas que no todo el mundo conoce. El software hoy en dia controla la manera como el mundo vive, se comunica y se hacen negocios. Los programas propietarios son tipicamente secretos, nadie sabe lo que en verdad hacen detras de bambalinas. Quien puede decirme si un software que estoy usando y del que no conozco el codigo no tiene puertas traseras, o manda informacion personal a un servidor en la red? Uno de los puntos mas problematicos son las posibles caracteristicas del software propietario que pueden estar escondidos al usuario final y del que este ultimo no tiene la mas remota idea de que existen. Por citar un par de casos, Microsoft y Real Networks hace poco levantaron una ola de protestas cuando se descubrio que ambos estaban usando Identificadores Unicos Globales interconstruidos en sus programas, para obtener informacion privada y sensible acerca de los usuarios. En ambos casos, las companias primero negaron para despues aceptar que estaban alimentando grandes bases de datos con informacion individual de cada usuario que estaba identificada precisamente con esos numeros unicos. Microsoft mantiene hasta hoy en dia que esto ayuda a dar mejor soporte a sus usuarios, manteniendo una base de datos con problemas especificos y un historial personal, pero que no habian contemplado los problemas eticos y sociales que estaban generando. Por otra parte, Real Networks dicen que esos numeros unicos fueron incluidos en el software de manera inadvertida -como si eso fuera posible-, y que de cualquier manera ellos no estaban usando esa informacion para nada. Las palabras casi textuales de David Brotherson, el vocero de Real Networks, fueron que "La compania no usa esa informacion para nada, de hecho, ni siquiera nos habiamos dado cuenta que estaba ahi". Estos dos fallos "inocentes" o no, de Microsoft y Real Networks son dos ejemplos conocidos de caracteristicas "no documentadas" que exponen informacion potencialmente danina de los usuarios, sin su conocimiento o su consentimiento, pero seguramente no son los unicos casos. Dejando las protestas de inocencia a un lado, la sola presencia de estas caracteristicas, es algo que debe tomarse en cuenta La propuesta francesa en particular, hace hincapie en este sentido y dice que para de resguardar la seguridad nacional, es necesario asegurarse que los programas usados en la administracion publica no sean capaces de mandar informacion a terceros, sin el conocimiento del usuario y por ningun motivo sean ademas capaces de permitir a esos terceros tomar el control de una estacion de trabajo. Los criticos dicen que el software en el que el codigo es publico, tienen mas posibilidad de convertirse en blanco de un ataque y un hoyo de seguridad. El problema con este argumento es que al parecer los crackers que se divierten creando viruses y otros ataques son tan capaces de encontrar vulnerabilidades tanto en software propietario como en el que no lo es. Los recientes ataques de virus contra servidores de correo basados en plataformas Windows asi lo han demostrado. Securityportal.com, un sitio de internet dedicado a la seguridad, como su nombre en ingles lo indica, llevo a cabo un estudio en el que comparo los tiempos de respuesta a las vulnerabilidades entre el software libre y sistemas propietarios. El estudio media el tiempo entre que se daba a conocer una falla y la disponibilidad de un parche, y compararon las respuestas a problemas de Linux distribuido por RedHat, Windows NT de Microsoft y Solaris de Sun. El descubrimiento fue contundente: por mucho, los mejores resultados en cuanto a rapidez se daban en Linux. (9) Por supuesto, que el codigo fuente este accesible no significa que alguien lo este leyendo y modificando para mejorarlo, o que todos los bugs han sido encontrados y resultos. Ciertamente la libertad para observar el codigo, cambiarlo e incluir estos cambios en una distribucion que da el software libre aumenta el nivel de seguridad de un programa y aumenta tambien la probabilidad que la mayoria de los errores hayan sido desterrados, pero no convierte automaticamente a un programa en un bunker. El primer paso esta dado, si, pero es necesario todavia trabajar mas. Alguien tiene que ver en el codigo y tener la suficiente capacidad tecnica de entenderlo y mejorarlo. Uno o dos millones de usuarios novatos leyendo un codigo de encriptacion probablemente no hara ningun bien, pero algunos cientos de programadores avanzados revisando el trabajo de los demas seguramente aumentara la seguridad en general. Lamina 16 -- La confiabilidad es clave Es un hecho que el software libre, con codigo abierto y susceptible de ser modificado es, la mayoria de las veces (no siempre), mas confiable. A primera vista esto pudiera parecer contradictorio, pero no lo es. Existen varias razones por las que un software desarrollado por una comunidad y no por una empresa, tienda a ser de mejor calidad. Una de las razones es que la comunidad completa, actuando como un todo, se ve envuelta en el proceso de desarrollo de cada pieza de software. Los usuarios no solamente reportan bugs o problemas, sino que adicionalmente y de manera sistematica, mandan parches o sugieren cambios a alguna seccion de codigo problematica. Los usuarios -ahora convertidos en co-desarrolladores- trabajan juntos sin ninguna organizacion jerarquica, conversando por email, llegan al fondo de los problemas y los resuelven eficientemente (5). Por supuesto, esto no es la norma para todo el software libre, pero en general es la manera como se comporta un proyecto. Otra razon importante es que los desarrolladores realmente se preocupan por la confiabilidad de sus programas. Los programas libres no siempre compiten por obtener resultados economicos, pero aun asi siempre compiten por una buena reputacion, y un programa que no se ejecuta satisfactoriamente y da los resultados esperados, nunca tendra la popularidad que los desarrolladores esperan. Mas aun, un autor que publica su trabajo, pone algo mas que el codigo en linea: tambien esta exponiendo su reputacion personal, y mejor tendria que hacerlo bien si no quiere obtener como repuesta la desaprobacion de la comunidad. Este ultimo ha sido llamado por algunos el "factor ridiculo": Si alguien puede ver tu codigo fuente entonces tendras algun incentivo por hacerlo mejor, pues sabes que de otra manera esa otra persona se morira de la risa cuando vea los terribles errores que has cometido. De ahi que un programador tratara de poner lo que este de su parte porque el programa sea al menos funcional y limpio. Se dice que los programadores son personas perezosas y no creo que haya una mejor forma de describirlo. Un programa comienza cuando alguien tiene un problema que quiere resolver por medio de la computadora. A veces es un problema repetitivo o de aburrida complejidad, de tal manera que comenzamos con algo pequenio que simplemente resuelva temporalmente dicho problema. Con esto tenemos otra ventaja de un software no-diseniado comercialmente: Alguien usa el software. Los programas comerciales estan hechos para ser vendidos, no usados. Una caja bonita, con un manual impreso en un papel brillante y un medio magnetico u optico con el logo a todo color de la empresa es lo primero con lo que el usuario tiene contacto. En contraste, que el programa es funcional es lo primero que se ve cuando se obtiene un software libre: podemos asegurarlo, ya que por lo menos una persona (el programador) lo usa!. Lamina 17 -- Desventaja mitica: El soporte Cuando una empresa de cualquier tamanio se decide por un programa en especial, sea para llevar sus registros de contabilidad, sus movimientos de inventario o cualquier otra actividad dentro de sus operaciones comerciales, un error comun es elegir software propietario debido a que es el unico que cuenta con un "soporte". No podemos culpar al empresario o al ejecutivo de tratar de obtener un respaldo sea o no pagado por parte de otra empresa, puesto que estan confiando en que esa herramienta funcionara para el uso que la estan destinando, y si no es asi, hacer que el proveedor solucione el problema. El software en general tiene un modelo de calidad diferente a otros productos, como pudiera ser un automovil, un rascacielos o una hamburguesa. De manera global, si una persona compra un producto fisico y resulta daniado por un defecto de manufactura, siempre se puede demandar legalmente el pago de dichos danios, y generalmente se gana. Un fabricante de automoviles no puede simplemente ignorar o zafarse de un pleito por un auto que explota cuando choca (preguntenselo a Ford y su modelo Pinto). Un restaurante de comida rapida no puede simplemente dar la espalda al cliente que le muestra una hamburguesa con una cabeza de rata dentro. Una compania constructora simplemente no puede decir "Ups, se nos cayo el nuevo edificio de 50 pisos que acabamos de construir. Pero no se preocupen la version rascacielos 2.1 sera a prueba de colapsos". Todas estas companias son responsables de sus productos. El software es diferente: es vendido (o distribuido, como generalmente pasa en el caso del software libre), sin ninguna responsabilidad civil, moral o penal. Es comun ver en las licencias "En ningun caso el fabricante puede hacerse responsable por el fallo o danios causados por usar este programa". (2) De tal manera pues, que el comprar un software propietario solo por obtener un respaldo de una empresa es una seguridad aparente. Si bien es cierto que el soporte puede ser mas organizado o profesional en el caso de una empresa grande, es posible cada dia mas, encontrar empresas que se dedican a ofrecer cursos, soporte e incluso desarrollo a la medida usando software libre como base. Cada dia surgen nuevas empresas que se dedican a dar soporte institucional o personalizado a usuarios de software libre. Por supuesto, el principal producto a soportar es el sistema operativo GNU/Linux, con mucho el mas famoso de los productos que han surgido a partir de la filosofia del software libre. Como ejemplos podemos nombrar a Siemens, SuSE, RedHAT, los programadores que mantienen GNU Ada y gcc, y muchas muchas empresas se agregan a esta lista cada dia. Por supuesto, no podemos dejar de contar a los profesionales que se dedican por su cuenta a asesorar o enseniar a otros. Lamina 18 -- La ventaja democratica A veces se ha tachado, sobre todo por parte de una nueva corriente dentro de Microsoft, de que el movimiento para el software libre es "comunista". En realidad se trata de lo contrario, el software libre es una alternativa democratica. La licencia GPL fue diseniada para asegurar que los derechos del pueblo -de ahi la palabra democracia-, es decir de la gente en general, sean defendidos y no puedan ser escondidos debajo de las faldas de una organizacion privada. Ademas, una verdadera democracia no se opone a obtener resultados economicos de una actividad comercial, como ya les he indicado; pero tambien es completamente cierto que toda actividad comercial debe tener un cierto codigo de etica y respeto por sus clientes. El software libre es una alternativa para la globalizacion corporativa, que tiene la potencialidad de acabar con la monopolizacion de la tecnologia para siempre y puede llevar a un nuevo modelo de economia en este sentido. Un software liberado bajo la licencia GPL, por ejemplo, implica que nadie tiene el poder de restringir el uso del mismo, incluyendolo en forma retroactiva. Esto reviste especial importancia cuando un proveedor de software propietario decide no producir una nueva version de algun producto en especial. En este caso, los usuarios puede optar por seguir usando la vieja version o cambiar de producto. En el caso del software libre, cuando un programador o un grupo de programadores decide dejar un proyecto, significa que cualquier otro puede continuar o tomar su trabajo anterior como base para un nuevo proyecto. Dependiendo de la necesidad del propio usuario, puede encontrar un programador que este dispuesto a hacer estos cambios, quiza con una paga. El futuro de un proyecto de software libre no depende de una corporacion, empresa o individuo en especial. Supongamos que una empresa usa para sus operaciones un programa propietario y depende de un proveedor unico para obtener mejoras o nuevas caracteristicas deseadas. Si ese proveedor cierra sus puertas o simplemente, decide derogar el desarrollo ulterior del paquete, nadie tiene el derecho o la posibilidad de continuar dicho desarrollo, efectivamente matandolo. Esto no es una teoria mia, ha pasado muchas veces, y amplificado en los ultimos meses, donde algunas empresas se han combinado en corporativos mas grandes que usualmente terminan canibalizando algunos de sus respectivos productos para crear uno estandar en la nueva empresa conjunta, a veces para combinar caracteristicas o para obtener un solo pedazo del mercado. El software libre protege a los usuarios en contra de este escenario, porque si un proyecto es abandonado, siempre es posible contratar a uno o mas programadores para continuarlo por cuenta propia. El software libre provee de un foro para la accion democratica. Los individuos y las organizaciones comerciales, las companias, las empresas transnacionales, deciden cada uno y de acuerdo a sus propios intereses cuando y como hacer cambios y mejoras en el software que usan, la colectividad de todos ellos determina el proceso de mejora y el futuro de un proyecto en especial sin presionar a nadie. La gente que tiene opiniones marcadas sobre como deberia funcionar o que ventajas y caracteristicas debe tener un programa puede invitar a otros a sumarse a su causa y de este modo influenciar la direccion del mismo hacia el futuro, pero sin elecciones en las cuales el deseo de la mayoria pueda arrasar con los deseos de la minoria. Teniendo todos el mismo acceso al codigo fuente, se tiene la posibilidad de aplicar cualquier cambio, aunque sea una sola persona la que lo desee o necesite. Lamina 19 -- El costo Libre no es gratuito. El costo de iniciar las operaciones de una empresa con software libre, es relativamente bajo, pero no cero. A veces los que promovemos de alguna manera este tipo de software cometemos una exageracion al decirle a alguien que queremos convencer, que no tendra que gastar nada, pero esto es un error garrafal. Pongamos como ejemplo que una empresa quiere instalar GNU/Linux es sus computadoras. La primera erogacion viene del tiempo, esfuerzo y el costo mismo de los estudios que se hacen generalmente en las empresas para determinar que un software es superior a otro y que les servira mejor para los fines que lo desean aplicar. Despues, A menos que se conecten a internet y descarguen una distribucion, tendran que gastar en comprar una, lo que es la desicion mas acertada en mi punto de vista, pues generalmente algun manual por pequenio que este sea vendra incluido con instrucciones iniciales de instalacion. Habra que entrenar al encargado en sistemas, ya sea tomando un curso o un taller de GNU/Linux de los que por cierto, comieza a haber muchos. Despues habra que entrenar a los empleados en el uso correcto de las aplicaciones. Todo esto, es la inversion inicial. Y es mucho mas bajo que si hubieran comprado, en primer lugar, licencias por el uso de software propietario. Lamina 20 Sin embargo, en una empresa que ya esta funcionando y que tiene una plataforma propietaria el costo es mucho mas alto, puesto que ya han derogado el gasto inicial y tendran que hacerlo de nuevo. En este caso, la inversion es a un plazo mucho mayor. Un gerente podria asustarse -con justa razon- si le recomendamos un cambio que implique invertir de nueva cuenta, gastar en entrenamientos para personal tecnico y administrativo, quiza comprar mas hardware para soportar las operaciones dobles mientras la migracion se lleva a cabo y no dejar de tomar en cuenta que muchos empleados resultan con una productividad muy por debajo de los normal cuando se les cambia su herramienta normal de trabajo. Creanme, en una empresa con mas de algunos empleados, esto puede implicar mucho dinero y no todos los gerentes o encargados estan dispuestos a gastarlo. Pero por otra parte, como les he dicho, esta migracion persigue fines a un plazo mayor, dependiendo del tamanio de la inversion, puede ser que el siguiente anio, cuando llegue el tiempo de renovar licencias y no tengan que hacerlo, entonces se amortize. Quiza tambien se den cuenta que no hay que actualizar el hardware en uso cada seis meses, pues GNU/Linux puede ejecutarse en sistemas con menos memoria y capacidad de procesamiento que un Windows NT, simplemente por poner un ejemplo. Cada caso, sin embargo, es particular y deben tomarse medidas y analisis igualmente particulares. Lamina 21 Las universidades y otras instituciones y entidades educativas pueden jugar y de hecho juegan un rol importante en el monto de la inversion que una empresa requiere para instalar software libre. En la lamina anterior les mencionaba que uno de los costos iniciales de una migracion es precisamente el entrenamiento del personal para el uso de un software diferente. Pero con ingenieros educados en las diversas plataformas, es posible que dicho entrenamiento sea menor del esperado o que no sea necesario del todo. Es de mi agrado que la Universidad de Bucaramanga este organizando estas platicas, lo que significa que esta abriendo las puertas a nuevas oportunidades para los estudiantes e investigadores. No es la primera que lo hace y ni seria la primera que instalara laboratorios con sistemas operativos alternativos. Pero desafortunadamente no es la norma todavia, existen algunas Universidades que optan por enseniar a usar "el producto del lider", sin tomar en cuenta que estan viciando su proceso pedagogico, convirtiendo algo que deberia ser educativo en algo meramente informativo. Un ingeniero o licenciado en computacion debe ser capaz de - Estar informado de las diversas opciones que existen en el mercado. Aprender el presente y mantenerse al tanto de los cambios en el mundo de la computacion. - Saber escoger entre esas diferentes opciones. - Planear con profesionalismo una migracion hacia la opcion escogida - Mantener la base instalada, una vez que esta ultima ha sido lleva a cabo. Lamina 22 -- Costo 2: el ahorro cooperativo Otra variante de la ventaja economica es el hecho que varias companias pueden participar en un proyecto conjunto, ahorrandose dinero por el simple hecho de no desarrollar todo un sistema por si solos, sino solamente una parte del mismo, y la cooperacion de mas empresas solo tiene como resultado ahorrar mas dinero. Un ejemplo practico es el caso del servidor de Web mas utilizado en el mercado y que le lleva una amplia ventaja a sus competidores mas cercanos: el servidor Apache. Este comenzo como un esfuerzo conjunto entre varios individuos de diversas organizaciones que tenian un fin comun: el desarrollar un servidor robusto y confiable de Web. Cada una de esas organizaciones tenia los suficientes motivos -y medios- para desarrollar su propio programa, pero comprendieron que para lograr un fin conjunto de esta magnitud, deberian tener asimismo unos medios conjuntos, asistidos por la cooperacion. Otro caso es el de un grupo de empresas desarrolladoras de programas en Mexico que se han unido para desarrollar un sistema, no solo de software sino logistico tambien para dar soporte a sus usuarios. De esta manera, cada uno de los participantes solo proporciona una parte de los medios, que de otra manera tendria que haber solventado en su totalidad. No importa que tanto participen cada una de ellas y si esta cooperacion es igualitaria o no, el modelo de cooperacion siempre garantiza una eficiencia mayor a la de la actuacion en solitario. El software propietario, en contraposicion, rompe dicha cooperacion entre programadores que pertenecen a diferentes organizaciones economicas, aun cuando dicha cooperacion hubiera sido benefica para ambas organizaciones. Adicionalmente a las otras ventajas que he mencionado y que me faltan por mencionar, hay muchos otros motivos por los que una empresa deberia decantarse por usar programas libres. A veces, los tenedores de los derechos del copyright castigan por medio de una demanda legal a una empresa que se "roba" el codigo fuente y se evita un desarrollo copiando parte de otro previo. Desde las reglas del software propietario, eso tiene sentido. Pero si lo vemos desde un punto de vista mas general, esas reglas solo causan una ineficacia que a fin de cuentas no es necesaria, ayudan a construir monopolios y no dejan crecer a la industria de manera global. Siendo optimistas, ese es un comportamiento egoista. Como sumario, las principales ventajas de desarrollar software libre para una empresa se pueden enumerar de la siguiente manera: - Se reciclan ideas usadas en el pasado por alguno de los participantes del proyecto, aportando asi conocimiento previo que sirve para el avance general. - Se Acelera el proceso de desarrollo, al aumentar el numero de programadores en el proyecto. - Se obtienen ahorros, ya que solamente se participa con una parte de la inversion, pero se obtienen todos los beneficios. - Igualdad de condiciones con otras empresas del ramo, lo cual crea un ambiente sano de competencia. Lamina 23 -- Caracteristicas contra funcionalidad El software propietario es planeado, desarrollado y empacado para ser vendido, no usado. Aquellos que crean este tipo de programas lo hacen por una recompensa economica, mas que para ontener una una herramienta util para y usable. La unica motivacion para crear un codigo que trabaja, limpio y libre de errores es la perdida del empleo del programador y como relativamente poca gente tendra acceso a la parte interna del programa, entonces el desarrollador tiene muy poco interes en hacerlo limpiamente. Las caracteristicas nuevas o mejoras a las existentes son agregadas solamente a partir de decisiones de marketing, generalmente no como necesidades de los usuarios. En contraste, el software libre nace basico, nace simple. Una pequenia herramienta que despues es publicada. Como ya hemos dicho antes, el primer usuario es el desarrollador original, que generalmente detiene el proyecto cuando este cumple las expectativas originales. Pero de repente, alguien mas ha descargado su programa y nota que para que esta herramienta le sea util, es necesaria una nueva caracteristica, que probablemente el autor nunca imagino. Asi pues, con toda libertad, agrega alegremente esta caracteristica y de nuevo vuelve a publicar los resultados. Es probable que el autor no vuelva a tener conocimiento de su herramienta, hasta que ha vuelto famosa, pero como regla general esto no pasa. Quien desarrolla un programa y lo libera se convierte pronto en el "maintainer", la persona que lo mantiene, le agrega los parches que el publico le envia y escribe un poco de documentacion, si es que le deja tiempo. En el caso de un programa que se vuelve muy famoso, esta actividad apenas le deja tiempo libre al programador de agregar cosas por su propia iniciativa. Este modelo de desarrollo, en donde las caracteristicas son agregadas a medida que se necesitan, y no como desiciones de una gerencia es ampliamente reconocido como un modelo ideal. El software que pudo comenzar como una pieza de codigo de regular calidad tiende irremisiblemente a mejorar conforme su base de usuarios crece. Las prioridades caracteristicas del software propietario, con una entidad economica presionando por fechas de publicacion o distribucion o caracteristicas especificamente requeridas son inexistentes en el software libre. Esto es como consecuencia de no tener una empresa a quien rendir cuentas. El software libre se libera cuando "esta listo", no antes: cuando el grupo de desarrollo cree que tiene suficiente calidad y que todas las modificaciones necesarias han sido hechas. Este nivel de calidad significa que no son necesarios tantos "service packs" o "parches" como es bien conocido, reduciendo el costo de mantenimiento. Por supuesto esto puede ser una desventaja si una caracteristica es retrasada de una otra version indefinidamente o los tiempos entre versiones no son razonablemente cortos. En este caso, la competencia entre diversos proyectos similares ayuda siempre: si uno de ellos comienza a no llenar las expectativas de los usuarios, a veces se genera un "fork" y otro grupo de desarrolladores continua con el proyecto. Lamina 24 -- Ventaja sectorizada Las ventajas del uso del software libre no son iguales para todos, esto es un hecho. Cada organismo o institucion tiene sus propios motivos por los que el usarlo en sus operaciones comerciales o particulares puede llegar a ser ventajoso. Para una gran empresa, donde las condiciones de trabajo y las necesidades son especificas, el poder modificar un programa para adaptarse a esas necesidades sin tener que esperar un "update", un parche o un "service pack" es una ventaja competitiva y le puede significar el continuar dentro del negocio. Muchos de los ejemplos que he usado y las comparaciones son precisamente de ventajas que pueden serles mas provechosas a una corporacion, pues es precisamente el medio donde me desenvuelvo y tengo mas experiencia. Les pido de ya, perdon por la parcialidad. Siguiendo con la sectorizacion, Una empresa mediana podria estar preocupada por los costos de licencias y certificacion, encontrara que el software libre es un alivio en las finanzas, al no tener que pagar en la mayoria de los casos por ninguno de estos rubros. Un profesionista independiente dedicado a la computacion podria tomar una pieza de software y adaptarlo a las necesidades especificas de un cliente, tomando ventaja economica que ello. Los usuarios en general, que no se dedican a la computacion, obtendran por el uso de este software, una calidad sin precedentes y el beneficio que redunda automaticamente de no estar atado a un solo proveedor. Recuerden, la competencia mata a la incompetencia. Hay otras ventajas que son generales, como por ejemplo, el adaptar estandares de comunicacion o de transferencia de informacion. Hay que hacer especial hincapie en esto ultimo, ya que incluye desde como se forma un paquete para transmitirlo por una red local o global hasta como se graba una imagen dentro de un archivo en un procesador de textos. Estas son pues, expuestas de manera llana, las que yo considero son las ventajas de usar, promover, recomendar y desarrollar software libre. Una vez que les he convencido, habra que pensar en el futuro, por ejemplo, Lamina 25 El futuro. Hay que aprender a vivir con el software libre, y para eso , los profesionistas y las empresas deben aprender en primer lugar a hacer un tipo de negocios nuevo, basados en modelos emergentes de economia. Es decir, para vivir con el software libre hay que aprender a vivir DE el. Lamina 26 -- Viviendo del software libre. Una ventaja que a muchos preocupa, pues no es tan evidente, es que si el software libre es una actividad que pueda dejar dividendos economicos para los que se dedican a ella, sea como programadores, distribuidores de software o prestadores de servicio. Como, como es posible obtener dinero a partir de algo que no tiene un valor monetario establecido? Alguien me preguntaba alguna vez, viendo el tremendo impacto de la recesion economica en las empresas punto com de la internet, me pregunto si era posible que alguien hiciera realmente dinero a partir del free software. Es una respuesta dificil. Mientras algunas grandes companias basadas en la distribucion del software libre (particularmente hablando de Linux, como es RedHat y VALinux) pierden millones de dolares cada cuarto de anio, existen otras instituciones, generalmente empresas pequenias, o individuos que estan teniendo ganancias a partir de esto. Yo mismo soy una prueba de ello, aunque no recibo honorarios por dar platicas, escribir columnas o participar en la fundacion para el software libre, debo reconocer que tengo mi trabajo gracias a mi interes por el . Quien me contrato en la compania donde laboro actualmente, lo hizo porque yo sabia usar GNU/Linux. El software comercial tiene sentido. Las empresas escriben software para venderlo y se embolsan cierta ganancia a partir de esta actividad. Crece la base de usuarios, mas cajas bonitas son vendidas y un dia el mercado por fin se satura. Todos los usuarios que necesitan este software o que les ha gustado lo suficiente para comprarlo, ya tienen una copia. A diferencia de las empresas que venden lavadoras o televisiones, que saben que sin lugar a dudas estos aparatos tendran que averiarse y el usuario comprara otro, el software no es un producto fisico que sufra de degradacion, a menos que contemos con los hongos que suelen salir en los medios magneticos. De tal forma, el software no es un elemento tangible. Puede ser copiado facilmente, sin detrimento de las copias subsecuentes -y resguardado asi de los hongos daninos-, lo que crea un problema cronico para los desarrolladores de programas: si se incluyen todas las caracteristicas necesarias, estabilidad, rapidez y todo lo que un usuario quiere de un programa, no se le podra animar a comprar una nueva version. La necesidad de hacer "upgrades" debe ser, pues, inducida. Una empresa que produce un software que hace todo lo que el usuario necesita, esta condenando este software a morir, incluyendo las ventas, las ganancias y la propia compania. Una manera simple de hacer que el usuario compre una nueva version, es nunca darles lo que quieren: es un truco de hecho muy viejo y funciona de la siguiente manera: La empresa promete que una version nueva hara exactamente lo que el cliente quiere. Este va, compra la nueva version o quiza una -mas barata- version de upgrade solo para darse cuenta que falta uno que otro componente vital. No hay de que preocuparse, dice el vendedor, con solo comprar la nueva version se podra obtener ese componente. Cuando la nueva version sale, el usuario la compra..... y asi hasta el infinito. Construir software que no cumple las expectativas del cliente es una necesidad de sobrevivencia de las empresas desarrolladoras. Hay otra posibilidad, y es que la empresa gane reputacion por hacer excelentes piezas de software que nunca fallan y que llenan todas las necesidades del usuario, sin embargo, su sotfware es tan bueno que lo unico que pueden hacer es estar produciendo muchos programas que llenen diferentes necesidades. Esto cuesta mucho mas, puesto que cada programa tiene que ser escrito desde cero en cada ocasion, y debe ser soportado, anunciado y vendido por separado. Hasta el momento, no se de ninguna compania que haga este tipo de negocio. Es cierto que el modelo economico ha cambiado irremisiblemente, y debera hacerlo aun mas. Seguiran perdiendo sus millones aquellas empresas que no se adapten a las nuevas circunstancias. Muchos todavia se preguntaran como es posible que alguien saque partido de algo que es libre. Y es que pocas veces nos ponemos a comparar el software con otros aspectos de la vida cotidiana que tienen vertientes parecidas, muy similares. Tomemos por ejemplo el caso de las recetas de cocina. Hacer un programa de contabilidad es mucho mas complicado que escribir un metodo para hacer un pay de manzana, pero en escencia es lo mismo: la receta no describe como obtener los ingredientes, solo el metodo como deben mezclarse y cocinarse. Igualmente un programa solo es un metodo de calculo descrito en terminos de un lenguaje computacional. Y alguien se ha preguntado porque existen los restaurantes? Hacer una hamburguesa es cosa sencilla, y aun asi McDonalds no deja de instalar nuevos restaurantes en todo el mundo: pero hay algo que pocos se ponen a ver, y es que McDonalds no vende hamburguesas por ser especialmente sabrosas, sino por todo el ambiente que rodea al comprador, la atraccion de los juegos para los ninios y mil cosas mas. Hacer un buen programa es algo que requiere mas que saber usar la sal y la pimienta, sin embargo hay quienes tienen miedo de publicar su trabajo, por temor a no tener suficiente dinero para seguir trabajando. Por supuesto, si solo se dedican a vender el software, estan condenados a desaparecer, sean una gran empresa o un programador independiente. El futuro de ellos esta en ofrecer servicios adicionales a los que tipicamente conocemos. Ofrecer buen soporte, upgrades por un cierto tiempo de manera gratuita, contratos de asesoria, vender el hardware en el que se instalaran los programas. Lamina 27 Si, es mas complicado, pero si a alguien le asusta eso, entonces ya puede comenzar por buscar una buena receta de hamburguesas para comercializar. Las empresas que estan ganando dinero estan usando alguna de las siguientes tecnicas reconocidas: - Vender contenido La tecnica mas usada por las empresas de internet. Pongamos como ejemplo el boom que vemos en los llamados "mensajeros instantaneos". Estas empresas obtienen como resultado de sus operaciones ganancias sobre la publicidad que venden junto con el contenido que proveen. Si Yahoo! o Hotmail se decidieran a abrir su codigo fuente y liberar bajo licencia GPL, su cliente de mensajeria instantanea, por poner un ejemplo, no perderian su mercado ni potencial ni real. Al contrario, habria muchos programadores dispuestos a agregar caracteristicas nuevas como ha sido la transmision de archivos o voz hasta la portacion de este software a otras plataformas. - Vender la tecnologia. Es posible generar una tecnologia y liberar el software necesario para hacerla, conservando los derechos sobre la tecnica o los criterios de compatibilidad. Entonces podria venderse por poco o mucho dinero, segun el tipo de mercado, una certificacion que indique que tal o cual proyecto cumple con las caracteristicas requeridas. - Vender el presente en aras del futuro. Un proyecto puede desarrollarse y venderse en el presente incluyendo una clausula en su licencia para que sea liberado en el futuro cercano o lejano. Esto puede traer cierta lentitud en el proceso de maduracion cerrada del software, pero le da un buen respiro financiero a las empresas para recuperar hasta cierto punto la inversion que fue requerida para el desarrollo. - Vender accesorios. Este es quiza el modelo de venta de software libre mas rentable. Un proyecto puede ser usado como un gancho para vender accesorios, de la misma manera que ahora las companias de telefonos celulares "regalan" el aparato a cambio de vender el servicio. Algunos venden camisetas, llaveros, discos compactos con versiones del software, un pinguino de peluche, o proveen de servicio especializado cobrando por caracteristicas que alguna empresa requiera para sus operaciones. Otros pueden publicar libros sobre el uso de sus programas o vender de manera separada una bonita edicion de los manuales. - Regalar la razuradora, vender hojas de razurar. Como ya lo comente, el que una hamburguesa sea facil de preparar no significa que un restaurante que se dedique a comercializar este tipo de productos no pueda prosperar. Eric Raymond, el ideologo principal detras del movimiento del codigo abierto fue el primero que enuncio de manera clara este modelo de ventas. En cierta forma, las empresas como SuSE o RedHat siguen este modelo. Ellos no venden el software pero proveeen de aditamentos necesarios como el soporte. Para llamarlo simplemente, estan creando un mercado regalando el punto inicial y vendiendo los servicios relacionados. - Venta de Hardware Hace mucho tiempo que HP abandono su sistema de venta de HP/UX, y aunque no es completamente gratuito, ni mucho menos libre, este sistema operativo es de cierta manera proveido sin muchas preguntas a aquellos que compran su hardware. Cobalt networks, ahora una empresa dentro del corporativo de Sun microsystems, comenzo haciendo un hardware en el que instalaban una version ligeramente modificada de GNU/Linux. De igual manera que en el modelo anterior de ventas, no estaban vendiendo el sistema operativo, sino el hardware implicado. Otras empresas estan siguiendo esta forma de hacer negocios, sobre todo aquellas que comienzan a implicarse en el mercado de los aparatos conectables a internet. Con un software que es distribuido como parte de un hardware y liberado bajo una licencia que otorgue la libertad al usuario de cambiarlo, la empresa puede obtener la sorpresa que alguien se tome la molestia de cambiarlo y adaptarlo a otras plataformas. Sin haber invertido un solo dolar en ello. - Regalando software libre para obtener mercado Esto lo llevan a cabo las empresas en que su negocio es diferente al de hacer software. El mas conocido ejemplo de este modelo de ventas es Netscape, que a comienzos del 98 hizo publico su codigo fuente del navegador del mismo nombre. Hay que recalcar que la licencia bajo la que lo publico no lo hace completamente libre, pero definitivamente marco un avance en cuanto a la forma de hacer negocios. Lo que Netscape queria era obtener una porcion de mercado que le habia estado ganando el competidor principal, el Explorador de Microsoft. Pero para ese entonces, la venta del navegador no constituia la principal entrada de dinero a la compania, sino la venta de publicidad en su sitio de internet y otros productos como el servidor de web Netscape. Asi pues, con una base instalada de usuarios, la compania pudo subsistir hasta su compra por AOL, quien ha remarcado desde entonces que seguira soportando el proyecto Mozilla, por tiempo indefinido. Lo que la compania queria, no era apoderarse del mercado de los navegadores, sino atraer a mas usuarios a su portal, que es la verdadera entrada de dinero para ellos. Lamina 28 -- Que hacer El manejador de ventanas en mi computadora dice que me muestra 32millones de colores, aunque francamente nunca me he puesto a contarlos para comprobarlo. De esos 32 millones, solo uno es blanco y otro es negro, todos los demas son la gama intermedia entre esos dos extremos. De la misma manera, cada programa es unico, tiene sus propias ventajas, caracteristicas y errores independientemente de si es software libre o no. Una empresa, de la misma manera que un estudiante cuando decide por fin instalar un sistema operativo no propietario, puede cometer varios errores. El primero puede ser ir demasiado rapido. La naturaleza humana es sensible y contraria al cambio. Si los empleados de una empresa llegan un dia a trabajar y se encuentran con que todas sus herramientas de trabajo han sido cambiadas, no se pondran a ver si son o no mejores, sino que le encontraran todos los fallos y los magnificaran. No a toda la gente le gusta experimentar con nuevos programas: eso es nuestro trabajo, no el del contador de la compania. Asi pues, y por citar un ejemplo, supongamos que una empresa quiere dejar de pagar los miles de dolares que deroga cada anio por las licencias de su sistema operativo y los programas asociados con el. En mi particular punto de vista, el primer paso es cambiar de uno por uno los servicios de oficina tales como impresion, conexion a internet o a otras sucursales, servicios de intranet o el servidor de archivos general. Una vez que se ha establecido una plataforma libre, entonces se puede comenzar a migrar las terminales de los empleados, hay que comenzar con los encargados del departamento de sistemas, y permear ese cambio a los demas departamentos. De la misma manera, las aplicaciones deben tomar un camino parecido. Primero el cliente de correo a uno estandar (y de paso que no sea tan vulnerable a los virus de hoy en dia). Por supuesto tendremos que haber cambiado el servidor de correo anteriormente, ahi radica la importancia de migrar la plataforma de servidores primeramente. Despues podrian comenzar los cambios en las aplicaciones de oficina como procesadores de texto u hojas de calculo. Mientras todo esto pasa, quiza el departamento de sistemas tenga tiempo de desarrollar o portar las aplicaciones especificas de la empresa, que no se compren en una caja listas para usarse. Olvidamos con frecuencia que el software no es inmortal: la mayoria de los programas tienen un ciclo natural de vida siendo poco a poco remplazados por lo mejor, mas rapido y mas eficiente. Es la ley de la vida, que incluso aplica a los programas. Las organizaciones con buenos planes de vida para su software ,a veces llamados "roadmap", tienen en cuenta estos ciclos para dibujar su meta en la ingeniera de software. Lamina 29 Creo que la mejor manera de proceder para una empresa es hacer una reingenieria de la base de sus sistemas propietarios y cooperar intensamente con otras empresas para lograr construir una plataforma a partir de la cual se puedan obtener programas especificos para cada institucion. En otras palabras, reconstruir su infraestructura de software desde cero, pero ahora bajo la licencia GPL. Habiendo tantos proyectos diferentes, habra que dislucidar una estrategia diferente y especial para cada uno de ellos y experimentar con las situaciones hasta obtener el fin deseado. IBM, HP, Sun y otras grandes empresas han comenzado a dar los primeros pasos al adoptar en algunos de sus proyectos el codigo abierto "Open Source", pero esto no es suficiente, es tan solo el principio. Una vez que estas y otras corporaciones e individuos comiencen a adoptar el siguiente paso, que es el software libre, tendremos una inversion en este sentido que traera como consecuencias : 1. El avance del estado de la infraestructura en todos lados, 2. Crecimiento en la industria debido a estas inversiones, hoy por hoy tan azotada por los embates economicos actuales. 3. El avance general del conocimiento humano, remplazando lo que conocemos hoy por nuevos y mejores metodos de hacer computo. 4. Una nueva forma de hacer negocios basada en la cooperacion y entendimiento mutuo. Estos cambios no tienen que ser inmediatos, pero si deben ser de todas formas ininterrumpidos y constantes. -- Sumario En los ultimos dias, una serie de ataques al Free Software y al codigo abierto han dejado con un buen sabor de boca a todos los que de alguna manera participamos en este movimiento. Y es que hemos crecido tanto en importancia que ahora Microsoft, en palabras de sus propios altos ejecutivos, nos considera un serio competidor. Sin embargo, el Software libre no representa ni tecnologicamente ni economicamente una amenaza para esa compania, por lo menos en terminos inmediatos, sino algo mucho mas grave que podria poner en entredicho toda sus estructura: el impedimento de continuar con sus practicas monopolicas. Hasta hace pocos anios, era casi imposible hacer algo "productivo" con el software libre. Y esto era debido a que no todas las herramientas estaban disponibles. Probablemente teniamos un lector de correo, pero los sistemas de impresion dejaban que desear. Teniamos un compilador de C, pero los programadores en Fortran eran dejados de lado. Alguien que deseara trabajar con Software Libre estaba atado a algunos pocos programas y eventualmente tenia que utilizar un programa no libre para llevar a cabo una tarea. Hoy no es asi. Tenemos todas las herramientas a nuestra disposicion, y estoy convencido que asi seguira siendo por un tiempo. Alguien dijo que lo que comenzo como la caida de unas pocas piedras es ahora una franca avalancha. Firmemente creo que el movimiento por el software libre y otros del mismo tipo, han iniciado algo que dificilmente se dentendra. Espero que el tiempo en el futuro cercano nos de la razon. --- Notas, enlaces utiles (1) Categories of Free and Non-Free software of the GNU Project. http://www.gnu.org/philosophy/categories.html. Disponible en Espaniol. (2) Bruce Schneier: Secrets and Lies: Digital security in a networked world. (3) SuSE and Siemens partnership on developing Linux patch for extending the RAM capacity: http://www.suse.com/us/suse/news/PressReleases/archive99/4gig.html (4) Fuzz Revisited: A Re-examination of the Reliability of Unix Utilities and Services (postscript 146k) by Barton P. Miller , David Koski, Cjin Pheow Lee, Vivekananda Maganty, Ravi Murthy, Ajitkumar Natarajan, and Jeff Steidl. ftp://grilled.cs.wisc.edu/technical_papers/fuzz-revisited.ps (5) Free software is more reliable!: http://gnu.localhost/software/reliability.html (6) Stand Together: http://perens.com/Articles/StandTogether.html (7) Rudolf E. Bahr, Ralf Reilander, and Egon Troles "Open-Source Software in the Federal Administration", KBSt Letter No. 2/2000, February 24, 2000, URL: http://linux.kbst.bund.de/02-2000/brief2-2000-en.pdf (8) Bob Sullivan, "More privacy concerns for Real", URL: http://www.msnbc.com/news/436070.asp (9) "Linux vs Microsoft: Who solves security problems faster?", URL: http://securityportal.com/cover/coverstory20000117.html (11) Open Source Web site; URL: http://www.opensource.org