2017: el año de los lenguajes de programación

Para los lenguajes de programación, lenguajes como Java y Kotlin atrajeron mucha atención en el desarrollo empresarial y móvil en 2017. El ecosistema de JavaScript, fundamental para el desarrollo web, también continuó expandiéndose.

En general, el año presentó una mezcla de mejoras tanto en los lenguajes más antiguos como en los más recientes.

Los desarrolladores siguieron una telenovela sobre Java, con importantes desacuerdos sobre un plan de modularización para Java estándar y, en un giro sorprendente, Oracle se lavó las manos con la variante empresarial Java EE.

Mientras tanto, TypeScript de Microsoft ha aumentado en popularidad al facilitarles la vida a los desarrolladores que buscan una alternativa a JavaScript. Microsoft también lanzó Q #, un lenguaje para computación cuántica.

Los muchos giros de la trama de Java

Java Development Kit (JDK) 9 se lanzó como la última implementación de Java estándar en septiembre después de que se resolvieran las disputas sobre su compleja tecnología de modularidad. Aunque el sistema de módulos está destinado a ofrecer beneficios en escalabilidad, rendimiento y seguridad, los participantes clave, incluidos Red Hat e IBM, no estuvieron de acuerdo con Oracle sobre cómo implementarlo. Expresaron preocupaciones sobre la compatibilidad de la aplicación y votaron en contra de la propuesta inicial, que inicialmente fracasó en una votación del comité ejecutivo de Java en mayo. Pero las partes objetantes estaban lo suficientemente satisfechas con las modificaciones posteriores como para aprobar la propuesta en una nueva votación el mes siguiente, despejando el camino para la publicación muy demorada.

La actualización de la Versión 9 de Java está programada para ser seguida rápidamente por JDK 10, que estará disponible en marzo de 2018 y presentará una interfaz de recolector de basura y una inferencia de tipo variable local.

En el lado empresarial de Java EE, Oracle parecía haber suavizado las cosas con la comunidad de Java, que se había molestado con la negligencia percibida por la compañía de la plataforma en 2016. En septiembre de 2016, Oracle presentó planes para reequipar Java EE para entornos como la nube. Pero en agosto de 2017, Oracle decidió deshacerse de la administración empresarial de Java. La plataforma terminó bajo la jurisdicción de la Fundación Eclipse. Mientras tanto, Oracle lanzó Java EE 8 al mismo tiempo que se lanzó Java 9. Java EE 8 incluye funcionalidad en la nube, HTML5 y HTTP / 2.

Avanzan las herramientas y alternativas de JavaScript

En el desarrollo web, los desarrolladores recibieron mucha ayuda para construir con JavaScript mismo o con alternativas de JavaScript. Entre las herramientas lanzadas en 2017 se encuentran:

  • El marco de JavaScript Angular 5 de Google, lanzado en noviembre, presentaba un optimizador de compilación y es compatible con aplicaciones web progresivas y el uso de componentes de Material Design.
  • Angular 4, que se envió en marzo, se centró en la creación de aplicaciones más pequeñas.
  • React, la biblioteca de interfaz de usuario de JavaScript de Facebook, pasó a la versión 16 en septiembre, con una reescritura del núcleo de React para aumentar la capacidad de respuesta para aplicaciones complejas.

Para los desarrolladores que crean para la web y desean un lenguaje escrito en lugar de JavaScript, TypeScript de Microsoft se está convirtiendo en una fuerza. Este superconjunto escrito de JavaScript recibió varias actualizaciones este año:

  • TypeScript 2.6, lanzado en Halloween, presenta un indicador de modo estricto y comentarios de supresión de errores.
  • TypeScript 2.5, lanzado en agosto con capacidades para facilitar la realización de reescrituras complejas.
  • TypeScript 2.4 llegó en junio con una capacidad de impresiones dinámicas para hacer que una aplicación sea más eficiente en recursos.
  • TypeScript 2.3, lanzado en abril, admitía iteradores y generadores asíncronos ECMAScript.
  • TypeScript 2.2, lanzado en febrero, enfatizó la compatibilidad con el marco React Native para crear aplicaciones móviles nativas.

El siguiente es TypeScript 2.7, que saldrá en enero y presenta una inferencia de tipo mejorada para literales de objeto.

Pero TypeScript no fue la única alternativa de JavaScript que generó olas este año. Para los desarrolladores web que prefieren usar el lenguaje Go (Golang) de Google en lugar de JavaScript, el compilador beta de Joy presentado en diciembre promete permitir la compilación cruzada.

Kotlin en aumento

Otro lenguaje que ofrece compilación a JavaScript, aunque comenzó en la JVM, es Kotlin, que ha experimentado una gran fortuna este año. Fue impulsado considerablemente cuando Google lo aprobó en mayo para crear aplicaciones de Android, que ha sido principalmente el dominio de Java. Las versiones que debutaron en 2017 incluyeron:

  • Kotlin 1.2, lanzado en noviembre, presenta una capacidad experimental para reutilizar código en múltiples plataformas. También se agregó soporte para Java 9.
  • Kotlin 1.1, que llegó en marzo, contó con soporte JavaScript.

Microsoft hace movimientos cuánticos

Siguiendo su compromiso con la computación cuántica, Microsoft lanzó en diciembre Q # (pronunciado "q sharp"), un lenguaje específico de dominio que expresa algoritmos cuánticos. Se proporciona un conjunto de tipos primitivos junto con matrices y tuplas para construir nuevos tipos estructurados. El lenguaje funciona con Visual Studio IDE de la compañía y se incluye en el kit de desarrollo Quantum, que se lanzó en versión beta en diciembre.

C ++ avanza

Este año también vio la publicación de C ++ 17, enfocándose en facilitar el uso del lenguaje. Las comodidades de programación incluyeron:

  • Enlaces estructurados y deducción de argumentos de plantilla de clase.
  • Los desarrolladores ahora también pueden inicializar variables en el ámbito de ify switch tal como lo han hecho para los bucles, reduciendo la ceremonia del lenguaje.

El siguiente es C ++ 20, que se completará en el verano de 2019 y finalizará en 2020. Puede incluir mejoras para las funciones de simultaneidad y biblioteca.