Si habitualmente trabajas con webs, seguro que en algún momento has oído hablar de diferentes gestores de contenidos, diferentes lenguajes de programación y diferentes frameworks.
¿Qué es un framework?
Al igual que cuando utilizas wordpress para hacer una web, te ahorras un montón de trabajo, ya que te aprovechas del código del cms, podemos definir un framework como un conjunto de código revisado por diferentes desarrolladores que permite ser ampliado de forma escalable por otros para hacer cualquier aplicación, web o sistema que emplee software.
Para que sea más sencillo 😱, un framework podría ser como un conjunto de piezas de lego que encajan a la perfección entre sí, para que solo tengas que preocuparte de montar la casa que más te guste, ya que gracias al trabajo previo, sabes que no habrá problemas de compatibilidad y que tanto figuras como otros elementos tendrán las dimensiones adecuadas y funcionarán perfectamente.
Cuando usas este sistema para desarrollo web, solo tienes que preocuparte de las funcionalidades importantes de la web, ya que la mayoría de cosas de menor nivel ya vendrán hechas (por ejemplo la integración con la plataforma de pago) y solo tendrás que adaptarla.
De este modo solo se emplea el tiempo en tareas de alto valor, como funcionalidades únicas.
¿Por qué utilizamos frameworks?
Todos los cms tienen sus limitaciones. Habrá webs que necesitarán unas funcionalidades que ningún plugin de wordpress realizará tan bien como algunos frameworks de desarrollo de software.
Desarrollar, diseñar y testear una web es un proceso complejo. Solo para la parte de código un desarrollador tendrá que estar pendiente de que la sintaxis sea correcta, de las integraciones entre diferentes elementos y mucho más.
Hoy en día casi nadie desarrolla a mano y se utilizan plantillas, cms o frameworks para tener todo el trabajo en un mismo sitio y poder controlarlo mucho mejor.
Algunas de las razones por las que utilizamos frameworks en desarrollo de web son las siguientes:
Ventajas de utilizar un framework en desarrollo web |
---|
Se reduce el tiempo de desarrollo de cualquier web. |
El proceso de testing y depuración de código es mucho más sencillo. Al ser open source, colaboran muchos expertos y se detectan errores mucho antes. |
Muchos fragmentos de código que incluyen funcionalidades, ya están testeados por la comunidad y se pueden utilizar directamente. |
Permite trabajar con nuevos lenguajes de programación de manera sencilla. |
Evita código duplicado y redundante. Al pasar por tantas revisiones externas, el código resultante está muy optimizado. |
El código es más seguro. |
Incluye buenas prácticas de programación y de diseño. |
¿Qué incluye un framework?
De la misma manera que se instala un wordpress, cualquier framework necesita instalarse antes de poder usarse. Al instalarlo se creará un directorio con recursos, de manera similar a lo que pasa con otros cms.
Por ejemplo, en las siguientes imágenes tienes parte de las carpetas que genera una instalación de wordpress y debajo una captura del directorio que genera la instalación del framework Laravel.
Dentro de las carpetas de instalación encontraremos archivos de código, diferentes plantillas, máquinas virtuales, compiladores y otro tipo de recursos.
¿Cuáles son los tipos de framework más comunes?
Este entorno de trabajo se crea para utilizarlo en base a un lenguaje de programación, lo que hace que los framework más utilizados son aquellos diseñados para los lenguajes de programación más comunes como Python, Javascript y php.
Dentro del mundo de los frameworks, tenemos diferentes tipos en función de lo que vayamos a hacer. Vemos algunos ejemplos
✅Frameworks de desarrollo web: Para hacer web, alguno de los más conocidos son AngularJS, ReactJS, Laravel, Symfony, Django, Ruby on Rails y cakePHP entre otros.
✅Frameworks de desarrollo para aplicaciones móviles: Flutter, IONIC, Xamarin, Unity, Kotlin. Cada tipo de app suele tener sus propios frameworks, por ejemplo Unity y Corona SDK están enfocados a juegos.
✅Frameworks para Data Science: Indicados para Data Science y minería de datos. Los más conocidos son Pytorch, Apache Spark, Tensor Flow, Mongodb y Hadoop.
Como aquí estamos enfocando este post a desarrollo web, te vamos a mostrar una tabla con ejemplos de webs, contando que sistema se utiliza para gestionarlas. Algunas de estas webs combinan diferentes frameworks, por lo que bien podrían estar en más de una columna.
Angular | React JS | Symfony | Ruby on Rails | Django |
---|---|---|---|---|
The Guardian | Spotify | Basecamp | Discuss | |
PayPal | Dropbox | Blablacar | Github | |
Lego | Airbnb | Pornhub | Shopify | |
Netflix | Tesla | Dailymotion | Groupon | Youtube |
Upwork | Trivago | Kickstarter | The Washington Post |
Como has podido ver, pocas webs tan grandes como las que hemos mencionado en la tabla emplean cms. Este tipo de proyectos suelen recurrir a la utilización de frameworks porque no encuentran una solución genérica a sus necesidades.
Es importante resaltar, que otras muchas empresas inician su proyecto con un framework concreto, pero lo van adaptando hasta tal punto, que se acaba convirtiendo en algo a medida.
¿Ya sabes qué es un framework y por qué se utiliza?. Si conoces algún ejemplo más, escríbenos ya que ¡estaremos encantados de ampliar la lista!