Software
Introducción
Una computadora es a la vez hardware y software. Uno es inútil sin el otro y, a su vez, ambos se condicionan y complementan. El diseño del hardware especifica qué tipo de instrucciones pueden ejecutarse, luego las instrucciones le dicen a la computadora qué tarea hacer.
El software, entonces, es el otro componente básico de un sistema de computación, sus elementos son los programas: conjunto de instrucciones que se suministran a la máquina para que resuelva un problema.
Bajo la denominación de software se incluye a todo tipo de programas: sistema operativo, lenguajes de programación, utilitarios, procesadores de texto, planillas de cálculo, administradores de bases de datos y otros productos de esta naturaleza.
En los últimos tiempos el software ha ido cobrando una participación cada vez más significativa en las inversiones que las empresas realizan en productos relacionados con las tecnologías de información. En los primeros tiempos de la era de la “computación”, las mayores erogaciones se realizaban en la compra del equipamiento, asignándosele al software un rol de elemento complementario, incluso era corriente que el proveedor lo entregara en forma gratuita o, lo que es lo mismo, incluido en el costo del equipamiento, dada su intangibilidad.
Paulatinamente fue cobrando importancia como rubro en sí mismo, y las licencias de software comenzaron a ser tenidas en cuenta como un elemento más a considerar dentro de las inversiones a realizar en un proyecto informático. Hoy la relación ha cambiado y las erogaciones destinadas al software -en cualquiera de sus tipos- tienen frecuentemente una participación mayor que el hardware dentro del total de gastos asignados a un proyecto informático, y se espera que siga aun creciendo. Es más, la selección del software pasa a ser el factor primordial para determinar la plataforma TI que adopta una entidad.
Para describir los productos de software seguiremos una categorización corriente, establecida por el mercado y que nos sirve a los fines didácticos, al respecto, identificamos las siguientes categorías de productos de software según las necesidades que atienden:
a) Software de base: contempla los productos de software diseñados para controlar y administrar el equipamiento. El producto más tradicional y difundido de esta categoría es el sistema operativo o software de sistema, es decir, el primer programa que se carga en la computadora cuando se enciende; software que se encarga de cargar y ejecutar los programas requeridos por el usuario.
b) Herramientas de desarrollo de software: contempla las herramientas utilizadas por los profesionales en sistemas para desarrollar programas; es decir, los productos diseñados para “programar”: crear y mantener los programas de las aplicaciones de una organización. Dentro de esta categoría disponemos de una amplia variedad de productos; lenguajes de programación, compiladores, intérpretes, herramientas CASE, etc.
c) Administradores de Bases de Datos (DBMS) software diseñado para administrar los archivos de datos de la empresa. Algunos especialistas consideran a los gestores de base de datos dentro del Software de Base, ya que hacen a la infraestructura informática de la entidad.
d) Herramientas de automatización de oficina: agrupa los programas y/o sistemas de uso general en una oficina, aplicables en cualquier tipo de organizaciones. En general sirven para crear y trabajar con documentos y para acceder a los servicios de Internet En esta categoría se incluyen los procesadores de texto, las planillas de cálculo, presentaciones gráficas, programas de acceso a los servicios de Internet (navegadores, mail, chat) y herramientas de trabajo en grupo (groupware); es decir, los productos diseñados para mejorar la productividad del trabajo individual del usuario final.
e) Sistemas de aplicación: contempla a los sistemas diseñados para atender (automatizar) los procesos administrativos propios de la empresa, es decir, los programas que procesan las operaciones de una organización, por ejemplo: sistemas de gestión de inventarios, personal, contabilidad, cuentas corrientes, facturación, etc. Su propósito es automatizar la operación rutinaria de la empresa, dando solución a los problemas relacionados con el procesamiento de las transacciones del negocio. En las unidades 5 y 6 se describen este tipo de productos de software.
La figura que sigue nos muestra cómo se relacionan el hardware y las distintas categorías de productos de software.
SOFTWARE LIBRE
Concepto de software libre
El término software libre -Open Source Software (OSS) o fuente abierta- se refiere al movimiento que propugna la creación comunitaria o cooperativa de software a través de la disponibilidad pública y gratuita del código fuente. Con Internet el software libre extendió sus fronteras y sumó miles de adeptos deseosos de colaborar en su producción. Hoy tenemos toda clase de productos libres, por ejemplo: web servers como Apache, bases de datos como MySQL o Postgress, lenguajes de programación como Perl, programas de correo electrónico como Sendmail, software de automatización de oficina como Open Office y, por supuesto, el sistema operativo Linux, creado en 1991 por Linus Torvalds, indiscutiblemente la estrella de este movimiento.
El software libre representa hoy un verdadero fenómeno: es el principal emergente de un movimiento que procura re-definir las reglas actuales sobre la propiedad intelectual; reglas que están condicionando la evolución de la llamada Sociedad de la Información. En nuestro trabajo encontramos que este fenómeno es abordado considerando tres campos de análisis: socio-político, técnico y económico-financiero.
Aspectos socio-políticos
El manejo de las tecnologías relacionadas al software es un aspecto estratégico para la comunidad. Basta saber que el software es la herramienta con la que las personas pueden acceder a los datos y redes de información, es decir, al conocimiento de nuestro tiempo. El software se usa para los negocios, la educación y la prestación de salud, es un aspecto que impacta a toda la población y a todas las actividades de la producción.
El principal referente del movimiento del software libre es Richard Stallman, creador de la Open Software Foundation y padre del modelo de licencia GPL (General Public License). A su vez, esta corriente puede concebirse dentro de un movimiento mayor -denominado Creative Commons- creado por Lawrence Lessig, autor del libro Free Culture, que propugna nuevas formas de regular y proteger la producción intelectual de la sociedad. Ambos, junto con miles de intelectuales, científicos, artistas e interesados están concentrados en una lucha global por cambiar los modelos legales de protección a la producción intelectual actuales, ya que -sostienen- se protege más a las grandes empresas que se apropian de la producción intelectual de artistas, inventores y programadores en detrimento de los intereses de los propios autores de los trabajos. Es decir, las grandes organizaciones lejos de actuar de mecenas como en el pasado, usufructúan su poderío económico e influencias y se apropian de la producción y dividendos derivados de investigaciones, desarrollos y creaciones de artistas e inventores, llegando, en algunos casos, a actuar como freno al desarrollo y libre disponibilidad de la producción intelectual de sus protegidos. Al respecto, numerosos son los relatos sobre casos de cesión de derechos de autor a las empresas (discográficas, editoriales, industrias) donde éstas, haciendo uso abusivo de su derecho de propiedad intelectual adquirido, terminan distorsionando la intención de los propios creadores.
Esta disputa actual entre software propietario (llamado también Privativo por algunos autores) y software libre nos hace recordar la lucha tecnológica en la industria informática durante la década de los ochenta; en este caso la guerra se desarrolló en el ámbito del hardware. En ese momento, se oponían las arquitecturas propietarias a las arquitecturas abiertas, éstas últimas basadas en los estándares de la PC. Hoy ya sabemos el desenlace y también el corolario: siempre se impone la libertad, el mercado prefiere y privilegia la competencia, y elige alternativas que le facilitan la independencia de los proveedores.
Aspectos técnicos
Actualmente es posible encontrar productos de software liberados bajo la modalidad de software libre para casi todas las necesidades demandadas. Así en el ambiente del Desktop (escritorio) para la mayoría de las aplicaciones comerciales existe un producto de software libre equivalente. En el ambiente de servidores la situación es similar, con casos donde los productos OSS presentan mayores fortalezas que sus equivalentes propietarios.
Quizá las mayores carencias para el software libre se den actualmente en el ámbito de las aplicaciones comerciales transaccionales -paquetes ERP, CRM- donde sólo unos pocos proveedores han liberado versiones que funcionan en plataformas administradas por software libre (bajo sistema operativo Linux), como ocurre con los productos del fabricante alemán SAP AG, el mayor proveedor de este mercado. Sin embargo, animados por la competencia otros proveedores de aplicaciones comerciales se han comprometido a liberar sus versiones en el corto plazo compatibles con Linux.
Aspectos económico-financieros
Este aspecto es quizá el menos tratado cuando se aborda el fenómeno del software libre. En este campo, el principal elemento de análisis es el Costo Total de Propiedad o TCO y su metodología de cálculo.
A pesar de la casi o total gratuidad de las licencias de software libre, se ha generado una polémica sobre el verdadero costo de usar estos productos. Los fabricantes de software propietario -Microsoft en particular- y los proveedores de distribuciones Linux invocan continuamente estudios que asignan, a uno u otro, ventajas en el TCO de sus productos respecto a su rival.
Normalmente se comparan alternativas usando software propietario o libre y sus combinaciones, donde las variables incluidas en el TCO suelen ser , por ejemplo, costos de: licencias, adaptación, migración, capacitación, soporte, etc. Sin embargo, el cálculo del TCO de un software no es un algoritmo exacto, depende de cada situación en particular.
Productos de Software Libre
El siguiente es un listado de algunos de los productos más difundidos de esta categoría:
- Apache: web server, domina el mercado con una participación de más del 60%, disponible desde 1996.
- Linux: es el producto de software libre más difundido. Posee distribuciones comerciales ya impuestas como estándar del mercado, tales como: Red Hat, SuSE, Mandrake Software, etc.
- Mozilla: browser de Netscape, liberado en 2002
- MySQL: base de datos relacional de TeX Dataconsult AB (Suecia), publicado en el año 2000 en dos versiones bajo licencias GPL y LGPL.
- PostgreSQL: base de datos orientada a objetos, desarrollado por la Universidad de Berkeley en 1996.
- Perl: lenguaje de programación para Web, manejo de páginas dinámicas, existe desde 1987
- StarOffice/Open Office.org: paquetes de oficina liberados por Sun
Comparación entre software propietario y software libre
Para un mejor análisis consideramos conveniente revisar algunos conceptos relacionados con las licencias de los productos de software y su relación con el software libre:
Software propietario: un programa informático propietario se vende en forma de código ejecutable acompañado de una licencia que regula las condiciones de utilización. Las características del software propietario son:
- La confidencialidad del código fuente,
- La compra de una licencia condiciona la utilización del software,
- La prohibición formal de copiar y modificar el programa,
- La no transferibilidad de la propiedad del programa,
- La producción de archivos bajo formatos generalmente propietarios.
Software libre: Un programa informático libre es un programa sin costo o vendido con su código fuente y acompañado de una licencia cuyos términos permiten legalmente la copia, la reventa y la difusión sin gastos suplementarios para el comprador inicial. Esta licencia prohíbe que intereses privados utilicen y modifiquen un programa libre y hagan un producto «propietario». Concretamente, se da un programa informático por libre si garantiza cuatro libertades a su comprador:
- La libertad de ejecutar el programa por todo el mundo y para todos los usos,
- La libertad de copiar y distribuir el programa,
- La libertad de estudiar el programa, modificarlo o mejorarlo; lo que implica el acceso al código fuente,
- La libertad redistribuir las modificaciones o las mejoras.
- La disponibilidad del código fuente, en inglés, open souce// es pues una condición necesaria del software libre pero no todos los programas open source son libres. La definición de software libre es más restrictiva que la de open source; sin embargo, en la práctica, las dos expresiones suelen emplearse indistintamente.
Convendrá por otra parte diferenciar algunos conceptos:
- Software libre y gratuidad. En un software libre, lo gratuito es el acceso al código fuente. Eso no quiere decir que el programa sea gratuito;
- Software libre y ausencia de licencia. Al contrario, la mayoría del software libre está cubierto por licencias de utilización que los protegen;
- Software libre y freeware, en este último caso el código del programa gratuito no se pone necesariamente a disposición;
- Software libre y shareware, en este último caso no se proporciona el código fuente del programa compartido y su autor pide ser remunerado si el programa no es desinstalado después de un período de prueba;
- Open source y shared source (código compartido): este último pone a disposición el código fuente con fines de información pero no autoriza la libre redistribución de éste.
Ventajas e inconvenientes del software libre
Además de las libertades garantizadas por el software libre, algunas de sus ventajas intrínsecas son:
- Flexibilidad. La parametrización de los programas informáticos libres se personaliza en función de las necesidades de cada usuario,
- Perpetuidad. Estando el código fuente siempre disponible, su evolución puede estar garantizada. El futuro de los programas informáticos libres no se basa en la evolución económica del proveedor,
- Transparencia del código fuente. Permite controlar las funciones exactas de un programa informático, garantizar que el programa informático hace lo que se supone que haga,
- Coste de adquisición bajo o nulo
- Independencia frente a los proveedores o prestadores de servicios de soporte,
- Disponibilidad. No existe restricción para obtenerlos,
- Respeto a los formatos y estándares abiertos.
Otras ventajas a menudo mencionadas en favor del software libre deben relativizarse ya que dependen directamente del tamaño y de la calidad de la comunidad a la que se asocia. Las ventajas de los proyectos de software libre que movilizan una gran comunidad de desarrolladores son:
- Calidad del producto: al desarrollar código abierto que es releído y corregido por una gran cantidad de programadores (la “comunidad” que participa del proyecto) se asegura la calidad del programa,
- Fiabilidad: el debugging (proceso de revisión y depuración del código fuente de un programa) se vuelve más eficiente gracias a la disponibilidad inmediata del código para toda la comunidad
- Estos dos elementos suelen garantizar un determinado nivel de seguridad, mayor al del software propietario (según los adeptos del software libre).
- Por otro lado, existen inconvenientes o desventajas que pueden ser atribuidas a las características del proceso de desarrollo del software libre:
- Ergonomía deficiente: es un aspecto a menudo dejado de lado por los desarrolladores del software libre,
- Configuración compleja: suele requerir altas competencias técnicas o mayores a las del software propietario equivalente,
- Versiones o distribuciones numerosas de un mismo producto, provoca la ausencia de homogeneidad entre los productos y dificulta el soporte
- Carencia de «drivers» para administrar los periféricos, generalmente están disponibles luego de estar liberados los productos,
- Carencia de aplicaciones de gestión administrativa y de otras disponibles en el ámbito del software propietario, sin equivalentes en software libre,
- Requiere de una masa crítica de programadores para asegurar la evolución armoniosa de los productos que en el caso del software propietario está “asegurada” por el lucro obtenido por el fabricante.
- Carencia de competencias suficientes por parte de los informáticos encargados de la administración y mantenimiento,
- La disponibilidad del código fuente vuelve éste también accesible a los diseñadores de virus,
- Carencia de garantías de soporte y actualización.
- Ventajas e inconvenientes del software propietario
De las particularidades de los programas informáticos propietarios se derivan algunas ventajas:
- Estrecha integración de los productos, en especial, cuando pertenecen a un mismo proveedor,
- Homogeneidad de los productos: uniformidad y coherencia en la interfaz con el usuario,
- Madurez de las herramientas y aplicativos para gestión administrativa,
- Existencia un plan tecnológico a largo plazo del proveedor,
- Respuesta a las aplicaciones específicas o de nicho,
- Ergonomía es un factor importante,
- Disponibilidad de expertos para soporte y de usuarios finales capacitados.
Inconvenientes del software propietario:
- Tienen coste de adquisición para ser usados (hay que pagar licencias),
- Los términos de las licencias son vinculantes, generalmente son contratos “de adhesión” sin posibilidades de negociación.
- Riesgo de abandono de un producto por parte del proveedor o final del soporte técnico de versiones antiguas,
- Mayor vulnerabilidad ante los virus.
Impacto del Software Libre en nuestro medio
El mercado actual de los programas comerciales está controlado por compañías de software propietario, quienes mantienen el control sobre absolutamente todos los aspectos de la evolución de sus productos. Esto hace que sus clientes entren en una espiral de actualizaciones y compras debido a su política de incompatibilidades con otros productos y formatos o simplemente por la discontinuidad de programas en uso. El software libre permite subsanar el síndrome de cliente cautivo y hace que los costos se reduzcan drásticamente mejorando la protección de la inversión.
El uso del software libre en nuestra sociedad no sólo es recomendable por el hecho económico de favorecer la competencia en el sector, reducir los costos y de limitar la dependencia tecnológica, sino también por el hecho de brindar mayor seguridad, mayor fiabilidad y mayores posibilidades de evolución que sus contrapartidas comerciales.
Es previsible que el software libre y el propietario convivan en un futuro, y que el propietario tenga mayor difusión en entornos empresariales y el software libre en sistemas de amplia base de usuarios y en la educación y administración pública.
Beneficios para la sociedad
La población en general, en especial los interesados en las llamadas nuevas tecnologías, se benefician con los productos de software libre ya que pueden desarrollar conocimientos y habilidades en programación, trabajo en grupo y administración de proyectos.
El ambiente de software libre por su propia naturaleza permite y estimula el entrenamiento y aumenta la capacidad de los participantes de la comunidad sin inversiones explícitas en capacitación, configurando una novedosa forma de transferir tecnología.
Los ejes para fomentar el desarrollo, difusión y adopción de productos OSS son la educación y el apoyo estatal. La educación es el sector clave para la difusión del software libre, en especial, la educación pública; en tanto, el compromiso de la Administración Pública es fundamental para formar la masa crítica de usuarios. Un fenómeno singular lo constituyen las campañas de presión contra la piratería; éstas tienen como efecto alentar la difusión de software libre y animan a las empresas a adoptarlos.
Actualmente, existe un debate sobre el verdadero costo de implementar productos de software en las organizaciones. Numerosos estudios brindan datos que apoyan uno u otro bando -software libre versus software propietario- y cuyos resultados generalmente favorecen a quienes encargan o financian dichos estudios. Nosotros estamos convencidos de que el coste total de propiedad (TCO) de los sistemas se reduce significativamente cuando las organizaciones usan software libre, en especial en países como el nuestro, donde el costo de las horas profesionales es menor. Sin embargo, los mayores beneficios son a largo plazo: el software libre asegura la adaptabilidad y evolución del software que usa una empresa ya que al disponer del código fuente la organización asegura la disponibilidad del producto en el largo plazo sin estar sujeto a los avatares e intereses del fabricante.