Crear una web desde cero: ¿quién lo haría en su sano juicio?

Crear una web desde cero: ¿quién lo haría en su sano juicio?

El otro día me topé con un artículo de Hackanoon que planteaba algunas ventajas de desarrollar una web desde cero. A la brava. A pelo. From scratch...

El autor asegura que prefiere desarrollar sus productos línea a línea, sin usar librerías ni frameworks. Que así es como uno aprende, dice. Y la verdad es que estoy de acuerdo en ese punto: desarrollar un website desde cero es la mejor forma de aprender.

¿Pero proporciona alguna otra ventaja interesante? ¿Merece la pena la inversión de esfuerzo? Y lo más importante: ¿quién en su sano juicio programaría en 2018 una página web etiqueta a etiqueta?

La pregunta puede resultar algo capciosa. Primero hablemos de ventajas e inconvenientes:

Inconvenientes de programar un sitio web desde cero

I. Poco ágil

En ciertos proyectos el time-to-market es de vital importancia. Desde ese punto de vista, desarrollar desde cero no es nada ágil, sobretodo si estamos en un marco de trabajo tipo Scrum o si el objetivo es montar un prototipo. Reciclar código de terceros, total o parcialmente, permitiría hacer una web mucho más rápido.

II. Curva de aprendizaje

Los lenguajes front-end deben convertirse en tu segundo idioma. Eso requiere mayor tiempo de aprendizaje del que necesitas para adaptar un simple framework. Para eso sólo tendrás que leerte la documentación sin necesidad de entender qué hay debajo..

Además de ser un experto en esos lenguajes también deberás dominar las buenas prácticas de programación. Y hay que hacer mucho hincapié en esto, pues los frameworks ya implementan esas buenas prácticas.

III. Difícil de mantener

El código escrito desde cero requiere mayor esfuerzo de mantenimiento. Refactorizar y actualizar será una tarea constante durante el ciclo de vida. En ese sentido se trata de una responsabilidad muy grande. Casi como cuidar de un perro o un gato. Además esto implica un requisito adicional: mantenerte constantemente informado y formado, para que tu producto no deje de funcionar después del último release de Firefox.

IV. Compatibilidad entre navegadores

Muchos frameworks ya vienen preparados para cubrir las particularidades de múltiples plataformas. Hacer una aplicación cross-browser a pelo puede ser una tarea mortificante, que puede llevar a tener que reescribir un CSS diferente para cada navegador.

V. Coste elevado

El esfuerzo necesario para desarrollar desde cero una web puede ser mucho mayor que si partimos de un template. Esto se traduce, naturalmente, en un incremento en los costes ya sea en tiempo, dinero o ambos. Sin embargo, en el largo plazo es posible que se dé justamente la situación contraria…

Pero esto lo veremos en las ventajas:

Ventajas de programar un sitio web desde cero

I. Aprendizaje acelerado

Si programas a pelo, vas a aprender sí o sí. Puede que al principio tú código no sea el más limpio, pero a la larga te convertirías en un verdadero experto, cosa que no lograrías se te limitaras a usar o modificar un framework. De hecho hoy día no es fácil encontrar expertos con un entendimiento profundo de un lenguaje de programación, son rara avis muy cotizados.Desde ese punto de vista también es una ventaja, pues es una inversión para tu currículum.

Por cierto, si tu objetivo es aprender a desarrollar una web y no sabes por dónde empezar, echa un vistazo a este tutorial de Hostinger, que de paso pueden ayudarte si tienes la necesidad de comprar dominio.

II. Máximo control

Programar línea a línea te proporciona una comprensión de tu proyecto casi absoluta. Sabes exactamente qué es lo que hay y cómo está hecho. Conoces sus puntos fuertes y sus puntos débiles. Esto te permite mantenerlo limpio y eficiente hasta puntos insospechados. Sin contar con la facilidad para detectar bugs o malfuncionamientos, lo cual te ahorraría en el largo plazo muchos quebraderos de cabeza.

III. Tu código, tus reglas

Cuando adaptas una plantilla/framework de terceros tienes que someterte al criterio de otros. Programar es una actividad creativa, algunos de hecho lo consideraran un arte. Programar a tu manera no sólo te va a permitir desarrollar tu creatividad, también te va a permitir desarrollar nuevos patrones mentales para alcanzar un diseño con mínimo esfuerzo.

IV. Optimización al máximo

Muchas librerías incluyen una cantidad de funciones que quizás en tu proyecto nunca utilizarás. Por eso, en un código artesano nunca verás líneas HTML de más, ni funciones JS que están ahí sin que sean utilizadas. Además podrás introducir mejoras de rendimiento específicas para tus requisitos, cosa que sólo puede hacerse a mano y después de un profundo análisis.

V. Independencia

Esta ventaja compensa la dificultad del mantenimiento, pues nuestra aplicación no depende de las actualizaciones (o ausencia de ellas) por parte del proveedor del framework. Nuestra web nunca estaría sometida por las cadenas caprichosas de un tercero.

Cuándo usar plantillas o frameworks

Yo era uno de esos espíritus barbudos y puristas de la vieja escuela que programaban todo en Linux con vim. Me sentía como el Elegido modificando el código de la Matrix. Así que comprendo el placer demiúrgico que proporciona el control absoluto del código, sin asistentes ni librerías. Todo un espartano del software… y también una máquina de perder tiempo. Puede que los templates no sean la solución para todo website, pero sin duda hacen nuestra vida mucho más fácil, nos ahorran tiempo y en ciertas situaciones los consideraría una herramienta imprescindible.

