domingo, 6 de mayo de 2007

Sé legal y ahorra dinero en software

Cuando uno comienza a echar cálculos sobre el dinero que debería invertir en software se echaría las manos a la cabeza. Dependiendo del sector de consumo de dicho software, los precios de las licencias pueden dispararse a cotas insospechadas. ¿Cómo ser legal y utilizar software de forma no pirata, pero que no suponga un coste importante?. La solución, indudablemente, sería el software libre.

El software libre, aunque se pueda utilizar de forma gratuita (en la mayor parte de las ocasiones), no significa que sea gratis. Software libre significa que puedes hacer con él lo que quieras, principalmente en obtener el código fuente, modificarlo para adaptarlo a tus necesidades y compartirlo con todo el mundo. Es por ello que ingentes cantidades comunidades de programadores en todo el mundo, aportan, de forma altruista, su ingenio, su tiempo y su trabajo en la construcción de software libre.

Puedes descargarte e instalarte gratuitamente el software, e incluso utilizarlo en entornos de producción. Pero si tienes algún problema técnico deberías pagar algún tipo de soporte. Y es ahí donde está la cara del negocio del software libre.

En el software propietario no sólo pagas el producto y te hipotecas con una licencia absolutamente restrictiva que te impone obligaciones y te concede muy pocos derechos. También pagas por un soporte (y bien que lo pagas), que raras veces (si eres un usuario medio avanzado) llegarás a utilizar.

Por ello, utilizar software libre te permitirá ahorrar mucho dinero, ya que no pagas el producto ni te hipotecas con licencias. Si quieres (y esta es otra de las libertades de las que disfrutarás), podrás contratar sin compromiso un soporte para el software. Normalmente, este tipo de soporte se realizará con software muy especializado y del que seas poco experto. En software más corriente será más raro
contratar un soporte.

Otro de los alicientes del software libre es que muchos productos son tan populares que disponen de multitud de recursos: FAQ's, foros, documentación, manuales, libros, etc. Asimismo, la eficacia de muchos de estos productos está tan demostrada que es una garantía de éxito en su implantación dentro de una empresa, donde no faltarán profesionales que puedan mantener su puesta en producción.

Estos productos no tienen por qué estar centrados en el mundo Linux, si no que debido también a la penetración de Windows, existen muchísimos productos que abrazan el software libre para este sistema operativo propietario.

El artículo estará compuesto de dos partes. La primera de ellas estará dedicada a sistemas operativos libres, centrándose más en distribuciones Linux. La segunda parte se referirá a aplicaciones que tienen su acogida en Windows y en Linux, y se clasificarán según su cometido.

Espero que disfrutes de este artículo y que te sea muy útil. Me gustaría que compartieras también software que haya podido omitir en esta lista y que creas que pueda ser interesante mencionar. Para ello deja un comentario en este post.


SISTEMAS OPERATIVOS

El sistema operativo es el software base principal de todo ordenador, ya que a través de él el usuario interactúa con el ordenador a través de una interfaz, ya sea de texto o gráfica, y puede acceder a las operaciones básicas (acceso y gestión de archivos, uso de periféricos, acceso y gestión a información, etc.), así como a una serie de utilidades a bajo y medio nivel.

Cuando hablamos de sistemas operativos libres, el primero que nos viene a la mente es Linux, por ser el más popular y de mayor aceptación. En él nos centraremos, aunque al final haremos una breve descripción de otros sistemas, también basados en Unix.

Muchas de estas distribuciones Linux tienen una versión LiveCD, que puede ser ejecutada desde el CD o DVD, sin necesidad de instalarlo en el ordenador, con el fin de probarlo y evaluar el sistema antes de decidirse a instalarlo.


Linux para usuarios noveles o provenientes de Windows:

  • Ubuntu: Basado en el entorno Gnome.

  • Kubuntu: Basado en el entorno KDE.

  • Linex: Patrocinado por la Comunidad Autónoma de Extremadura.

  • GuadaLinex: Patrocinado por la Junta de Andalucía.

  • Molinux: Patronicando por la Comunidad Autónoma de Castilla-La Mancha



