¿Por que el desarrollo web se ha vuelto tan complejo?
En mi opinión tiene que ver con principalmente dos razones: 1. Los requerimientos han crecido y las expectativas de los usuarios y clientes han aumentado respecto a que es y no posible "en la plataforma"
...
2. La web (como la ideó Sir @timberners_lee) no fue ni está "arquitecturada" (palabra inventada) para lo que la estamos usando hoy.
La web fue ideada e implementada como una plataforma para compartir documentos de hiper texto. "Documentos" (subrayo ésto) que se enlazan con otros
He ahí que el lenguaje principal de la web sea HTML. Javascript vino a ser un parche sobre los motores de los browsers para darle algo de interactividad y dinamismo a esos documentos
Todos esos experimentos y "batallas" de los browsers nos han traído hasta ahora donde al menos tenemos una especificación estándar para el lenguaje que entrega dinamismo. ECMA y Tc39
En este episodio revisamos que es ECMA y TC39 cafecon.tech/1081172/387228…
Ahora con ese estándar y una gran mejora en los navegadores es posible crear aplicaciones dinámicas e interactivas.
Pero un nuevo problema apareció.
Escribir javascript (inicialmente) era un dolor de cabeza.
Spaghetti Code
Junto con esto tanto la experiencia de usuario (UX) y la experiencia de desarrollo (DX) se vieron muy afectadas creando estrés en ambos lados de la pantalla
¿Como resolvemos esto?
Mejorando la DX para como resultado tener mejor UX.
Y esta mejora de la DX vino dada por frameworks y tooling siendo quizá la punta de lanza de esa primera era la gran jQuery.
Pero había un dolor oculto....
JQuery fue genial! nos mostró lo q se podía lograr dándonos destellos del futuro.
Pero seguía siendo spaghetti code.. Así que avanzamos a una nueva era de Javascript siendo @reactjs y todo "el tooling" asociado los iniciadores de un nuevo movimiento.
Componentes y transpiladores
React en general no hizo nada "nuevo" si no más bien trajo ideas a un espacio donde no se estaban aplicando.
Ideas desde la programación funcional como inmutabilidad, estado, funciones puras etc.
Pero también trajo la necesidad de más herramientas egghead.io/courses/hooks-…
Herramientas como @babeljs que permitía hacer uso de esa extraña sintaxis: JSX y también uso de las nuevas características del estándar aún no disponibles en navegadores freecodecamp.org/espanol/news/q…
El problema q ahora tenemos una gigantesca pila de herramientas y procesos pra hacer un simple "Todo app" creando mucha confusion en quienes están comenzando en este proceso y en general en todo dev
¿Cuál es el camino a seguir?
En mi opinión los frameworks "opinionated" sobre los frameworks son el camino que esta pavimentado el inicio de la 3era ola de la web.
Frameworks como Next y @nuxt_js están torciendo y expandiendo los límites de los que los frameworks ofrecen
Pero también ideas desde otros lenguajes como @elmlang y @rescriptlang
Pero por sobre todos quienes empujan el inicio de la nueva era son las nuevas ideas e implementaciones. Cada framework esta haciendo lo suyo como React con el suspendido Suspense (pun intended).
Pero por sobre todo. Las nuevas punta de lanza son nuevas formas de hacer las cosas como lo que @sveltejs@vite_js@snowpackjs y @tailwindcss proponen modificando nuestro modelo mental del como se deben hacer las cosas.
¿Qué crees tú? ¿Qué se viene para el futuro de Javascript y la web?
Para más contenido sígueme o escucha @cafe_contech o Únete al newsletter MicroBytes en microbytes.matiashernandez.dev
No olvides que en @cafe_contech hay concurso!!!
Sorteo suscripciones a @FrontendMasters para que sigas puliendo tus skills
Hablemos de "State management" y porqué es "complejo".
¿Que es el estado de una App?
En una versión muy simple estado son datos que cambian en el tiempo y que usamos para definir que se muestra o no al usuario.
Pero: ¿de donde vienen esos datos?
Esta pregunta es quiza la "piedra angular" para un modelo mental sobre el manejo de estado.
No todo el estado es igual ni proviene de las mismas fuentes.
Podemos definir a lo menos 2 categorías de estado
- UI state
- Server State
(shouts @tannerlinsley for this idea)
UI State: el estado que representa aspectos de la interfaz exclusivamente y que es modificado por acciones del usuario por ejemplo ejemplo un modal abierto/cerrado, el valor de un input o un menú.
Es un estado de fácil acceso, efímero y sincrono y es "simple" de manejar
Q me disculpe @Pa__tty pero usar la vulnerabilidad de NNA como argumento para la presencialidad en clases de colegio es incongruente.
1ero que edades? Acaso todos los estudiantes podrán llevar a cabo los protocolos de autocuidado?
2do hablan de la vulnerabilidad de estudiantes...
Si hablamos de estudiantes vulnerables lo más seguramente también serán establecimientos de escasos recursos por lo que es muy difícil asegurar protocolos de seguridad (en cuanto a insumos).
Vulnerabilidad, si es económica entonces hablamos de uso de transporte público, es decir, espacios aglomerados y sabemos que los menores no serán vacunados, ergo, exposición a posibles contagios ya que aun no se alcanza inmunidad de grupo.
He leído varias veces este tipo de preguntas.
¿Se puede usar React con....? O ¿Cómo usar React con X...? Siendo X alguna tecnología para desarrollo de APIS como Rails, Django, PHP/Laravel,.Net y en general la respuesta es la misma.
2 opciones posibles (no sólo para React) 🧵
La primera opciones es simple. Crea una api Rest o un endpoint graphql y listo.
React (y otros frameworks) pueden funcionar "solos" (una SPA). Es decir se distribuye un grupo de archivos estáticos que son servidos en algún CDN y se comunican con el servidor mediante alguna API.
Esto quiere decir que React (y los demás) son agnósticos de la tecnología de servidor usada ya que el medio de comunicación son solo llamadas HTTP (POST, GET, etc) que transmiten json.
¿Clases o funciones al escribir tus componentes en #React?
Esta es una pregunta bastante común entre quienes están comenzando o retomando el desarrollo web con React.
¿Cuál es el approach correcto o el mejor?
¿Que prefieres tu y por que?
Sigue un hilo 🧵
Hoy el uso de componentes funcionales es la forma "aconsejada" o preferida de escribir tus componentes, pero las clases aún siguen ahí y no se irán por un buen tiempo. Incluso hay muchas app en producción que aún usan componentes de clase ya q fueron escritas hace un tiempo...
¿Entonces como decidir que usar o que aprender?
Como siempre la respuesta depende.
Depende de tus objetivos y el ambiente en que desarrollarás.
Si estás comenzando deberías comenzar por aprender la forma "moderna" de escribir componentes, es decir usando funciones..
Hoy se celebra el día internacional de la mujer y la niña en la ciencia.
Y como padres también tenemos una labor, acercar la ciencia a niñas y niños.
Les recomiendo estos libros que a mis hijos. Mía e Inti les encantan.
Papá ¿donde se enchufa el sol? De @aberron
También, obviamente literatura nacional.
¿Por qué los perros mueven la cola?
Y
¿Qué son los mocos?
Del divulgador nacional por ontonomasia @GaboTuitero
También, astronomía (por cierto el CATA de @uchile tendrá curso de astronomía para niñez este 15/02 cata.cl/noticia.php?id…) y un gran exponente de esto es el profesor Maza.
Somos polo de estrella.