Play Framework
# Play Framework

Play è un framework open source, scritto in Java e Scala, che implementa il pattern model-view-controller. Il suo scopo è quello di migliorare la produttività degli sviluppatori usando il paradigma convention over configuration, il caricamento del codice a caldo e la visualizzazione degli errori nel browser.

Nella versione 1.1 è stato aggiunto il supporto a Scala, mentre nella versione 2.0 la parte principale del framework è stata riscritta in Scala. La compilazione ed il dispiegamento sono stati migrati su Simple Build Tool. Per i template viene usato Scala anziché Groovy.

## Motivazione

Play è fortemente ispirato a Ruby on Rails e Django ed è simile a questa famiglia di framework. Viene usata la macchina virtuale di Java per costruire applicazioni web in un ambiente diverso dalle implementazioni della specifica Java EE. Questo può rendere lo sviluppo con Play più rapido rispetto ai framework tradizionali.

## Peculiarità

Le caratteristiche distintive di questo framework sono elencate di seguito:

* privo di stato: non viene mantenuta alcuna sessione sul server relativa ai dati dell'utente corrente;
* metodi statici: tutti i metodi dei controller che vengono invocati dal framework sono statici; o, nel caso in cui si usi la versione Scala, sono funzioni di oggetti di Scala;
* gestione asincrona dell'input e dell'output: grazie all'uso di Netty, Play può gestire le richieste lunghe in modo asincrono;
* architettura modulare: come per Rails e Django, ci sono i moduli;
* supporto nativo per Scala: non solo Play è fatto internamente in Scala, ma espone anche delle interfacce Scala; le interfacce Java sono state messe appositamente in package diversi affinché possano seguire le convenzioni di Java.