Linux para equipos antiguos:

  • Sam Linux: Mi favorita. En castellano, usando XFCE, FluxBox y Beryl+Emerald, que consume muy pocos recursos y está muy completita de aplicaciones.

  • DamnSmall Linux: Distribución supercompleta basada en entorno FluxBox, en apenas 50 MB, que arranca en los ordenadores más antiguos.

  • Slax: En apenas 200MB tienes un sistema muy completito, basado en el entorno KDE.

  • XFLD: Distribución oficial de XFCE.

  • Xubuntu: La versión de Ubuntu para entorno XFCE.

  • Vector Linux: Distribución completita basada en XFCE

  • Zenwalk: Otra distribución bastante cargada de aplicaciones basada en XFCE


Si quieres un análisis exhaustivo de estas y otras muchas distribuciones de Linux ligeras, te recomiendo leer mi anterior post: http://rafinguer.blogspot.com/2007/04/distribuciones-linux-para-equipos.html

Linux profesional:

  • Debian: Sin duda alguna, la distribución más estable, basada en aplicaciones y utilidades de reconocido prestigio, calidad y estabilidad. La instalación puede ser un suplicio, pero te aseguras una instalación y una configuración a medida, con lo que quieres y no con elementos de más.

  • RedHat Fedora: De mis favoritas. Te la recomiendo.

  • Mandriva: Anteriormente como Mandrake, es una distribución muy innovadora, con lo último de lo último en utilidades y aplicaciones, algunas de ellas en versión beta.

  • OpenSuse: La versión comunitaria de Suse. Una distribución robusta, segura y fiable.

  • Slackware: Distribución consagrada de gran calidad y de gran aceptación en la comunidad Linux, sobre la que se construyen otras distribuciones Linux.

  • Knoppix: Distribución LiveCD que está supercompletísima de aplicaciones y que puedes utilizar sin necesidad de instalarla.



Linux para servidores
Aunque cualquier distribución Linux puede usarse en servidores (instalando aplicaciones dedicadas a sus menesteres), hay distribuciones especializadas en grandes servidores, en alta disponibilidad, backups, monitorización de red, seguridad, etc. La mayor parte de ellos son versiones de pago de reconocidas
distribuciones (como RedHat o Suse), pero hay alguna que es gratuita.


  • Ubuntu Server Edition: Versión para servidores de Ubuntu.

  • CentOS: Distribución profesional para servidores, con multitud de utilidades para redes y seguridad.

  • OpenNA Linux: Eficaz distribución para temas de seguridad.

  • Trustix Secure Linux: Distribución Linux dedicada especialmente a la seguridad y a la estabilidad de servidores.



Otras distribuciones Linux
Existen ya cerca del centenar de distribuciones Linux, cada una especializada u orientada a algún punto especial. En este artículo, las anteriores distribuciones son las más populares y/o están contempladas en el idioma castellano. Si quieres conocer cualquier distribución Linux y su cometido, te recomiendo visitar los siguientes enlaces:

  • Distrowatch: La lista más prestigiosa de distribuciones Linux. Se actualiza a diario.

  • Distromania: Otra conocida lista de distribuciones Linux.



Otros sistemas operativos libres:
La lista anterior estaba enfocada al mundo Linux, pero hay más vida fuera de Windows y Linux.

  • FreeBSD: Fantástico SO basado en BSD Unix.

  • OpenBSD: Otro estupendo SO basado en BSD Unix.

  • OpenSolaris: La versión liberada de Solaris, de Sun Microsystems, basado en Unix.



UTILIDADES

Gracias al concepto de software libre, podremos disfrutar de infinidad de utilidades que innumerables programadores de todo el mundo, para cualquier sistema operativo y para cualquier propósito.

En el presente artículo sólo trata de citar las más populares y para los propósitos más estándar.

Ofimática

  • OpenOffice: (Windows/Linux/MacOS X) Completo paquete ofimático que nada tiene que envidiar al Microsoft Office. Además es totalmente compatible con áquel y la interfaz de usuario es muy similar. Incluye: procesador de textos, hoja de cálculo, base de datos (con informes y formularios), presentaciones, diseño gráfico (vectorial, organigramas, etc.) y generador de fórmulas matemáticas.

  • KOffice: (Linux) Completo paquete ofimático compatible con MS Office. Está diseñados especialmente para el entorno KDE de Linux. Incorpora: procesador de textos, hoja de cálculo, presentaciones, hoja de cálculo (con informes y formularios), diseñador de diagramas (incluyendo los de flujo), diseño vectorial, diseño y editor de imágenes, gestión de proyectos (diagramas de gantt), gráficos estadísticos, generador de fórmulas matemáticas y generador profesional de informes.

  • Abiword: (Windows/Linux/MacOS X) Estupendo procesador de textos compatible con MS Word. Utiliza muy pocos recursos, por lo que puede utilizarse en entornos ligeros de Linux.

  • Gnumeric: (Windows/Linux) Estupenda hoja de cálculo compatible con MS Excel. Utiliza muy pocos recursos, y puede ser utilizada en entornos ligeros de Linux.



