¿Cuál es el estado del arte para codificar interfaces de usuario y cuál es el futuro?

Analicemos lo que sucedió para tomar una determinación.

  1. Los navegadores se volvieron más rápidos y mejores al ejecutar scripts
  2. Las bibliotecas están en transición a ECMA6 y están pisando ligeramente con polyfils y se transpiran según las indicaciones, casi sutilmente por las grandes voces en el W3C
  3. En algún momento, la gente pensó que sería una buena idea manejar mucha lógica en el cliente para las aplicaciones
  4. Los sockets web hacen que la comunicación sea muy rápida, y todavía tenemos sondeos largos

Ahora, la evolución de ECMA6 y sus amigos transpuestos (como el mecanografiado) está moldeada por el hecho de que javascript no tiene tipo y es muy difícil de depurar en muchos casos, especialmente cuando se usan promesas o corutinas o hilos o bucles de eventos.

Entonces, desglosándolo aún más, lo que una vez hicimos en los hosts, como objetos simulados, interfaces, etc., necesitará replicación en la capa del cliente y, por lo tanto, los patrones de diseño que lo respalden probablemente ganen para aplicaciones más grandes y complicadas.

Podemos encontrar marcos populares que no están relacionados con la interfaz de usuario que utilizan varias técnicas en términos de patrones de diseño análogos a lo que la gente está haciendo en la capa de interfaz de usuario de hoy.

Ahora, en lo que respecta a IO, es una pequeña estrategia y un poco de sabor, ¿no? A veces, un bucle de evento tiene sentido sobre un hilo; pero no es que ambos no puedan seguir un patrón observable. Francamente, una corutina es solo un hilo de diseño para mí.

Para la composición de vistas, se trata de cuánto necesita compartir. ¿Quieres la conveniencia de reunir muchos widgets? ¿Estás listo para probar esas piezas independientes y las versiones integradas? Puedes ver los pros / contras.

Para la arquitectura, puedo imaginar crear una inyección de dependencia con todo esto, por lo que probablemente pueda ir de cualquier manera.

Por lo tanto, es una respuesta larga decir que depende de usted en este momento, mientras las cosas continúen de esta manera, todas tienen potencial. Apostaría a que las cosas se parecen más a hilos reales con el tiempo, pero compararlas con los bucles de eventos no es exactamente una comparación justa, apostaría a más soporte de depuración para esos hilos, mejores excepciones, los componentes son un poco más populares porque más compartible y algo más como MVP solo porque está un poco mejor segregado para inyección.

Justo donde estoy tirando mis fichas si debo apostar.

En cuanto a las interfaces nativas; Usted está a merced de las bibliotecas que son nativas. A menudo intentan manejar los subprocesos por ti porque quieren reducir tu tensión cognitiva y porque quieren que las aplicaciones funcionen cuando llegan a una tienda de aplicaciones, no un punto muerto.

De hecho, casi todo lo relacionado con cosas nativas está evolucionando para simplificar los patrones y manejar la memoria para usted.

Por lo tanto, el camino de menor resistencia suele ser más popular, y ese camino lo dictan quienes escriben el lenguaje y las herramientas; Así que argumentaría que, a pesar de que tomarán prestado de lo que es popular y fácil de entender, saltarás a los patrones que Apple o Google quieren que saltes porque solo tienes mucha influencia.

More Interesting

¿Por qué podría uno elegir Java para un nuevo proyecto?

¿Cuenta la experiencia en administración de sistemas al solicitar el trabajo de desarrollador de software?

¿Cómo es que todavía no hay software para replicar la voz de una persona?

"No reinventar la rueda": ¿es siempre cierto?

¿Es posible que un desarrollador trabaje durante varios años sin tener que escribir un algoritmo exigente, o ningún algoritmo?

¿El programa de residencia de Google CS Academy garantiza que se convertirá en un FTE después del compromiso de 1 año?

¿Qué computadora portátil usan los programadores para trabajar y cuánto cuesta?

Además de las aplicaciones de Android, ¿qué proyectos / aplicaciones podrían impresionar a un empleador utilizando Java o Python como lenguaje de programación?

¿Cuáles son los pecados más comunes de los programadores perezosos?

¿Cómo la práctica de DevOps impacta la actividad diaria de un desarrollador?

¿Qué lenguaje de programación con software debería aprender en 2017 para desarrollar aplicaciones para teléfonos inteligentes que casi no tienen experiencia en programación?

Si alguna vez creó un banco en línea, ¿qué necesita hacer diferente en comparación con un sitio web comercial simple?

¿Deberían los ingenieros de software preocuparse en los próximos años de que sus trabajos sean reemplazados por computadoras?

Quiero aprender el software CFD. ¿Cuál es el mejor instituto en Mumbai?

¿La disciplina de la programación de computadoras / ingeniería de software está separada de cualquier lenguaje de programación en particular, y si es así, cómo?