* 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
               (
geocities.com/larteaga)