Antivirus

  • Antivir Personal: (Windows) Excelente antivirus que detecta de todo y se actualiza automáticamente casi a diario. Lo he usado durante años y nunca he tenido problemas de virus ni de troyanos ni de spyware ni de malware... TE LO RECOMIENDO!!!

  • Clam Antivirus: (Linux) Excelente antivirus para entornos Unix.

  • Clam Win: (Windows) Excelente antivirus que no dejará que los bichitos entren en tu ordenador. Se actualiza casi a diario. Lo utilizo junto con Antivir y la protección es total, sin mermar mucho la capacidad del ordenador.



Grabadora

  • CDBurner XP: (Windows) Una alternativa a Nero. Completo programa para quemar CD's y DVD's, admitiendo formato de audio y datos. Permite quemar y crear imágenes ISO (incluyendo el formato nrg (Nero)). También permite riperar discos de audio a wav, mp3, wma y ogg.

  • K3B: (Linux) La auténtica alternativa al Nero para Linux. Permite hacer casi todas las funciones de Nero, incluyendo los formatos ISO de éste. También permite ripear un DVD a formato AVI.



Bases de Datos

  • MySQL: (Windows / Linux / Solaris / FreeBSD / MacOS X / HP UX / IBM AIX / Novell Netware) Base de datos profesional, de gran calidad, eficiencia, rapidez y estabilidad, con capacidad de clustering, y que incluye utilidades para su administración y gestión, que puede ser utilizada desde casi cualquier lenguaje de programación: Java, C/C++, Phyton, Perl, PHP, Ruby.

  • Postgre SQL: (Windows / Linux / Solaris / AIX / BSD / HP UX / MacOS X / SGI Irix) Extraordinaria y madura (más de 15 años) base de datos profesional de muy bajo mantenimiento, de gran rapidez, eficiencia y estabilidad. Desarrollada por la Universidad de California de Berkeley, ha aportado en su historia multitud de ideas y de innovaciones que se han convertido en estándares en el mundo de las bases de datos: queries complejas, claves foráneas, triggers, vistas, integridad transaccional, tipos de datos, funciones agregadas, etc..Incorpora todas las características de una base de datos profesional (procedimientos almacenados, triggers, etc.). Puede ser utilizada de forma nativa en casi cualquier lenguaje de programación.

  • Firebird: (Windows / Linux / HP UX / Solaris / FreeBSD / MacOS X) Base de datos ligera y rapidísima, concebida en 1981 a partir de Borland Interbase, y que soporta los estándares ANSI SQL, triggers y procedimientos almacenados. Su mayor ventaja es que tiene muy bajo mantenimiento, por lo que no necesita de administradores (DBA's).

  • SQLite: (Windows / Linux) Base de datos minimalista basada en SQL y en una librería C.



Utilidades para bases de datos

  • Ferret: (Linux) Excelente herramienta para diseñar modelos de entidad/relación, generarlos mediante ingeniería inversa, y generar el SQL correspondiente.

  • DBDesigner: (Windows / Linux) Excelente herramienta para diseño de modelos de entidad/relación, mantenimiento de base de datos, y generador de queries, para MySQL.

  • PgAdmin: (Windows / Linux / Free BSD / MacOS X / OpenBSD / Solaris) Aplicación para diseñar y gestionar visualmente todos los elementos y objetos de las bases de datos PostgreSQL.

  • Tora: (Windows / Linux) La alternativa al TOAD de Oracle. Permite gestionar prácticamente de todo: múltiples conexiones, gestión SQL (estadísticas de ejecución, autocompletación de código, resaltado de sintáxis, resultado en forma de chart, parseo PL/SQL...), edición de tablas y vistas, referencias y dependencias, editor y depurador de PL/SQL, tuneo de servidor, gestión de seguridad, análisis y estadísticas, etc.



Retoque fotográfico

  • The Gimp: (Windows/Linux/MacOS X) La alternativa a PhotoShop. Es un extraordinario y potente programa para la edición de fotografías, que incorpora multitud de herramientas y filtros profesionales. Para los que están acostumbrados a la interfaz de Photoshop les costará un poco adaptarse a la de Gimp, pero los resultados son extraordinarios.

  • Paint.NET: (Windows) Sencilla y potente utilidad para retocar fotografías y dibujar. Necesitarás instalar el framework de .NET



Diseño vectorial

  • InkScape: (Windows/Linux/MacOS X) La alternativa a CorelDraw, Freehand o Illustrator. Los dibujos vectoriales están basados en curvas Bezier y en trazos, lo cual, al dimensionar los gráficos no pierden resolución, ya que se redibujan adaptándose al nuevo tamaño. Incorpora multitud de opciones e interacción con gráficos no vectoriales (fotografías).

  • SodiPodi: (Windows/Linux) Otro fantástico programa para crear tus ilustraciones basadas en vectores.



Autoedición

  • Scribus: (Windows/Linux/Mac) La alternativa a PageMaker, QuarkXpress o InDesign. La autoedición permite maquetar libros, revistas o cualquier tipo de trabajo de imprenta basada en textos, que exige mucho más que un simple procesador de textos, como distribución de cuadernillas, forma de columnas, distribución de elementos en la maquetación, redistribución de texto entre formas de texto, etc. Permite importar textos de Word, OpenOffice, RTF,
    HTML.



Modelado y animación 3D

  • Blender 3D: (Windows / Linux / MacOS X / FreeBSD / SGI Irix / Sun Solaris) Una alternativa muy seria a 3D Studio o Maya. Lo tiene casi prácticamente todo lo que necesitas para realizar tus trabajos 3D profesionales: rendering, modelado, animación, interacción de esqueletos, sombreado, reflejos, luces, física, partículas, etc. Permite importar y exportar multitud de formatos 3D y 2D de otros productos.



Diseño de páginas Web

  • Quanta Plus: (Linux) Fantástica aplicación para entornos KDE, que permite diseñar web de forma visual, intuitiva y sencilla, pudiendo gestionar hojas de estilo y desarrollar con PHP.

  • NVU: (Windows / Linux / MacOS X) Extraordinario programa para el diseño de páginas web de forma visual. Alternancia entre modo WYSIWYG y modo código.

  • Bluefish: (Linux) Entorno para diseñadores de páginas web y programadores, muy ligero. rápido, sencillo, visual (WYSIWYG), trabajo simultáneo con múltiples documentos y múltiples proyectos, sintáxis para varios lenguajes de programación (Python, Perl, HTML, PHP, C, Java, JSP, JavaScript, SQL, XML, CSS, Pascal...), barras de herramientas preparadas para HTML, lenguaje español, etc.

  • Amaya: (Windows / Linux / MacOS X) Editor/navegador de XHTML, que asegura que el código cumpla con la normativa del World Wide Web Consortium.



Programación

  • Mono: (Windows / Linux / Solaris / MacOS X) Versión open source para el desarrollo de aplicaciones basadas en .NET.

  • Mono Develop: (Linux) Entorno de desarrollo para Mono.

  • Gambas: (Windows / Linux / FreeBSD / MacOS X / NetBSD / Solaris) Desarrollo visual del lenguaje Basic (como Visual Basic). Permite acceder a bases de datos MySQL, PostgreSQL y SQLlite, crear aplicaciones basadas en red, OpenGL 3D, formularios, etc.

  • Lazarus: (Windows / Linux / MacOS X) Desarrollo visual en Pascal (como Delphi). Permite acceder a bases de datos PostgreSQL, formularios, OpenGL 3D, etc.

  • Java: (Windows / Linux) El lenguaje por excelencia de los últimos 10 años no necesita presentación. Es un lenguaje orientado a objetos muy similar a C/C++, que dispone de infinidad de librerías para casi cualquier cosa: servicios web, servlets, beans, mail, gráficos 2d y 3d, applets, interfaces gráficas de usuario, acceso a bases de datos, applets, etc.

  • Eclipse: (Windows / Linux / Solaris / AIX / HP UX / Mac OS X) El entorno por excelencia para programar en Java. Permite añadir plug-ins para trabajar con otros lenguajes, servidores de aplicaciones, añadir nuevas funcionalidades al entorno, trabajar con frameworks específicos, e incluso para desarrollar otros plug-ins.

  • NetBeans: (Windows / Linux) Excelente entorno de desarrollo integrado para Java, que da soporte a todas las necesidades que necesitemos, incluyendo desarrollos web, movilidad (PDA, teléfonos móviles, etc.), Web Services, etc. También permite el uso del entorno para aplicaciones de C++

  • FreePascal: (Windows / DOS / Linux / FreeBSD / MacOS X / OS/2 / Netware / MorphOS) Compilador de Pascal y Object Pascal. Es compatible con Delphi y puede ejecutarse en diferentes microprocesadores (Intel, AMD (x86/64), PowerPC y Sparc).

  • GNU Pascal: (Windows / Linux / FreeBSD / OpenBSD / NetBSD / DOS / OS2 / MacOS X / SGI Irix / Alpha / Solaris / HP UX) Compilador de Pascal.

  • DevC++: (Windows) Entorno de desarrollo para C/C++

  • DevPascal: (Windows) Entorno de desarrollo para Pascal

  • Nemesis Pascal: (Windows / Linux) Entorno de desarrollo para Pascal, que es compatible con Delphi/Kylix.

  • PHP: (Windows / Linux) El lenguaje de generación dinámica de páginas web por excelencia, con multitud de funciones adicionales: acceso a bases de datos, web services, interpretación de XML, etc.



UML

  • Umbrello UML: (Linux) Excelente programa para entornos KDE, para el diseño de modelos UML: casos de uso, diagramas de clases y diagramas de actividades. También permite generar e importar código.

  • ArgoUML: (Windows / Linux) Extraordinario y completísimo programa para diseño de modelos UML: casos de uso, diagramas de clases, diagramas de estado, etc. Permite documentar los objetos del diagrama, realizar ingeniería inversa, generar código, etc.

  • StarUML: (Windows) Otra aplicación para diseñar modelos UML.




Gestión de proyectos

  • Gantt Project: (Windows) Una interesante alternativa a MS Project. Incluye diagramas de PERT y de Gantt, jerarquía de tareas y dependencias, diagrama de carga de recursos, importación/exportación de archivos de MS Project, etc.

  • Openworkbench: (Windows) Alternativa muy seria a MS Project. Es una aplicación muy completa y cuidada, con multitud de características: estructuras WBS con actividades, fases, tareas e hitos, dependencias entre tareas, creación de subproyectos y enlace a proyectos padre, dependencias entre proyectos, asociación de líneas guía don tareas, propiedades
    avanzadas de tareas, gestión de calendarios, autoscheduling, gestión de recursos (personas y materiales), asignación de recursos a tareas, seguimiento de tareas, porcentaje de completación de tareas, análisis de tiempos ganados, gestión de línea base, etc.




CONCLUSIONES

Esta no es si no una ínfima parte de la cantidad de aplicaciones que se pueden encontrar como software libre. Quizá en otro post me anime a exponer otro tipo de utilidades que no se han mencionado aquí.

Recordemos que el software libre no significa gratuito, y disponer del código y de la libertad de poder adaptar la aplicación a nuestras necesidades y tener las garantías de que hay toda una comunidad detrás para corregir cualquier error, da una tranquilidad que no tiene precio. La garantía de saber que el código de la aplicación está disponible te da el sosiego de confiar en un código que no es malicioso, que no está espiándote, que no está obteniendo datos sin tu permiso, y que puedes comprobar qué hace.

Aunque podamos descargarlo de forma gratuita, no significa que sea gratis. A la mayoría de los productores de software libre les interesa que su software sea conocido, y la gratuidad de la descarga y la instalación es una promoción que no tiene precio. Pero si vas a usar ese software y quieres un soporte que te solucione cualquier incidencia, o si quieres que te adapten el software a una funcionalidad específica que requieras, o quieres suscribirte actualizaciones periódicas, entonces debes contratar dicho soporte. Esa es la fuente de ingresos que tienen los desarrolladores. También puedes hacer donativos altruistas, e incluso comprar algún producto de merchandising que te ofrecen (camisetas, jarras, etc.).