¿Cuál es el futuro de la ingeniería de software en 2020: un desarrollo más difícil o más fácil?

Predeciría tres tendencias para la ingeniería de software en los próximos 6 o 7 años.

1) Programación “reactiva”. Una nueva generación de lenguajes hará lo que Angular.js etc. hace: le permite definir declarativamente qué datos desea y, en circunstancias, se actualiza sin tener que pensar explícitamente en el flujo de control o las devoluciones de llamadas.

2) Eso se combinará con las herramientas de Modelado de Procesos de Negocio y herramientas para Sys-Admin de virtualización / nubes. Las personas obtendrán lenguajes que describan declarativamente cómo un grupo de sistemas deben comunicarse entre sí en el alto nivel y muchos programadores podrán olvidarse de jugar con los detalles de los mensajes individuales entre el navegador o la aplicación. y el servidor Solo habrá un esquema para describir los tipos de datos que almacena el sistema en general, dónde tiene que estar y cuándo debe actualizarse.

3) Aumento del interés en internet de las cosas. Habrá muchos más dispositivos integrados, sensores, pequeñas mallas inalámbricas y robots. Las personas acostumbradas a la conveniencia de los lenguajes de alto nivel en la web no van a querer aprender C y pensar en un nivel tan bajo. Así que espere que obtengamos lenguajes de manejo de flujo de datos / reactivos / eventos en Arduino, etc.

Entonces, la comunicación de bajo nivel será cada vez más fácil. Pero intentaremos orquestar enjambres de máquinas más grandes y complejos que requerirán cierto tipo de pensamiento.