El sitio web Web Framework Benchmarks compara casi todos los frameworks del “mundo mundial” (bueno, en realidad casi 100 frameworks) y de todos los lenguajes de programación web.
Tag: framework
Comparativa de frameworks de CSS
En CSS Front-end Frameworks with comparison podemos encontrar la siguiente comparativa:
¿Cómo competir con esto?
Recientemente recibí este correo:
Quería aprovechar la ocasión para hacerle una pregunta que me ronda por la cabeza. A partir, de los anteriores videos y usando el framework de Bootstrap realice pruebas diseñando una página Web. Tras esto, y en el punto en el que debía incorporar código para la validación de los usuarios contra la BD, cargar noticias, es decir, darle funcionalidad me surgió la siguiente duda. Existen herramientas como Joomla basadas en templates que automatizan todo el desarrollo de páginas Web añadiendo módulos sobre las plantillas que hacen mucho del trabajo que debemos realizar a la hora de desarrollar una Web, ¿Cómo competir con esto?, Cual es su opinión sobre este tema. (Al final el usuario valora lo que ve no lo que hay detrás)
¿Cómo competir con esto?
Esta es una cuestión que me plantean incluso mis alumnos alguna vez, ¿por qué estudiar HTML, CSS, JavaScript y PHP? ¿Por qué no estudiar un gestor de contenidos como Joomla, Drupal o WordPress? Se pueden hacer webs mejores, en menos tiempo, etc.
En primer lugar, tanto en mis clases en la universidad como en el curso iDESWEB, yo lo que enseño es a desarrollar aplicaciones web. Lo que yo enseño te permitiría crearte tu propio framework, como Codeigniter o Symfony, o incluso tu propio gestor de contenidos como Joomla, Drupal o WordPress. Aunque existan esas herramientas, también tiene que existir alguien que cree y mantenga esas herramientas. Por tanto, aprender a programar con HTML, CSS, JavaScript y PHP es necesario, hace falta gente que sepa.
Un gestor de contenidos no es la panacea, no es la solución para todos los problemas. Desgraciadamente, mucha gente aprende algo y se cree que eso es la solución para todo. El one size fits all pocas veces existe en ingeniería. Sí, existen plugins para los gestores de contenidos que te permiten hacer muchas cosas sin tener que bajar a bajo nivel, sin tener que programar, pero otra vez volvemos a lo mismo: alguien tiene que programar esos plugins. Y muchas veces el plugin no se adapta exactamente a lo que necesitas y tienes que implementar ciertas modificaciones o adaptaciones.
Un gestor de contenidos es muchas veces matar moscas a cañonazos. En la entrada sobre efectividad en la Wikipedia lo explican muy bien:
La efectividad es la capacidad de lograr un efecto deseado, esperado o anhelado. En cambio, eficiencia es la capacidad de lograr el efecto en cuestión con el mínimo de recursos posibles viable.
Ejemplo: matar una mosca de un cañonazo es eficaz (o efectivo: conseguimos el objetivo) pero poco eficiente (se gastan recursos desmesurados para la meta buscada). Pero acabar con su vida con un matamoscas, aparte de ser eficaz es eficiente.
Con los conceptos de eficaz y efectivo llegamos a la madre del cordero: un gestor de contenidos, como Joomla, Drupal o WordPress, consume muchos recursos. ¿Cuántos? Muchos… Una vez encontré una página web en la que se comparaba el tiempo de mostrar un mensaje como “Hello world!” con un HTML estático, con un PHP que ejecuta echo “Hello world!” y con WordPress que tiene una entrada que muestra “Hello world!”. La diferencia de consumo de recursos y de tiempo de ejecución era abismal entre WordPress y las otras dos opciones.
Desgraciadamente, no puedo encontrar esa página otra vez, pero sí que conozco algunas páginas que hacen la misma comparativa pero a nivel de frameworks de PHP (ya hablé de ello en ¿Es lento PHP?):
Por ejemplo, en el último tenemos:
- Apache static file: 2991.65 Requests/sec with a time per request of 0.334ms.
- PHP on Apache: 2518.25 requests/sec with a time per request of 0.397.
- Symfony: 32.21 requests/sec with a time per request of 31.048ms.
- CakePHP: 34.90 requests/sec with a time per request of 28.657ms.
Solamente utilizar un framework de PHP añade una penalización brutal al tiempo de ejecución. No digamos ya el uso de un gestor de contenidos…
Sí, el tiempo de ejecución de un framework o de un gestor de contenidos se puede mejorar, se puede optimizar, pero en el fondo, siempre existirá una diferencia importante.
Volviendo a la pregunta que se me planteaba, “¿cómo competir con esto?” y “al final el usuario valora lo que ve, no lo que hay detrás”, eso forma parte de los requisitos que se tienen que tener en cuenta a la hora de afrontar un trabajo. ¿El cliente quiere algo exclusivo, único, que sea eficiente, seguro, hecho a medida? Lo veo difícil con un gestor de contenidos.
Esto me recuerda los tres tipos de trabajos que se pueden hacer:
- Un buen trabajo rápido (no saldrá barato).
- Un trabajo barato y bueno (no será rápido).
- Un trabajo barato rápido (no será bueno).
Está claro que en el segmento de las webs a 300€ en una semana, plantearse un desarrollo a medida realizado desde cero es un sinsentido. En ese segmento, una web realizada con un gestor de contenidos es una muy buena opción. Pero para alguien que está dispuesto a gastarse varios miles o varios cientos de miles de euros, lo que se pueda hacer con un gestor de contenidos seguramente no le será suficiente.
En realidad, todo esto no es un problema exclusivo del desarrollo web. El mismo problema aparece en otros contextos y se podría encuadrar en problemas que existen en la sociedad actual, como por ejemplo la McDonaldization.
SPA CSS Framework
SPA CSS Framework es un “marco de trabajo CSS” para CSS similar a 960.gs o Bootstrap. Pero tiene de especial que están desarrollado en Argentina y está íntegramente en español.
Incluye la típica rejilla, diseños para botones, diseños para marcos y algunos efectos curiosos.
Estadísticas de uso de los frameworks de JavaScript
Estadísticas de uso de los frameworks de JavaScript en la primera semana de septiembre 2013: JavaScript Usage Statistics.
Sobre los frameworks
Me fascina la cantidad de frameworks que hay… y los pocos que sobreviven. Hace nada, ¿cuatro años?, estaba de moda Script.aculo.us, luego fue MooTools, luego fue Dojo, ahora es jQuery, ¿quién será el siguiente? Y estos son los conocidos, por el camino se quedaron muchos más.
Con PHP ocurre lo mismo, hay cientos o miles de frameworks. Hace tiempo conocí uno llamado Hydrogen, tenía buena pinta, se entendía muy bien (Hydrogen Overview). Ahora he vuelto a visitar su página web… y nada ha cambiado, el proyecto se quedó parado, como tantos otros.
FuelPHP, otro framework de PHP
FuelPHP es un framework para PHP que se anuncia como simple, flexible y desarrollado por la comunidad para PHP 5.3.
Tampoco es nuevo, ya tiene varios años, pero lo acabo de descubrir. Mientras que antes el problema era cuál elegir porque no había mucha oferta, ahora sigue estando el problema de cuál elegir, pero por la sobreabundancia de posibilidades. En la Wikipedia podemos consultar el artículo Comparison of web application frameworks – PHP y en el sitio web PHP Frameworks tenemos otra comparativa.
Laravel, otro framework de PHP
Últimamente no dejan de llegarme noticias de frameworks de PHP por todos los lados. Conozco una persona que parece que cada mes tiene que cambiar de framework (!?).
El último que me han contado es Laravel. Es interesante el API que tiene para el acceso a la base de datos, Fluent Query Builder, que intenta proporcionar un interfaz cercano al lenguaje natural, como por ejemplo:
Retrieving a single record from the database:
$user = DB::table('users')->first();Retrieving a single record by its primary key:
$user = DB::table('users')->find($id);
Y también he encontrado algo que en otros frameworks no he visto: Redirecting With Old Input. Si te dedicas al desarrollo web, sabrás de qué estoy hablando y dirás “¡ajá”.
¡Cada vez se pone más difícil elegir un framework!
¿Quieres hacer tu propio framework de JavaScript?
No te lo recomiendo, con la cantidad de frameworks que ya existen, lanzarse a hacer uno propio es un poco pérdida de tiempo. Recuerda, no reinventes la rueda. Pero quizás tengas entre manos un proyecto especial en el que sea necesario trabajar con un framework propio.
En el sitio web Let’s Make a Framework te explican paso a paso cómo crear tu propio framework de JavaScript. Aunque no lo vayas a hacer, es un recurso muy interesante, ya que te ayuda a comprender cómo están hechos los frameworks que seguramente ya usas.
Preprocesamiento de CSS
El preprocesamiento de CSS es una característica que se ha puesto de moda durante el último año y que se espera que se incorpore como una característica propia de CSS en una de las próximas versiones.
El preprocesamiento permite trabajar con constantes, variables, expresiones y hasta funciones en el código CSS, para hacerlo más mantenible y fácil de escribir. Básicamente, es dotar a CSS de características cercanas a un lenguaje de programación.
Hasta ahora conocía el sistema LESS, que como muy bien indica su nombre, tiene el propósito de ayudarte a escribir menos código.
Ahora, gracias al artículo Preprocess THIS!, he descubierto el sistema Sass. Según nos cuentan:
Sass is a meta-language on top of CSS that’s used to describe the style of a document cleanly and structurally, with more power than flat CSS allows. Sass both provides a simpler, more elegant syntax for CSS and implements various features that are useful for creating manageable stylesheets.