El software libre como un importante motor de las economías en desarrollo Sandino Araico Sánchez , Químico Farmacobiólogo, Universidad La Salle. Sebastián Mantilla Beniers , Ingeniería en Computación, Universidad Nacional Autónoma de México. Bruno Antonio Unna Ruiz , Ingeniería en Computación, Universidad Nacional Autónoma de México 1 Introducción ¿Sabían ustedes que la UNAM gasta muchísimo dinero en licencias de uso de software cada año? ¿Queremos permitir que tal cosa siga sucediendo? Con la propuesta que estamos a punto de hacer, las organizaciones educativas, empresariales y gubernamentales pueden ahorrar al menos el 80% del dinero que gastan en licencias, a la vez que hacer del país uno de los más importantes motores de la investigación y el desarrollo en computación aplicada, a nivel mundial. México tiene la posibilidad de competir industrialmente con las naciones más ricas del mundo; siempre que busque y encuentre su ventaja competitiva en la investigación y creación de software de la más alta calidad. La transformación que el mundo está viviendo como consecuencia de las nuevas tecnologías de la información es por lo menos tan importante como la que se sufrió en la Revolución Industrial. La influencia de este sector sobre el resto de la industria, la educación y el gobierno es tan grande que los cambios que sufre se reflejan de inmediato en la economía en su conjunto. En estos momentos se vive un cambio fundamental en el mundo de la computación, jamás volveremos a ver la tecnología de la información como lo hemos hecho hasta ahora. El modelo actual de la industria está derrumbándose. Debido a la aparición de una corriente que promueve la distribución de lo que tradicionalmente se consideraba como propiedad industrial de forma abierta y gratuita. Es decir, se distribuyen las fuentes sin las restricciones tradicionales del sector. 2 Planteamiento del problema México, al igual que muchos otros países en vías de desarrollo, sufre de una gravísima crisis económica, derivada del predominio que en muchos ramos del quehacer humano, tienen naciones con mayor desarrollo. Uno de los cimientos del desarrollo como se concibe en la actualidad es el manejo de información. Todos los sectores de la economía dependen para su mejor interacción de mecanismos que faciliten la generación, el transporte y el análisis de datos (información) para la toma de decisiones, para actuar a tiempo ante los embates de un entorno global cambiante. Tristemente, la percepción de la importancia que la inversión en tecnología tiene para el crecimiento sostenido a largo plazo no es una habilidad que caracterice a nuestro gobierno. Es comprensible que las presiones de índole alimentaria y crediticia no brinden la oportunidad de una inversión estable en materia de investigación y creación de tecnología. Es claro también que la ventaja temporal, organizacional y económica de los países del primer mundo no facilitan dicha inversión. El resultado es un retraso tecnológico continuo, que se manifiesta hasta los niveles más básicos de vida de la población en general. En general, la actualización tecnológica de un país tiene un costo tan alto, a todos los niveles, que se vuelve aparentemente inalcanzable. El costo de crear núcleos de desarrollo e investigación tecnológicas es igual o mayor. Latinoamérica es la región que más rápidamente crece de todo el mundo, en términos de computación. Este fenómeno contribuye fuertemente a la tendencia de globalización de las comunicaciones: ya no existen fronteras significativas para la comunicación. Algunos efectos de la globalización son los siguientes: * comunicación interpersonal sumamente eficiente y rápida, * herramientas para el trabajo en grupo, * se produce una terrible competencia entre las organizaciones. Por otra parte, desde el punto de vista del desarrollo tecnológico, la globalización facilita la colaboración, lo que a su vez, en lo que a nosotros atañe, se manifiesta como un fenómeno de apertura en los esfuerzos colaborativos de creación de software. Por primera vez podemos contemplar el concepto de software abierto en acción. Con la apertura del software, se observan los siguientes fenómenos correlacionados: * las naciones en desarrollo tienen acceso a tecnología de primer nivel, * están al alcance de individuos y organizaciones herramientas para el trabajo, para los negocios y para los estudios, que no eran accesibles, * se genera y enriquece una masa crítica y una inercia que permiten mayor desarrollo más rápidamente; esto está dado por la acumulación y distribución de experiencias y de código, así como por la formación de comunidades colaborativas. En México, el crecimiento económico no ha contemplado la creación de tecnologías informáticas propias. Existe una miopía generalizada, en el sentido de que no parecen tener la disposición de invertir en el mediano y largo plazos. Concentran por entero sus recursos y sus esfuerzos en la satisfacción de las necesidades más básicas e inmediatas. El efecto de esto en la economía del país es devastador. Creemos firmemente que la estrategia que el gobierno debe seguir para lograr algo más que la satisfacción de las primeras necesidades debe contemplar la visión a largo plazo de su lugar en relación con las otras naciones. Es decir, debe cuestionar las políticas de ejercicio de sus recursos. Debe promover una transición hacia una economía con visión de largo plazo en la que un componente importante son las tecnologías de la información. Thomas Hobbes describía a la sociedad como a un Leviatán, un ser gigante que cuenta con órganos como un ser humano y que se comporta de acuerdo con lo que sus partes saben y pueden hacer. En el modelo de Hobbes, al gobierno le correspondía la responsabilidad de ser la cabeza del ser. De acuerdo con este mismo modelo, creemos que un gobierno que no atiende a las necesidades y los consejos de sus instituciones educativas es como una cabeza que coordina, pero no piensa. Son las universidades el semillero en el que las ideas cobran forma, y son las ideas las que pueden dar fuerza o debilitar a una estructura social en su conjunto. La estrategia actual, de satisfacción a corto plazo, implica la costosa importación de tecnologías cerradas y propietarias que, si bien parecen resolver el problema de inmediato, menoscaban la capacidad futura de crecimiento real e impiden una planeación autónoma para el impedimento del resurgimiento del problema en cuestión. Además, esa estrategia obstaculiza la creación nacional de tecnologías alternativas que puedan resolver con exactitud las problemáticas nacionales reales, y responder a problemáticas futuras difíciles de prever. En general, en la industria del software, nos enfrentamos a unos cuantos monopolios. Cuando se trata de algo tan sensitivo como el manejo de la información, que es fundamental para la operación de todo el engranaje productivo y social, la existencia de una única fuente de soluciones significa una completa dependencia de lo que dicha fuenta pueda o decida proporcionar. Gracias a ese control, el desarrollo o contracción de otros sectores económicos está fuertemente ligado a los deseos de quien no debería tener ese poder. En resumen: depender de un monopolio, lejos de lo que muchos piensan, no es una fortaleza, sino una terrible debilidad. A manera de ilustración de lo que el pago de licencias significa para el presupuesto del gobierno, tenemos que un servidor típico con software propietario cuesta, tan solo por concepto de licencias, USD$10,000. Una computadora cliente típica, para ese servidor, con el mismo tipo de software, cuesta en materia de licencias USD$800, mientras que una estación de desarrollo, en la misma línea, cuesta en licencias USD$2,500. El total: USD$13,300. Hay que notar de lo anterior que el software no se compra. Lo que se paga es únicamente por la licencia para utilizar el software, pero éste jamás forma parte real de la propiedad de la organización. Existe el mito de que la adquisición de licencias de software comercial significa un incremento en el activo de las empresas. Sin embargo, a diferencia de otros bienes que tienen una vida productiva relativamente prolongada, el software comercial cae en obsolescencia a gran velocidad. De acuerdo con lo que se acaba de decir, la compra de tecnología propietaria, aún si se anuncia como "de vanguardia", es fuente de subdesarrollo. Mientras nuestro país no consiga escapar a este círculo vicioso, creado por las grandes transnacionales seguirá dependiendo de lo que se le brinde para construir sus soluciones, y seguirá exportando capitales a gran velocidad. Al contrario, la creación de tecnología es fuente de progreso. Es claro que el esfuerzo que se requiere para hacerlo es mayor que el de simplemente comprar. Pero sostenemos que hoy en día se cuentan con elementos tecnológicos que permiten hacerlo, de inmediato. Hay que pensar a largo plazo. El software es una herramienta de desarrollo social. La fenomenología descrita está cada vez más presente en las mentes de organizaciones en todo el mundo. Existen muchas razones por las cuales se puede rechazar el modelo monopólico. Algunas compañías apoyan el alejamiento de dicho modelo para hacer crecer su mercado objetivo. Otras, más radicales, han aceptado el modelo de software libre y se acercan a él. Finalmente, habemos quienes creemos firmemente en la posibilidad de supervencia y crecimiento con apego al modelo. Algunos ejemplos de quienes apoyan al software libre, de alguna forma u otra, son: * Sun * Netscape * Caldera * RedHat * StarOffice, Applixware * Oracle, Sybase * GNU Existe un gran número de costos ocultos en el uso de software comercial. Algunos de ellos son: * costos por actualizacion del hardware para que corra las nuevas aplicaciones, * los derivados del modelo consumista de correr para alcanzar, * costos por adquisición de licencias de uso (el software no se compra), * costos de instalación y soporte, * costos de capacitacion a desarrolladores como resultado de cambios en el API, * costos derivados de la inestabilidad del sistema operativo. 3 Presentación del software libre La alternativa que presentamos a los problemas descritos es muy simple, desde el punto de vista conceptual, a la vez que muy compleja por las implicaciones e impactos sobre los modelos establecidos y aceptados de uso y desarrollo de software, y de tecnologías de información en general. Los impactos son de índoles técnica, económica, social y política. Esta presentación debe ser, evidentemente, breve. Sin embargo, la cantidad de material de estudio sobre este tema es asombrosamente vasta. Es suficiente hacer una búsqueda en Internet, en www.altavista.com, del término ``free software'' para obtener 61´892,874 referencias. Si analizamos lo que se debe buscar en el software libre para que sea capaz de reemplazar el modelo comercial, llegamos al siguiente resumen. Características deseables del software de una computadora actuando como servidor: 1. superioridad tecnológica, (a) alto desempeño, (b) indudable estabilidad, 2. soporte, (a) disponibilidad de aplicaciones, (b) auxilio en la solución de problemas, 3. apertura, (a) apego a estándares, (b) disponibilidad de código fuente. En la perspectiva de las máquinas de escritorio (desktop), o clientes, las características que se deben exigir son: 1. diversidad aplicativa, 2. estandarización de formatos, 3. soporte de primer nivel, 4. facilidad de intercambio de información, 5. interconectividad de usuarios y aplicaciones, 6. disponibilidad en el idioma de los usuarios. A manera de ejemplo del éxito que el software libre está teniendo en todo el mundo, dígase acerca del sistema operativo Linux (pieza muy representativa y fundamental de ese éxito) lo siguiente: * tiene 7´000,000 de usuarios, * hay 10´000,000 instalaciones operando, * goza de aceptación en el 70% de las instituciones, * su credibilidad no ha podido ser puesta en duda jamás, * se ofrece soporte a través de más de 500 grupos de usuarios, en todo el mundo. Las ventajas del modelo de software libre se pueden resumir de muchas formas. Creemos que la más descriptiva atiende a las diferencias entre los usuarios potenciales del mismo. Ventajas del modelo del software libre: 1. en el ámbito universitario/educativo, (a) exposición a código fuente de primer nivel, (b) se desarrolla bajo el principio de cooperación sin supervisión, (c) inducción a la cooperación en el trabajo, (d) inducción a la búsqueda de calidad en el trabajo, (e) los egresados serán más competitivos, capaces de impulsar tecnología nueva, (f) el soporte de la creatividad inteligente promueve el desarrollo de individuos con iniciativa, (g) generación de un espíritu emprendedor en los individuos, tanto para crear sus propias organizaciones productivas como para que apliquen esa forma de pensar en todas sus actividades, 2. en el ámbito empresarial, (a) la inversión en desarrollo de software tiene una tasa de retorno muy alta, (b) facilita el proceso de investigación y desarrollo y da valor auténtico a las organizaciones, (c) explotación de recursos de cómputo que se daban por perdidos, (d) da lugar a significativos ahorros operativos, (e) crea empleos, (f) promueve la competitividad, (g) permite la adaptación a necesidades específicas, (h) elimina la dependencia monopólica (y la fragilidad operativa), (i) revalora la importancia de vivir en la legalidad, acabando con el concepto de piratería, 3. en el ámbito individual, (a) da acceso a herramientas de primer nivel, con un costo mínimo, (b) promueve la creatividad, (c) brinda un sentimiento de unidad promoviendo la creación de comunidades. Mucho se ha hablado de algunos esfuerzos para lograr la portabilidad de software entre diversas plataformas. Diferentes aproximaciones existen, de las cuales dos se distinguen por que han mostrado muy interesantes resultados: la portabilidad a nivel de código binario (Java, por ejemplo) y la portabilidad a nivel de código fuente. La primera, aunque es técnicamente muy retadora e interesante, ha mostrado, quizá como resultado de lo mismo, muchos problemas para su adopción generalizada. De tales problemas se distinguen cuatro: 1. la eficiencia del código, 2. las dificultades en la adopción generalizada de estándares, 3. la estabilidad de las aplicaciones, 4. el difícil crecimiento. Por otra parte, la portabilidad a nivel de código fuente es un esfuerzo que cuenta con una mucho mayor experiencia, tanto en el rubro de soluciones técnicas concretas como en el de adopción de estándares. Tiene también desventajas, entre las cuales se distingue la necesidad de recompilar las aplicaciones para cada plataforma de interés. Sin embargo, contra esa desventaja existe un número de ventajas que la hacen aparecer, creemos, como la forma racional y viable de lograr la portabilidad real. A manera de ejemplo, en materia de interacción de las aplicaciones con el API del sistema operativo existe un estándar tan difundido y aceptado que se ha vuelto exigencia: se llama Posix. Si se escriben aplicaciones en C o C++ que, en su dependencia del sistema operativo se ciñen a lo que dicta el estándar, su portabilidad en ese sentido es completa. Por otra parte, cuando se trata de los aspectos particulares de la compilación en cada ambiente de desarrollo, existe en Unix un conjunto de herramientas de autodetección del entorno de desarrollo y de la preparación de los parámetros para la compilación, que simplifican en grado sumo tal labor y la vuelven, en la mayor parte de los casos, trivial. Dichas herramientas, entre otras cosas pueden hacer lo siguiente: * detección del sistema operativo, * identificación del compilador, * detección de las librerías instaladas, * detección de herramientas auxiliares, * definición de la estructura de directorios, * detección de las capacidades del usuario que está llevando a cabo el proceso. A cambio de la aparente dificultad en la recompilación de las aplicaciones, se obtiene como beneficio la eficiencia de un código que se ejecuta siempre en su plataforma nativa, con la funcionalidad idéntica en todas la plataformas. El software libre ha demostrado su calidad, muy por encima de las correspondientes aplicaciones comerciales, de la siguiente forma: * presenta menor número de fallas (bugs), * es más rápida la respuesta de los cuerpos de desarrollo a las fallas (soporte verdadero), * brinda a los usuarios más amplitud en el soporte, * dada su amplia vinculación con la academia y a la investigación, incorpora de ellas todos sus avances y tendencias, anticipándose a lo meramente comercial. 4 Aplicación del software libre a la solución del problema El modelo comercial actual de distribución de software para el desarrollo visual ha llevado a las empresas a subestimar los costos derivados, de mantenimiento, de licenciamiento, de soporte, de actualizaciones. El costo total de la propiedad de las aplicaciones creadas así resulta ser mucho mayor del que se tendría si las aplicaciones fuesen desarrolladas por especialistas, con las herramientas adecuadas. Históricamente, el desarrollo en la esfera comercial se ha centrado en los aspectos visuales del mismo, dejando en segundo plano la funcionalidad, estabilidad y eficiencia del código resultante. Por otra parte, el desarrollo de software libre está centrado precisamente en los puntos que el comercial descuida, dando como resultado código altamente funcional, estable y eficiente. Una tendencia actualmente visible en el mundo del software libre es a crear interfases de usuario vistosas a la vez que ágiles y funcionales, cubriendo de esta forma el "hueco" que lo había caracterizado. Es más facil partir de un núcleo sólido y funcionalmente vasto hacia la construcción de las aplicaciones perfectas, añadiendo los elementos visuales, que seguir el camino opuesto (si acaso esto último es posible). Las herramientas comerciales de desarrollo de software están centradas en una interfase amable, con gran variedad de componentes (widgets) que el "desarrollador" ensambla para obtener el esqueleto del producto deseado; se supone, que para que él rellene los huecos. En el mundo del software libre, las herramientas con las que los desarrolladores cuentan son extremadamente potentes y abiertas desde el punto de vista de los estándares. No se centra, en general, en la facilidad visual de construcción de aplicaciones, sino en la resolución de las labores más pesadas, de acuerdo con la experiencia, del desarrollo de la aplicación (poner ejemplos). La adaptación del software para la satisfacción de necesidades específicas de las organizaciones es una labor inevitable. El costo de hacerlo utilizando aplicaciones cerradas es mucho mayor que el que se tiene con aplicaciones abiertas y estándares reconocidos. El engaño que las firmas de software de desarrollo hacen a los responsables de la creación de soluciones hacia el interior de la empresa los ha llevado a creer que programar es una labor sencilla, aproblemática, trivial. A creer que es posible que una persona sin la correspondiente y debida preparación puede crear software complejo, brindando soluciones improvisadas a problemas complejos. Desarrollar software de calidad no es fácil. Y no tiene por qué ser fácil, eso es un mito. Programar exige un conjunto de habilidades adquiridas tanto desde el punto de vista formal (preparación académica) como derivadas de la experiencia. Tradicionalmente, el enfoque comercial está orientado a la generación de utilidades económicas, aún cuando éstas no provengan de la satisfacción de una necesidad real. Esto nos inserta en una dinámica en la que la importancia radica en tener "productos" que se vean bien (esa es la forma de venderlos) aunque no que trabajen bien. Desde nuestra perspectiva, el modelo comercial de creación y distribución de software ya tuvo su oportunidad y falló, gracias a su voracidad. Un elemento importante para el éxito del software libre en los niveles de economía modesta, micro y medianas empresas, es sin duda la existencia de aplicaciones que den solución a las problemáticas cotidianas de esas empresas. Es falsa la idea de que no hay ese tipo de software en su versión libre. Tan solo en México existe el proyecto Pegaso, que está enfocado a dar solución a las necesidades administrativas de una empresa. La revolución del software libre es un fenómeno innegable e inevitable. La decisión actual no es si apoyarla o no, sino si aprovecharla o no. No es posible permanecer ajenos: o se está a la vanguardia o se es arrasado. Nuestra intención aquí y ahora es evitar que eso último suceda. 5 Conclusiones El gobierno deberia usar y apoyar el software libre. ¿Por qué? * Porque así no se exportan grandes capitales. * Porque así se genera riqueza intelectual. * Porque el apoyo económico y moral a universidades y organizaciones de educación que lo promueven significa un beneficio indirecto enorme, tanto para el gobierno mismo como para la población en general. * Porque la creación de laboratorios de software libre colocará a México en una posición tecnológicamente competitiva con el resto de las naciones de primer mundo. * Porque se elimina la dependencia de monopolios. * Porque significa grandes ahorros. * Porque permite un nacionalismo sano. Las universidades deben hacerlo, porque tienen un compromiso social con el país, porque de ellas depende que las generaciones por venir tengan la capacidad y el compromiso de luchar por el bien de todos. En vista de todo lo anterior, exhortamos aquí y ahora, de la manera más formal, a la Universidad Nacional Autónoma de México a que cree un laboratorio de software libre. Los retos son: * aprovechar la oportunidad, * saber retribuir, * aprender a cooperar, * asumir un liderazgo, * llevar el software libre al escritorio. Aceptemos los retos, y permitamos que la lucha que se genere nos vuelva más hombres, más civilizados. Hagámolo por México, y por nosotros mismos.