2017: l'anno nei linguaggi di programmazione

Per i linguaggi di programmazione, nel 2017 linguaggi come Java e Kotlin hanno raccolto molta attenzione nello sviluppo aziendale e mobile. Anche l'ecosistema JavaScript, fondamentale per lo sviluppo web, ha continuato ad espandersi.

Nel complesso, l'anno ha presentato un miscuglio di miglioramenti sia per le lingue consolidate che per quelle più recenti.

Gli sviluppatori hanno seguito una soap opera su Java, con grossi disaccordi su un piano di modularizzazione per Java standard e, in una svolta sorprendente, Oracle si è lavato le mani dalla variante enterprise Java EE.

TypeScript di Microsoft, nel frattempo, è cresciuto in popolarità rendendo la vita più facile agli sviluppatori che cercano un'alternativa a JavaScript. Microsoft ha anche lanciato Q #, un linguaggio per il calcolo quantistico.

I molti colpi di scena di Java

Java Development Kit (JDK) 9 è stato rilasciato come ultima implementazione dello standard Java a settembre, dopo la risoluzione delle controversie sulla sua complessa tecnologia di modularità. Sebbene il sistema del modulo sia concepito per offrire vantaggi in termini di scalabilità, prestazioni e sicurezza, i partecipanti chiave, tra cui Red Hat e IBM, non erano d'accordo con Oracle su come implementarlo. Hanno espresso preoccupazione per la compatibilità delle applicazioni e hanno votato contro la proposta iniziale, che inizialmente non è riuscita in un voto del comitato esecutivo di Java a maggio. Ma gli oppositori erano abbastanza soddisfatti delle successive modifiche da approvare la proposta su una revote il mese successivo, aprendo la strada al rilascio tanto ritardato.

L'aggiornamento alla versione 9 di Java sarà seguito rapidamente da JDK 10, previsto per marzo 2018 e caratterizzato da un'interfaccia di garbage collector e un'inferenza di tipo variabile locale.

Sul lato aziendale di Java EE, Oracle sembrava aver appianato le cose con la comunità Java, che era rimasta turbata dalla percezione di trascuratezza della piattaforma da parte dell'azienda nel 2016. Nel settembre 2016, Oracle ha stabilito piani per riorganizzare Java EE per ambienti come la nuvola. Tuttavia, nell'agosto 2017, Oracle ha deciso di cedere la responsabilità della gestione aziendale di Java. La piattaforma è finita sotto la giurisdizione della Eclipse Foundation. Nel frattempo, Oracle ha rilasciato Java EE 8 nello stesso momento in cui è stato rilasciato Java 9. Java EE 8 offre funzionalità cloud, HTML5 e HTTP / 2.

Avanzano gli strumenti e le alternative JavaScript

Nello sviluppo web, gli sviluppatori hanno ricevuto molto aiuto nella creazione con JavaScript stesso o con alternative JavaScript. Tra gli strumenti rilasciati nel 2017 c'erano:

  • Il framework JavaScript Angular 5 di Google, rilasciato a novembre, presentava un ottimizzatore di build e supporta app web progressive e l'uso di componenti di Material Design.
  • Angular 4, distribuito a marzo, si è concentrato sulla creazione di applicazioni più piccole.
  • React, la libreria dell'interfaccia utente JavaScript di Facebook, è passata alla versione 16 a settembre, con una riscrittura del core React per aumentare la reattività per applicazioni complesse.

Per gli sviluppatori che creano per il Web e desiderano un linguaggio digitato invece di JavaScript, TypeScript di Microsoft sta diventando una forza. Questo superset tipizzato di JavaScript ha ricevuto più aggiornamenti quest'anno:

  • TypeScript 2.6, rilasciato ad Halloween, con un flag di modalità rigorosa e commenti per la soppressione degli errori.
  • TypeScript 2.5, rilasciato ad agosto con funzionalità per semplificare le riscritture complesse.
  • TypeScript 2.4 è arrivato a giugno con una capacità di impressioni dinamiche per rendere un'applicazione più efficiente in termini di risorse.
  • TypeScript 2.3, rilasciato ad aprile, supportava i generatori e gli iteratori asincroni ECMAScript.
  • TypeScript 2.2, rilasciato a febbraio, ha sottolineato la compatibilità con il framework React Native per la creazione di app mobili native.

Il prossimo è TypeScript 2.7, in uscita a gennaio e con inferenza del tipo migliorata per i letterali oggetto.

Ma TypeScript non è stata l'unica alternativa JavaScript a fare scalpore quest'anno. Per gli sviluppatori web che preferiscono utilizzare il linguaggio Go (Golang) di Google invece di JavaScript, il compilatore beta Joy introdotto a dicembre promette di consentire la compilazione incrociata.

Kotlin in aumento

Un altro linguaggio che offre la compilazione a JavaScript, sebbene sia iniziato con la JVM, è Kotlin, che quest'anno ha registrato fortune crescenti. È stato notevolmente potenziato da Google che lo ha approvato a maggio per la creazione di applicazioni Android, che è stata principalmente il dominio di Java. Le versioni che debuttarono nel 2017 includevano:

  • Kotlin 1.2, rilasciato a novembre, offre una capacità sperimentale per il riutilizzo del codice su più piattaforme. È stato aggiunto anche il supporto per Java 9.
  • Kotlin 1.1, arrivato a marzo, prevedeva il supporto JavaScript.

Microsoft fa mosse quantistiche

A seguito del suo impegno per il calcolo quantistico, Microsoft a dicembre ha lanciato Q # (pronunciato "q sharp"), un linguaggio specifico del dominio che esprime algoritmi quantistici. Viene fornito un set di tipi primitivi insieme a matrici e tuple per la creazione di nuovi tipi strutturati. Il linguaggio funziona con l'IDE di Visual Studio dell'azienda ed è incluso nel Quantum Development Kit, lanciato in versione beta a dicembre.

Il C ++ va avanti

Quest'anno ha visto anche la pubblicazione di di C ++ 17, concentrandosi sul rendere più facile l'uso del linguaggio. Comodità di programmazione incluse:

  • Associazioni strutturate e deduzione dell'argomento del modello di classe.
  • Gli sviluppatori ora possono anche inizializzare le variabili nell'ambito ife switch proprio come hanno potuto fare per i cicli, riducendo la cerimonia del linguaggio.

Il prossimo è C ++ 20, che sarà completo di funzionalità nell'estate 2019 e finalizzato nel 2020. Potrebbe includere miglioramenti per la concorrenza e le funzionalità di libreria.