L'anno scorso ci sono stati più di 130 partecipanti provenienti da tutta Italia, 9 speakers, 11 sessioni ed oltre 10 ore di talk (info sul canale youtube)
Quest'anno
la GWTcon torna e diventa internazionale, con eventi gemelli in almeno
altre 2 sedi (Tolosa e Tunisi), speakers di fama internazionale ed un
programma di iniziative collegate in continua evoluzione.
E' stata appena pubblicata la data della seconda edizione, che sarà il prossimo 11 Novembre 2015, sempre a Firenze e la lista degli speakers confermati comprende Daniel 'Singular' Kurka (Google) e Christian 'GWTP' Goudreau (ArcBees).
La lista completa degli speaker che ad oggi hanno confermato la loro presenza si trova all'url: http://www.gwtcon.org/#speakers
Thoughtworks pubblica mensilmente una specie di radar delle tecnologie, in cui descrive quali sono le tecnologie da tenre sott'occhio e quali sono le tecnologie che stanno diventando ormai obsolete.
Nel technology radar di Gennaio 2014, Thoughtworks scrive:
We continue to see teams run into trouble using JSF-- JavaServer Faces -- and are recommending you avoid this technology.
Teams seem to choose JSF because it is a J2EE standard without really evaluating whether the programming model suits them.
We
think JSF is flawed because it tries to abstract away HTML, CSS and
HTTP, exactly the reverse of what modern web frameworks do.
JSF ,
like ASP.NET webforms, attempts to create statefulness on top of the
stateless protocol HTTP and ends up causing a whole host of problems
involving shared server-side state.
We are aware of the improvements in JSF 2.0, but think the model is fundamentally broken.
We recommend teams use simple frameworks and embrace andunderstand web technologies including HTTP, HTML and CSS.
A questa critica, è arrivata una risposta dal blog ufficiale di PrimeFaces. PrimeFaces è una delle più recenti implementazioni dello standard Java Server Pages. La risposta si concentra sul fatto che Java Server Faces ha avuto diversi miglioramenti che ne hanno aumentato le prestazioni:
Regarding state, JSF is a stateful framework by nature and state makes
web applications easy to develop with. With improved state management
techniques introduced in JSF 2.0+ (e.g. stateless mode, partial state
saving), JSF can scale as well.
E' nata una diatriba interna al JUG ed il commento di Fabio Mitrano è stato:
la diatriba è sul modo in cui
JSF memorizza lo stato dei componenti. Lo stato di essi come di
qualsiasi sessione web generica puo' essere mantenuta interamente lato
client (quindi stateless lato server), lato server (stateful) o in modo
misto.
Voi
criticate JSF per una sua gestione della sessione e dello stato dei
componenti prettamente lato server che incide sulle prestazioni e sulla
scalabilità di esso.
Fatto
sta non vedo ancora perchè certi framework MVC a componenti che
permettano di astrarre dalle tecnologie client e server specifiche
siano del tutto da buttare. E' sufficiente che specifiche e
implementazioni MVC future tengano conto di tale necessità sullo
stateless delle applicazioni web. Il livello di astrazione superiore
rimane sempre un vantaggio.
Il commento di Ugo Landini è stato:
Quello che può
sulla carta fare JSF ora, in risposta alle critiche del passato, è
irrilevante. Le comunità fanno altro, è una tecnologia che è stata
selezionata darwinianamente per l'estinzione (in buona compagnia con
molte altre, per carità: Portlet, JavaFX, ecc)
Come spesso succede in informatica, si è arrivati ad essere tutti d'accordo sul fatto che "dipende". L'intervento di Francesco Ioli che ha trovato consenso è stato:
Per cosa tifo allora? Per il
concetto: the right tool for the right job!
Dove
il "tool" è quello "right" non solo in relazione al particolare "job"
in questione, ma anche per le situazioni al contorno in cui ci si
trova...
Ossia:
in teoria magari sarebbe piu' adatta ed e' migliore una data tecnolgia,
ma in pratica invece mi conviene usarne un altra..
E JSF potrebbe in alcuni casi essere "the right tool".
Probabilmente ispirati dal successo di CoffeeScript, recentemente sono stati creati dei nuovi linguaggi che compilano verso JavaScript. Questi sono Dart, presentato da poco da Google, Ceylon sviluppato da Red Hat, Kotlin di JetBrains (la società che creato IntelliJ IDEA), TypeScript di Microsoft ed Haxe.
Dart
Le caratteristiche principali di Dart sono il fatto di poter fare programmazione ad oggetti, la tipizzazione dinamica, cioè non c'è bisogno di specificare il tipo di una variabile, ed il package manager denominato "pub" che permette di gestire le dipendenze di un progetto in modo molto comodo.
Un enorme difetto di Dart è che la quantità di JavaScript che viene prodotta è sproporzionata rispetto al codice di partenza. Una decina di righe di Dart si trasformano in 40 Kilobyte di codice JavaScript, che è un po' troppo.
C'è anche il video di presentazione alla Google Developers Conference di Milano:
Ceylon
Ceylon è un linguaggio sviluppato da Red Hat che è anch'esso ad oggetti e modulare. Da Ceylon è possibile utilizzare sia le librerie di Java che di JavaScript. Supporta gli import con i numeri di versione, il polimorfismo degli operatori e le funzioni di ordine superiore.
Il confronto tra Dart è Ceylon pè riassunto qui da Gavin King, colui che ha creato Ceylon:
«Hi, well, there's lots of differences, but I suppose the broad differences are: - Ceylon compiles to the JVM and JS virtual machines, Dart has its own virtual machine, and also compiles to JS. - Ceylon has a very powerful, very strict static type system, Dart is more of a halfway point between a dynamic language and a language like Java. If Dart starts to take off, I think that we'll certainly build an additional compiler backend for the Dart VM, including interop with the Dart language. It was nice to see one of the developers of Dart already reach out to me on the reddit thread.» http://ceylon-lang.org/blog/2013/11/12/ceylon-1/#comment-1124817759
Per una introduzione a Ceylon:
Kotlin
A differenza degli altri due linguaggi, Kotlin ha dei tipi statici, cioè il tipo di una variabile deve essere specificato dal programmatore e noto al tempo della compilazione.
Anche da Kotlin è possibile usare classi Java e ci sono funzioni di ordine superiore e funzioni anonime.
Per una introduzione a Kotlin:
TypeScript
Anche TypeScript è un linguaggio open source che compila in JavaScript. Ha il grande vantaggio di essere una estensione di JavaScript e quindi automaticamente qualsiasi codice JavaScript può essere aggiunto a sorgente TypeScript e possono essere utilizzati tutti i framework JavaScript già esistenti. Esiste anche un plugin per Eclipse.
Per una introduzione:
Haxe
Haxe è un linguaggio che può essere compilato in tantissimi linguaggi di programmazione, tra cui JavaScript, Java, C#, C++ e PHP.
Per una introduzione ad Haxe:
Altri linguaggi
Ai linguaggi citati sopra si aggiungono: