Aprender el idioma básico del equipo de desarrollo es fundamental. En más de ocasión habrás oído a los programadores que te rodean decir que una página web está hecha con un determinado CMS o que han decidido implementar el siguiente desarrollo con un framework en concreto. Incluso has podido escucharles debatir si van a utilizar una u otra tecnología a la hora de analizar un proyecto, pero ¿sabes realmente a qué se están refiriendo con estos términos?
Voy a intentar explicar qué son y cuáles son sus principales diferencias…
EL LENGUAJE DE LOS DESARROLLADORES WEB
CMS, GESTOR DE CONTENIDOS
Un CMS es un sistema de gestión de contenidos (Content Management System), dicho de otro modo, es un programa creado para que un usuario pueda administrar y generar de forma sencilla el contenido de su página web sin necesidad de conocimientos muy especializados.
Existen multitud de CMS que dan soporte a los distintos tipos de webs como pueden ser tiendas online, blogs o páginas corporativas, por ejemplo. Entre los más destacados se encuentran WordPress, Drupal, Joomla o Prestashop
Sus principales ventajas son:
- Sencillez que ofrecen a los usuarios finales para gestionar sus propios contenidos.
- Gran cantidad de funcionalidades existentes en forma de módulos que pueden añadirse a lo largo de un proyecto para dar soporte a una determinada necesidad.
- Continuas actualizaciones en materia de seguridad.
Además son personalizables, permitiendo a los programadores desarrollar sus funcionalidades propias, facilitando una mayor adaptación a las necesidades concretas del proyecto.
Como desventajas, mencionar que a pesar de esta adaptabilidad que permite, en algunas ocasiones puede no resultar demasiado flexible a la hora de desarrollar tu propio código tal y como deseas, siendo necesario mantener la estructura del CMS.
Estos sistemas también requieren una atención continua de mantenimiento y actualización de sus componentes y el código fuente generado está menos optimizado.
FRAMEWORK, DESARROLLO DE APPS
Por su parte, un framework, definiéndolo de forma genérica y minimalista, es un esquema a seguir en el desarrollo de una aplicación o proyecto. Dicho de otro modo, es un patrón que nos indica la forma en la que se debe organizar el código, de forma que los desarrolladores puedan tener estructurada de una manera estándar la información que manejan (código fuente, librerías, ficheros, configuraciones, etc.).
Los frameworks pueden estar asociados o no a un lenguaje de programación. Destacan, entre otros muchos: Symfony, Ruby on Rails o Zend.
En este caso las ventajas son claras. Al estandarizarse la organización del código, resulta mucho más sencilla la realización de trabajos colaborativos en la que varios programadores tengan que trabajar sobre el mismo código. Es habitual tener que hacer modificaciones sobre desarrollos realizados por otros programadores o incluso sobre código propio creado hace ya tiempo, por lo que resulta de vital importancia tener todo bien organizado para identificar de forma rápida dónde se encuentra cada uno de los recursos.
Además es fácil encontrar herramientas para un framework que ayuden a implementar una determinada función.
Por tanto, las aplicaciones realizadas con framework permiten un mayor desarrollo a medida, y a pesar de que la curva de aprendizaje es también mayor, a largo plazo facilita el mantenimiento del código.
Espero que esta breve explicación te haya ayudado a aclarar algunos conceptos, ¿o seguirás mirando raro a los programadores cuando les oigas hablar sobre este tema?