b'\n_START_ARTICLE_\nScala (linguaggio di programmazione)\n_START_SECTION_\nPiattaforme supportate\n_START_PARAGRAPH_\nScala \xc3\xa8 stato studiato per interoperare con la piattaforma Java 2 Runtime Environment (JRE) rendendo l\'integrazione con le applicazioni e i componenti Java molto agevole. Scala utilizza lo stesso modello di compilazione (compilazione separata, caricamento delle classi dinamiche) utilizzato da Java permettendo cos\xc3\xac l\'accesso a molte librerie sviluppate in questo ambiente. In passato era disponibile anche per la piattaforma .NET Framework (CLR).\n_START_SECTION_\nStoria\n_START_PARAGRAPH_\nScala \xc3\xa8 stato progettato e sviluppato a partire dal 2001 da Martin Odersky e dal suo gruppo alla Scuola politecnica federale di Losanna (EPFL). \xc3\x88 stato distribuito pubblicamente a gennaio 2004 sulla piattaforma Java e a giugno dello stesso anno sulla piattaforma .NET (ora non pi\xc3\xb9 supportata). La seconda versione del linguaggio \xc3\xa8 stata distribuita a marzo del 2006.\n_START_SECTION_\nFunzionalit\xc3\xa0 Object-oriented\n_START_PARAGRAPH_\nScala \xc3\xa8 un linguaggio completamente orientato agli oggetti. Ogni elemento del linguaggio \xc3\xa8 un oggetto, inclusi numeri e funzioni che, cos\xc3\xac, possono venire memorizzate in variabili, essere passate come parametri, rappresentare il risultato di una chiamata di metodo, oppure essere estese tramite ereditariet\xc3\xa0. I tipi e l\'eredit\xc3\xa0 degli oggetti sono descritti da classi e trait.\n_START_SECTION_\nProgrammazione funzionale\n_START_PARAGRAPH_\nScala \xc3\xa8 anche un linguaggio funzionale in quanto ogni funzione \xc3\xa8 un valore. Scala fornisce un linguaggio molto diretto per definire funzioni anonime (dichiarate e usate senza essere legate ad un nome), supporta funzioni di ordine superiore, permette alle funzioni di essere annidate e supporta funzioni parziali._NEWLINE_Scala ha un supporto nativo per il pattern matching che permette di potenziare l\'elaborazione di dati XML con il supporto di espressioni regolari. Questa caratteristica unita con la possibilit\xc3\xa0 di definire liste esaurienti (list comprehension) rende questo linguaggio ideale per sviluppare applicazioni come i web service.\n_START_SECTION_\nHello World!\n_START_PARAGRAPH_\nobject HelloWorld extends App {_NEWLINE_   println("Hello, world!")_NEWLINE_ }'