Asi se ve un programador desde fuera

Por ejemplo, hay determinados casos en los que el esfuerzo adicional de programar desde cero no va a resultar en un mayor beneficio final; de hecho es muy probable que los beneficios obtenidos por una parte se pierdan al compensar la inversión adicional de tiempo y dinero. Es una cuestión de economía conocida como ley de los rendimientos decrecientes. Esto no significa que debamos hacer las cosas siempre deprisa y barato, sino que siempre debemos calibrar el ratio coste-beneficio.

Aclarado esto, hay que tener en cuenta que todas las plantillas y frameworks tienen sus limitaciones. En el caso del desarrollo front-end las plantillas son excelentes herramientas para hacer prototipado rápido del diseño tanto gráfico como funcional. Por cierto que muchas plantillas y frameworks están llenas de pequeños “hacks” para lograr que la vaina funcione, y que en algún punto nos pueden hacer perder el control (tanto del código como de los nervios :)

Además, su naturaleza suele ser “genérica”. Nunca encontrarás una plantilla que esté perfectamente ajustada a tu proyecto web, que no necesite el más mínimo retoque. No existen plantillas descargables para webs que son únicas en su naturaleza, como Facebook, Twitter o Gmail. ¡Alguien tuvo que desarrollarlas a pelo en algún momento!

Entonces, ¿cuándo es conveniente usar plantillas y/o frameworks?

1) Cuando desarrolles un prototipo o un MVP (producto mínimo viable):  para producción usa código artesanal.

2) Enfoque mix-and-match: montar un layout cross-browser que sirva de base, aprovechando el grid de una plantilla, reciclando módulos pre-fabricados de un framework o los elementos de compatibilidad de otro. Este enfoque me gusta mucho porque es una solución híbrida entre usar plantillas y programar desde cero.

3) Si tu trabajo no sufrirá muchos cambios funcionales o técnicos a lo largo del tiempo. Es decir, si tu código no necesita mucho mantenimiento. Por ejemplo, la web corporativa de una panadería de barrio. En este caso puedes permitirte depender de un framework en producción.

4) En proyectos Agile que necesiten puestas en producción muy rápidas – el framework base puede ir optimizándose o eliminándose de forma progresiva.

5) Perfect match: en la rara situación de que la plantilla se adapte perfectamente a tu caso particular.

En todas las demás situaciones, sobretodo para lanzar un producto profesional, yo apostaría por un desarrollo limpio, “from scratch”. Sin embargo, para la mayoría de sitios web puede valer el enfoque híbrido o mix-and-match que hemos visto anteriormente.

Éste es el que nos proporciona el mejor equilibrio entre control del código y agilidad.

A modo de conclusión

No te dejes engañar por la pregunta del título. Yo creo que tiene mucho sentido desarrollar un producto web desde cero. No me parece ninguna locura, a pesar de la tendencia actual de usar frameworks para todo, especialmente si estamos desarrollando algo muy específico para lo que no existen templates ni frameworks ni librerías adecuadas.

En este sentido, las ventajas que proporciona el código artesano no tienen parangón. Lo que pasa es que nos hemos acostumbrado a la comodidad de poder desplegar un site en cuestión de minutos si usamos un Bootstrap, pero el uso de estas herramientas tiene su ocasión.

En otras palabras, nunca deberíamos tratar de sacar una muela utilizando un destornillador.

Por otra parte hay que tener cuidado con lo de dejarse llevar por el perfeccionismo ni por ese afán de programar por amor a la misma programación. Decía Shaw:

"¿Qué hombre inteligente si le dieran a elegir escoger entre vivir sin rosas o vivir sin berzas no correría a asegurar las berzas?"

Así pues, usemos el sentido común para determinar: 1) cuál es nuestro caso y 2) hasta qué punto nos conviene 2.1) trabajar “from scratch”, 2.2) utilizar una plantilla o 2.3) un enfoque mix-and-match.

¿Y vosotros, qué opináis?

Previous ¿Podría Google tener el futuro resuelto?
Next El lado oscuro del RGPD

About author

Angel
Angel 171 posts

Siempre quise ser inventor y escritor: por lo primero me hice ingeniero, y en cuanto a lo segundo, escribo aquí de vez en cuando sobre telecomunicaciones y tecnología. Me gustan los robots, los perretes y los libros (analógicos).

You might also like

Tutorial 3 Comentarios

Validación de formularios con Jquery Engine: Instalación y cómo usarlo en 5 minutos

Os presento este simpático plugin de Jquery que os permitirá realizar validaciones en el cliente de una manera muy sencilla y rápida. Puesto que aun las validaciones HTML5 no tienen

Tutorial 0 Comentarios

Importar en phpMyAdmin: ¿cómo incrementar el límite de fichero?

A veces necesitamos importar una base de datos de gran tamaño utilizando el gestor de phpMyAdmin. Si el máximo permitido es insuficiente para realizar dicha importación, debemos “agrandarle la boca”. Para

Desarrollo 0 Comentarios

Truco: Actualizar la altura del contenedor de un árbol JSTree

Ya hemos hablado del plugin JSTree en otras ocasiones. Ahora abordarmos un problema muy particular, por lo que no debes seguir leyendo este apunte si no es tu caso (a

0 Comentarios

Ningún comentario... todavía ;)

Tú puedes ser el primero en comentar este artículo!

Deja un comentario