# Slash (CMS)

Slash (un acrónimo recursivo de Slashdot-Like Automated Storytelling Homepage) es un potente servidor libre de aplicaciones web, creado originalmente para dar servicio en Slashdot, una de las bitácoras colaborativas más populares y antiguas que existen.

## Historia

Las primeras versiones de Slash, muy primitivas, fueron escritas por Rob Malda, fundador de Slashdot, en la primavera de 1998. Tras la compra de Slashdot por parte de Andover en junio de 1999, pudieron contratarse varios programadores que reescribieron completamente el código, estructurándolo y haciéndolo escalable, pues había pasado en solo dos años de unos cientos de usuarios a decenas de miles: se encargaron de ello Brian Aker, Patrick Galbraith y Chris Nandor, que dio lugar a la versión 2, publicada en 2001, y pronto revisada en profundidad en la versión 2.2, la última versión oficial y empaquetada. En la actualidad, Slash está mantenido por Jamie McCarthy y Chris Nandor, entre otros, ya que sigue el modelo bazar del software libre y cualquiera puede contribuir al desarrollo.
Al paquete se le llama a menudo incorrectamente Slashcode, que es el nombre del sitio web de desarrollo y del proyecto de SourceForge. Aunque la última versión publicada oficialmente fue la 2.2.6 (otoño de 2001), Slash sigue en constante desarrollo y se pueden obtener versiones actualizadas en sus repositorios de CVS, perfectamente usables en producción (de hecho, la versión que ejecuta Slashdot es una versión de CVS).

## Arquitectura

Slash consiste en un conjunto de módulos, plugins y applets (scripts o programas ejecutados por el servidor) escritos en Perl. A partir de la versión 2, proporciona una potente API (interfaces y bibliotecas de desarrollo para los programadores) que permite construir plugins y pequeñas aplicaciones web a terceras partes de una manera sencilla y rápida. Está diseñado para ejecutarse en el servidor web Apache con el módulo mod_perl, que le otorga grandes prestaciones. El gran rendimiento de mod_perl se logra manteniendo en memoria compilado todo el código Perl de las bibliotecas que se van cargando. De esta forma, llamadas repetidas a funciones ya cargadas provocan llamadas a código precompilado en memoria por lo que su ejecución es muy rápida. Eso le permite servir páginas dinámicas con unos rendimientos muy altos en sitios con mucho tráfico, comparable a la mejor de las opciones comerciales, del orden de decenas de páginas por segundo y varios millones de páginas por día. Dispone de un sofisticado sistema de caché de páginas y un sistema de abstracción de base de datos relacional SQL (aunque solo el port de MySQL es mantenido actualmente) para el almacenamiento y la recuperación de datos. Dispone también de soporte para un lenguaje de plantillas de Perl (Perl Template Toolkit), que permite introducir código en las plantillas de HTML (al estilo javascript, pero ejecutado por el servidor) sin necesidad de que los webmasters toquen la API o los applets. La lógica y el diseño están totalmente separados. Tiene también todo un conjunto de scripts que realizan automáticamente tareas rutinarias en la base de datos.

## Funcionalidad

Slash está orientado a sitios web con tráfico alto o muy alto, donde ofrece excelentes prestaciones, tanto en velocidad como en estabilidad. Su escalabilidad es otro de sus puntos fuertes: permite instalaciones en clusters, con diversos servidores web en paralelo y sistema de replicación de base de datos incluido de serie. Por el contrario, no está tan optimizado para sitios modestos con escasos recursos de hardware (o que necesitan compartirse con otros servicios), donde otras opciones más ligeras pueden dar mejor rendimiento. Tampoco dispone de un sistema automatizado de instalación vía web y requiere ciertos conocimientos del lado del servidor por parte del administrador, lo cual le ha dado fama de complejo. A eso se ha sumado el que desde hace años no se saque un paquete estable, y exija a quien quiera instalarlo obtenerlo desde CVS, instalar y compilar un buen número de módulos de Perl y ejecutar diversos scripts de shell. La interfaz de administración, algo tosca, tampoco ha contribuido a su popularidad entre los webmasters menos experimentados.
Slash, sin embargo, ha creado muchos imitadores (llamados SlashClones, o clones de Slash, normalmente escritos en PHP y prescindiendo de sus opciones más avanzadas) y está publicado bajo los términos de la licencia GNU GPL.