¿Qué suele hacer que un desarrollador web front-end sea lento?

La Web se basó originalmente en los estándares descritos por Tim Berners-Lee en 1989. En su forma más simple, las ubicaciones o documentos se especifican mediante URL (Universal Resource Locators) y el contenido de los documentos está codificado en HTML (Hyper Text Markup Language).

Berners-Lee estaba proponiendo una solución para los científicos del CERN (Conseil Européen pour la Recherche Nucléaire) que les permitiría compartir fácilmente sus publicaciones de investigación.

Su solución funcionó de manera brillante y con el lanzamiento del navegador Netscape y el servidor Apache HTTP en 1995, la “revolución de Internet” se convirtió en un fenómeno convencional.

Esto es importante porque el diseño fundamental de la “World Wide Web” fue solo para vincular documentos de texto de una manera simple (usando enlaces de hipertexto). Nunca fue diseñado para mostrar gráficos, transmitir videos, proporcionar comunicaciones seguras o manejar interacciones complejas de los usuarios.

Por supuesto, estas son todas las capacidades que los usuarios quieren tener. Y pueden lograrse, pero solo con considerables dificultades.

Por ejemplo, el único lenguaje de programación que se ejecuta de forma nativa en los navegadores es JavaScript.

El prototipo de JavaScript fue creado en solo diez días por Brendan Eich mientras trabajaba para Netscape en 1995 para cumplir con una fecha límite de lanzamiento. Se suponía que era un “lenguaje de pegamento” que cargaría otros recursos (presumiblemente escritos en Java) para hacer el trabajo real.

Hoy en día, hay casi cuatro mil millones de personas que usan la web para todos los propósitos imaginables y de una manera que los primeros diseñadores nunca anticiparon. Y, las tecnologías web dominantes que utilizamos todavía se basan en gran medida en estos estándares que se establecieron en 1989 y 1995.

Hay varias bibliotecas JavaScript grandes disponibles ahora que permiten la creación de interfaces de usuario muy sofisticadas. Los que estoy más familiarizado son ExtJs, Qooxdoo y GWT. Pero todos tienen curvas de aprendizaje muy largas (meses y años) para ser utilizadas de manera efectiva.

Para resumir mi respuesta:

  • Estamos utilizando tecnologías web de maneras que superan con creces sus objetivos de diseño.
  • la construcción de UI modernas para la web requiere combinar tecnologías dispares (HTML, CSS y JavaScript) de maneras muy complejas
  • La mayoría de los marcos de interfaz de usuario (Bootstrap, React, Angular, Ember, etc.) solo resuelven partes del problema
  • los marcos de IU más completos requieren una larga curva de aprendizaje y, a veces, una tarifa de licencia alta
  • los marcos de UI más populares están sobrevendidos en cuanto a sus capacidades; por lo que puedo decir, son populares porque todos los usan y todos los usan porque son populares

Casi cualquier persona puede crear una página HTML simple después de unas horas de seguir un tutorial.

Entonces, parece engañosamente simple crear algo más complejo. Pero crear UI complejas utilizando las herramientas actuales no es nada simple.

El poeta, Alexander Pope, lo dijo mejor:

Un poco de aprendizaje es una cosa peligrosa…

Un poco de aprendizaje

Desarrollador front-end , como no en un diseñador y alguien que puede estar detrás del psd de un diseñador: la mayor amenaza para la velocidad es la fragmentación. Por ejemplo: desarrollo de stop-and-go, cambio de marcha, multitarea sobrecargada, básicamente, falta de enfoque. Incluso los proyectos de desarrollo más simples están altamente involucrados, y los proyectos de aceleración (desaceleración de uno a otro) pueden ser increíblemente turbulentos.

Soy un desarrollador muy capaz, según las evaluaciones de otras personas, y me lleva casi una hora, según mi evaluación, alcanzar mi velocidad ideal después de comenzar una tarea. Algo de esto es comenzar mis canalizaciones de compilación, iniciar mi entorno de desarrollo, recordar qué demonios estaba haciendo y cómo lo estaba haciendo, cosas así.

Si cambio de tareas / proyectos de 8 a 10 veces en un día de trabajo, probablemente nunca haya alcanzado la velocidad.

Números reales: en mi peor carga, he promediado 4 minutos de concentración durante un día de trabajo (fuera de mis registros de Toggl: horas de trabajo / número de registros). Los proyectos de desarrollo que se realizaron durante este tiempo registraron casi 120 horas para la entrega. Proyectos casi idénticos, pero en ocasiones estoy promediando 5 horas de enfoque, entregando en 30-40 horas.

Cuando no están de humor.

En serio, creo que esta es la razón principal por la que a veces un desarrollador front-end funciona muy lentamente.

Sé que esto puede sonar demasiado obvio ya que puede sucederle a la gente en general. Pero en mi experiencia personal, el estado de ánimo puede afectar en gran medida mi velocidad y calidad de trabajo.

Cuando estoy de mal humor, las cosas se sienten muy difíciles. Es muy difícil obtener una inspiración, aunque tengo mucho tiempo. Incluso por un problema simple, no pude encontrar una solución fácil que potencialmente pueda producir código feo.

Sin embargo, cuando estoy de buen humor, las cosas se sienten muy fáciles. Para un trabajo que debería llevar mucho tiempo terminar, de alguna manera puedo terminarlo en la mitad de la estimación. Y con una mejor solución también. Como si de repente obtuviera un nuevo cerebro con mejores especificaciones, cualquier problema se puede resolver fácilmente.

Mantener nuestro estado de ánimo alto es más importante de lo que piensas. Cuida tu estado de ánimo y serás más productivo que nunca.

More Interesting

¿Cuáles son las desventajas de depurar Node.js? ¿Vale la pena aprender Node.js si es difícil de depurar?

¿Cómo es usar Hakyll para generar páginas web?

¿Cuáles son las mejores tiendas de desarrollo web en Nueva York?

¿Puedo construir una aplicación en la nube basada en web compleja con node.js sin usar ningún marco? Si no, ¿qué marco debo usar? ¿Dónde obtendré los mejores tutoriales?

¿Quiénes son los mejores desarrolladores de juegos sociales / compañías de desarrollo?

¿Cuál es el alcance en el desarrollo web?

¿Cuál es la mejor manera de hacer la autenticación de usuario en un nodo y reaccionar a la aplicación?

¿Qué se siente ser un desarrollador de BizTalk (en comparación con un desarrollador promedio de .NET presumiblemente)?

¿Qué deben tener en cuenta los desarrolladores al crear sitios web simples además de los lenguajes de programación?

¿Es posible que la desestructuración de objetos pueda causar cambios innecesarios en React.js?

¿Cuál de estas implementaciones de diseño de materiales debería usar si planeo desarrollar una interfaz de usuario web con Angular 2?

¿Cuál es el propósito del Firebase Admin SDK? ¿Cómo, en el lado del cliente, se puede usar y por qué solo se usa en el lado del servidor?

¿Es 'HTML> CSS> PHP' la ruta correcta para los principiantes de desarrollo web o 'HTML> CSS> Python' para una aplicación web simple con interacción SQL?

Como desarrollador front-end que quiere aprender WordPress, ¿estoy mejor aprendiendo 'la forma de WordPress' o 'la forma de Génesis'?

¿Cómo genero un informe PDF usando itext y ajax?