El software, tal y como lo conocemos hoy, es un pilar que rige la mayoría de las cosas que ocurren en nuestro planeta. Prácticamente todas las acciones que guardan alguna relación con terceras personas y con la tecnología, tienen o han tenido una interacción con algún dispositivo y, en consecuencia, con una pieza de software que lo ha estado pilotando.
Desde la caja del supermercado, hasta el sistema de mensajería que usamos regularmente con los compañeros, están regidos por alguno de los tipos de software que conocemos.
Pero no todos operan en el mismo nivel, y es por ello que se torna necesario realizar una clasificación de software común que nos permita diferenciarlos y sobre todo facilita establecer una base común para entendernos cuando hablamos de ellos.
¿Qué es un software? Definiendo el concepto desde la base
Antes de clasificar los tipos de programas es importante entender de base qué es un software en grandes líneas. Sin extendernos demasiado, se considera a cualquier automatización que permita realizar un proceso lógico.
Un programa es algo tan sencillo como la lógica que permite hacer cálculos a la calculadora más básica pulsando unos botones. El rizo puede seguir rizándose aún más, pero aquí lo importante es darse cuenta de que detrás de cualquier dispositivo siempre hay un programa o varios que operan sobre él.
La clasificación de software en dos grandes ramas
Pero no todos los programas tienen la misma naturaleza. Pocas fuentes coinciden en una misma categorización. En este caso vamos a plantear categorizaciones de software por objeto y licencia, que son las más populares.
Tipos de software por su objeto
En función del lugar que ocupan dentro de una jerarquía u operación los programas se pueden dividir por su funcionalidad o su objeto.
- Aplicaciones: en primer lugar tenemos las “apps” que todos conocemos. Aunque parezca raro, este tipo de software ocupa el lugar más bajo en la jerarquía dado que de alguna forma, todos los otros tipos que veremos a continuación tienen que proceder y cargar antes que las aplicaciones puedan abrirse paso.
- Sistema operativo: este es el segundo tipo de software más popular. Para aquellos menos expertos en materia informática, solo conocerán Windows, iOS y Android, que son con diferencia los más usados en la actualidad. Algunos fieles a Apple también conocerán Mac OS X y, posiblemente, GNU/Linux también sea reconocido por una minoría (sistema en el que se basa Android realmente). El sistema operativo es, en cierto sentido, el cerebro que controla casi todas las piezas de software de un sistema, a excepción de la que veremos a continuación.
- Firmware: un tipo de software ya menos conocido, cuyo objetivo principal es de proveer las bases para arrancar al sistema operativo. Se le suele llamar ROM, aunque es errónea esta denominación. La ROM es donde se almacena el firmware.
- Otros tipos menos comunes: aquí nos encontramos con otros programas muy técnicos como los traductores, utilidades de sistema, drivers de dispositivo, etc… Con diferentes misiones pero con un mismo fin: mantener el sistema en general funcionando en colaboración con el sistema operativo.
Tipos de programa por su licencia
Otra clasificación menos conocida es por la licencia que sustenta a dicho software, es decir, la libertad para su uso, modificación, distribución, etc. Según la fundación de GNU (la FSF) existen dos grandes ramas: el software privativo y el software libre.
Las licencias de tipo privativo son relativamente simples, dado que cohíben todas las libertades y solo dan flexibilidad en el uso:
- Licencias Copyright: comerciales en caso de que sea de pago.
- Shareware: es un tipo especial que solo permite un uso bajo restricciones explícitas.
- Freeware: es similar a shareware pero gratuito, con condiciones de uso.
- Dominio público: equivalente a freeware pero sin condiciones de uso y de distribución. Provienen generalmente de una versión con Copyright caducado por fallecimiento del dueño.
Por otro lado las licencias de código libre también son muy diversas. En grandes líneas podríamos describir tres grandes subgrupos, basándonos en la libertad que se engloban bajo una misma taxonomía fundamentada en la libertad de acceso al código fuente.
- Dominio público con código fuente: es la más restrictiva de todas, permite hacer cualquier cosa con el código, pero no facilita necesariamente la distribución futura.
- Licencias laxas: con menos restricciones que el dominio público, pero tienen condiciones no reconocidas bajo el manifiesto de la FSF.
- Licencias Copyleft: son las que mayores libertades aportan, y existen decenas de ellas con diferentes cláusulas que aportan mayor o menor flexibilidad. Las más reconocidas son licencias de software llamadas GPL.