I linguaggi di scripting sono un tipo specifico di linguaggio informatico che si può utilizzare per dare istruzioni ad altri software, come un browser web, un server o un’applicazione standalone. Molti dei linguaggi di codifica più popolari al giorno d’oggi sono linguaggi di scripting, come JavaScript, PHP, Ruby, Python e molti altri.

Poiché i linguaggi di scripting rendono la codifica più semplice e veloce, non sorprende che siano ampiamente utilizzati nello sviluppo web.

Tuttavia, questo non è il loro unico campo di applicazione. Esistono anche linguaggi di scripting per sistemi operativi, software di analisi statistica, applicazioni per ufficio, giochi e molti altri tipi di piattaforme.

Cosa Sono i Linguaggi di Scripting?

I linguaggi di scripting possono eseguire diverse azioni all’interno di un particolare ambiente di runtime, come l’automazione dell’esecuzione dei task, il miglioramento delle funzionalità del software padre, l’esecuzione di configurazioni, l’estrazione di dati da set di dati e altro.

Le lingue di scripting possono realizzarsi in due modi:

  1. Un ambiente runtime può introdurre un proprio linguaggio di scripting, come Bash per il sistema operativo GNU o VBA per le applicazioni Microsoft Office.
  2. Un ambiente runtime può adottare un linguaggio di scripting esistente, per esempio, la shell mongo di MongoDB è stata costruita intorno a JavaScript.

D’altra parte, per quanto strano possa sembrare, a volte è il linguaggio di scripting che esiste per primo e che dà vita alla propria piattaforma madre.

Questo è quello che è successo nel caso di Node.js, un ambiente di runtime backend che è stato creato per permettere agli sviluppatori web di usare JavaScript non solo sul frontend ma anche sul backend, seguendo il paradigma ‘JavaScript everywhere’.

Se stai pensando di imparare un nuovo linguaggio di scripting, dai un'occhiata a questa guida alle 13 soluzioni più interessanti... e poi corri a studiare 🤓Click to Tweet

Cosa Significa “Scripting” nella Programmazione?

Con scripting si intende la scrittura di una serie di comandi che vengono interpretati uno a uno da un’applicazione o da un motore di scripting. Anche se lo script guida la piattaforma attraverso cosa fare (le dà uno script da leggere e interpretare), l’esecuzione viene eseguita dall’ambiente di runtime e non dal linguaggio di scripting stesso.

Questo è ciò che differenzia i linguaggi di scripting dai linguaggi di programmazione come Java, che può essere scritto una solta volta, ma usato ovunque (lo slogan ufficiale di Java è ‘write once, run anywhere’, che significa che i programmi Java possono essere eseguiti come applicazioni standalone in qualsiasi ambiente; da quando è stato coniato, viene chiamato anche principio WORA in riferimento alle capacità multipiattaforma).

Linguaggio di Scripting vs Linguaggio di Programmazione

Sebbene i termini “linguaggio di scripting” e “linguaggio di programmazione” siano spesso usati in modo intercambiabile, non sono la stessa cosa.

Legato a una Piattaforma vs Multipiattaforma

I linguaggi di scripting sono legati a una specifica piattaforma, mentre i linguaggi di programmazione sono multipiattaforma in quanto hanno la capacità di eseguirsi da soli. Ad esempio, potete eseguire un programma Java su qualsiasi sistema operativo.

Interpretati vs. Compilati

Mentre i linguaggi di programmazione sono compilati, i linguaggi di scripting sono per lo più interpretati; ci sono però alcuni linguaggi di scripting che sono sia compilati che interpretati, come Python e Groovy.

“Compilato” significa che un linguaggio di programmazione ha un proprio compilatore che traduce la sintassi in codice macchina prima del runtime. Al contrario, i linguaggi di scripting vengono interpretati riga per riga durante il runtime dall’interprete della piattaforma su cui sono in esecuzione.

Più Veloce vs. Più Lento al Momento del Runtime

Proprio per questa differenza di implementazione, i linguaggi di programmazione sono più veloci dei linguaggi di scripting, in quanto non devono essere compilati in tempo reale. I compilatori eseguono anche la gestione collettiva degli errori prima dell’esecuzione, mentre gli interpreti valutano il codice riga per riga, quindi si fermano (a volte anche completamente) ogni volta che incontrano un errore.

Questo si aggiunge anche al tempo di esecuzione totale dei linguaggi di scripting, anche se, su un hardware moderno e più veloce, questo è ora meno problematico rispetto a prima.

Maggiore vs. Minore Quantità di Codice

I linguaggi di programmazione sono più impegnativi dal punto di vista del codice, perché con i linguaggi di scripting bisogna fare molte cose manualmente che vengono gestite dalla piattaforma. Se usate un linguaggio di scripting dovete scrivere molto meno codice.

App Standalone vs App Parte di uno Stack

Ci sono alcune cose che semplicemente non si possono fare con un linguaggio di scripting. Quella più importante è che non potete creare applicazioni desktop e mobile autonome, perché non esiste un ambiente di runtime che le interpreti.

Ad esempio, potete usare dei framework PHP come WordPress e Laravel solo per siti web e applicazioni web, perché usano il browser web come ambiente runtime. Allo stesso modo, le applicazioni mobile WordPress vengono eseguite all’interno di ambienti runtime mobile, come Capacitor, che incorporano le viste web.

Linguaggi di Scripting vs Linguaggi di Programmazione: Panoramica delle Differenze

Per ricapitolare, le principali differenze tra i linguaggi di scripting e i linguaggi di programmazione sono le seguenti:

Linguaggi di Scripting Linguaggi di Programmazione
Specifico per la piattaforma Multipiattaforma
(Per lo più) Interpretato Compilato
Più veloce in fase di esecuzione Più lento in fase di esecuzione
Più codice Meno codice
Crea app standalone Crea app come parte di uno stack

Equivoci sui Linguaggi di Scripting

Ci sono alcuni equivoci sui linguaggi di scripting in cui è facile imbattersi, quindi diamo loro un’occhiata prima di addentrarci nei migliori linguaggi di scripting.

La cosa più importante da sapere è che non ha molto senso parlare di linguaggi di scripting frontend vs backend, anche se molti articoli che troverete in giro per il web usano questo tipo di raggruppamento.

In realtà c’è un solo linguaggio di scripting frontend attualmente in uso, ed è JavaScript (prima ne esistevano altri, come ActionScript e JScript, ma ora sono tutti deprecati).

La distinzione frontend vs. backend non è importante nel contesto dei linguaggi di scripting: lo è invece l’ambiente o gli ambienti di runtime in cui un linguaggio di scripting può essere eseguito.

Si noti che con ‘frontend’ si intende solo qualcosa (come immagini, font, markup, fogli di stile, script o altri tipi di file statico) che un browser web può interpretare.
Per esempio, provate ad aprire un file PHP direttamente dal browser web: non potete, perché è necessaria un’applicazione server PHP per interpretarlo: PHP è quindi un linguaggio di scripting backend nel contesto dello sviluppo web, e un livello applicativo di uno stack di server (come LAMP) nel contesto dei linguaggi di scripting.

Oltre che per lo sviluppo web (frontend e backend scripting), i linguaggi di scripting possono essere usati anche per più finalità, come la programmazione e la configurazione di sistemi operativi e di applicazioni specifiche o ambienti, per la manipolazione di set di dati, l’automazione di attività, e molte altre.

Un linguaggio di scripting può essere eseguito anche in più ambienti.

Cosa Non Sono i Linguaggi di Scripting

Prima di addentrarci nella lista dei migliori linguaggi di scripting, vediamo i linguaggi di programmazione che a volte sono chiamati linguaggi di scripting, ma che in realtà non servono per scrivere script:

I 13 Migliori Linguaggi di Scripting

Ci sono molti grandi linguaggi di scripting che meritano una menzione in questa guida, ma non sono più in attivo sviluppo. Tuttavia, i seguenti 13 linguaggi di scripting vengono regolarmente aggiornati e usati anche in produzione.

Quindi, se state pensando di imparare un nuovo linguaggio di scripting come nuovo percorso professionale, vale la pena tentare.

1. JavaScript/ECMAScript

JavaScript

JavaScript

JavaScript è un’implementazione dello standard ECMA-262 che definisce il linguaggio di scripting polivalente ECMAScript (ES). In altre parole, JavaScript è un dialetto del linguaggio ECMAScript, quindi non ha una specifica autonomia ma usa la stessa sintassi di ECMAScript.

JavaScript ha funzioni di prima classe (le funzioni sono trattate come variabili) e supporta la programmazione orientata agli oggetti basata su prototipi (gli oggetti esistenti vengono riutilizzati come prototipi).

Esempio di Codice

ECMAScript usa una sintassi a parentesi graffe. Il seguente esempio di codice JavaScript aggiunge numeri da 1 a 10 ed emette il risultato nella console (potete testarlo nella console JavaScript del vostro browser web premendo F12):

let total = 0, count = 1;

while (count <= 10) {
    total += count;
    count += 1;
}

console.log(total);
// 55

Fonte: Eloquent JavaScript by Marijn Haverbeke: Introduction

Casi d’Uso e Ambienti

JavaScript è il linguaggio di scripting usato dai moderni browser web, come V8 di Chrome e SpiderMonkey di Mozilla. Inoltre, lo sviluppo web frontend può essere usato anche in ambienti non-browser. L’ambiente runtime NodeJS è stato creato per consentire agli sviluppatori web di usarlo nel backend.

Anche le shell di alcuni sistemi di gestione di database NoSQL, come MongoDB e Apache Couch DB, e alcuni sistemi di gestione di database relazionali, come il già citato MySQL Shell, lo usano come linguaggio di scripting.

2. PHP

PHP

PHP

PHP è un linguaggio di scripting polivalente, open source, usato nello sviluppo web backend. L’acronimo originariamente stava per ‘Personal Home Page’, in quanto PHP è stato creato per aggiungere funzionalità dinamiche alle pagine HTML statiche.

Da allora, PHP si è evoluto in un linguaggio autonomo, quindi ora l’acronimo è usato nel senso di ‘Hypertext Preprocessor’. PHP è un linguaggio loosely typed (non è necessario dichiarare i tipi di dati delle variabili), può essere incorporato in documenti HTML, e ha anche caratteristiche orientate agli oggetti.

Esempio di Codice

PHP ha una sintassi simile a quella di C. Il seguente esempio di codice PHP crea un array numerico con quattro elementi, li attraversa in loop, moltiplica ogni elemento per due e, al termine del loop, disinserisce la variabile $value.

<?php
$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {
   $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)

unset($value);
?>

Fonte: PHP documentation: Control Structures

Casi d’Uso e Ambienti

PHP può essere eseguito su diversi server HTTP, tra cui Apache e Nginx sono i più popolari.

I più comuni stack di server PHP sono LAMP (Linux, Apache, MySQL, PHP), LEMP (Linux, Nginx, MySQL, PHP – usato da Kinsta), e WAMP (Windows, Apache, MySQL, PHP), e MAMP (macOS, Apache, MySQL, PHP).

È anche usato da molti popolari sistemi digestione dei contenuti (CMS) come WordPress, Drupal e Joomla, e da framework di applicazioni web come Laravel, Symfony e CodeIgniter, che sono tutti costruiti sul linguaggio PHP e lo migliorano con funzionalità extra.

È possibile usare PHP anche per lo sviluppo locale di WordPress.

3. Python

Python

Python

Python è attualmente il secondo linguaggio di programmazione più popolare su GitHub (dopo JavaScript). È amato per la sua sintassi chiara e concisa: quando programmate in Python, dovete digitare molto meno che nella maggior parte dei linguaggi.

Python è un progetto libero e open source, gestito dalla Python Software Foundation. Supporta i paradigmi di programmazione strutturati, orientati agli oggetti e funzionali, e ha una vasta libreria standard che è una collezione di moduli Python comunemente usati.

Esempio di Codice

Python non usa parentesi graffe e i punti e virgole sono opzionali, quindi il codice è facile da leggere e scrivere. Il seguente esempio di codice Python passa in loop attraverso numeri interi tra 0 e 4, e li stampa:

count = 0
while count < 5:
   print(count)
      count += 1

Fonte: Learn Python: Loops

Casi d’Uso e Ambienti

L’implementazione Python più popolare è CPython, scritto in linguaggio C. È anche l’implementazione di riferimento che si scarica insieme al linguaggio Python. Anche se Python è un linguaggio interpretato, CPython usa sia una fase di compilazione che di interpretazione. Per prima cosa, compila il codice sorgente in bytecode (non lo stesso del codice macchina) che interpreta al momento del runtime.

Oltre a CPython, Python ha anche altri ambienti runtime, soprattutto PyPy che omette la fase di compilazione e fa solo l’interpretazione JIT (just-in-time). Le implementazioni Python sono multipiattaforma, il che significa che funzionano su più sistemi operativi, inclusi Linux, Windows e macOS.

Il linguaggio Python è usato frequentemente nell’apprendimento automatico, nello sviluppo web backend (Django è il framework web più popolare), nell’analisi dei dati, nell’automazione, nell’informatica scientifica e nel web scraping.

4. Ruby

Ruby

Ruby

Ruby è un linguaggio di scripting open source e polivalente con una sintassi compatta e di facile lettura. Segue i principi della programmazione orientata agli oggetti e permette di scrivere codice pulito e logico. In Ruby, tutto è un oggetto, anche i tipi che sono primitivi nella maggior parte degli altri linguaggi, come i booleani e gli interi.

Anche i concetti orientati agli oggetti, come l’eredità, i mixin e le metaclassi, sono molto usati.

Pur avendo un design puramente orientato agli oggetti, Ruby supporta anche la programmazione procedurale (funzioni e variabili definite al di fuori delle classi appartengono all’oggetto Self) e la programmazione funzionale (attraverso funzioni anonime, chiusure e continuazioni).

Esempio di Codice

Ruby ha una sintassi concisa simile a Python. Il seguente esempio di codice Ruby definisce la classe KaraokeSong come sottoclasse della classe Song:

class KaraokeSong < Song
   def initialize (name, artist, duration, lyrics)
      super(name, artist, duration)
      @lyrics = testo
   end
end

Fonte: Programmazione Guida riferimento Ruby: Classi, oggetti e variabili

Casi d’Uso e Ambienti

Ruby è usato principalmente nello sviluppo web backend, alimentando alcuni robusti framework di applicazioni web come RubyonRails. Molti siti web e applicazioni popolari girano su Ruby on Rails, come Airbnb, Shopify, GitHub e Hulu.

Ruby è anche il linguaggio in cui sono scritti molti popolari strumenti di sviluppo web, in particolare il preprocessore Sass CSS, il generatore di siti web statici Jekyll e l’ambiente di macchine virtuali Vagrant.

L’implementazione predefinita di Ruby è YARV (Yet Another Ruby Virtual Machine). YARV ha cambiato l’interprete originale di Ruby, il Matz’s Ruby Interpreter (chiamato anche Ruby MRI o CRuby) che era stato criticato per problemi di velocità e scalabilità.

Ruby ha anche diversi ambienti runtime concorrenti, come JRuby (permette di eseguire Ruby sulla Java Virtual Machine), mruby (un’implementazione leggera che si può incorporare nella propria applicazione), TruffleRuby (l’interprete Ruby di Oracle costruito su GraalVM), Rubinius (una macchina virtuale nativa del cloud per Ruby), e altri.

5. Groovy

Groovy

Groovy

Groovy è un incredibile linguaggio flessibile scritto per Java Virtual Machine (JVM) che può essere usato sia come linguaggio di scripting che di programmazione. È un progetto open source gestito dalla Apache Software Foundation. Groovy è un linguaggio orientato agli oggetti che estende la superclasse java.lang.Object.

Supporta sia la digitazione statica che dinamica (il controllo del tipo può essere eseguito sia al momento della compilazione che in fase di esecuzione) e ha un supporto nativo per liste, array associativi, espressioni regolari e linguaggi di markup come HTML e XML.

È possibile usare Groovy insieme alle librerie Java esistenti.

Esempio di Codice

Groovy ha una sintassi compatibile con Java, perché usa le parentesi graffe. Il seguente esempio di codice Groovy definisce la classe Coordinates con le proprietà di latitudine e longitudine e il getAt():

@Immutable
class Coordinates {
   double latitude
   double longitude

   double getAt(int idx) {
      if (idx == 0) latitude
      else if (idx == 1) longitude
      else throw new Exception("Wrong coordinate index, use 0 or 1")
   }
}

Fonte: Groovy Documentation: Semantics

Casi d’Uso e Ambienti

Anche se Groovy si compila in Java byte code, potete usarlo come linguaggio di programmazione polivalente simile a Java. In questo caso, è possibile compilare il codice sorgente in byte code prima dell’esecuzione usando il compiler groovyc (l’equivalente di javac).

Tuttavia, ci sono anche molte implementazioni Groovy che consentono di usarlo come linguaggio di scripting. Le più popolari sono il framework di applicazioni web Grails (precedentemente conosciuto come Groovy on Grails) e lo strumento di automazione della costruzione di Gradle, ma ce ne sono anche molti altri.

6. Perl

Perl

Perl

Perl è un linguaggio di scripting polivalente nato più di 30 anni fa (nel 1987). In origine, era stato creato come un linguaggio di scripting UNIX per l’elaborazione di report. Il suo nome viene proprio da qui, perché l’acronimo Perl sta per ‘Practical Extraction and Reporting Language’.

Il linguaggio Perl è diventato popolare negli anni ‘90 quando i programmatori hanno iniziato a usarlo più di frequente per lo scripting CGI (Common Gateway Interface) che è una vecchia specifica di interfaccia per i server web (attualmente è usata principalmente dai siti legacy).

Nonostante sia uno degli attori del mercato più anziani, Perl si posiziona ancora all’11˚ posto nel TIOBE index ed è il 21˚ linguaggio più popolare su GitHub (dato di ottobre 2020).

Esempio di Codice

La sintassi di Perl è simile al linguaggio C. L’esempio di codice Perl che segue definisce prima la subroutine square() che calcola e restituisce il quadrato di un numero, poi passa il valore 8 come argomento, esegue la subroutine e salva il risultato nella variabile $sq:

sub square {
   my $num = shift;
   my $result = $num * $num;
   return $result;
}

$sq = square(8);

Fonte: Perl docs: Perl Intro

Casi d’Uso e Ambienti

Anche se al giorno d’oggi non è la scelta più frequente degli sviluppatori web, Perl può essere usato con successo nello sviluppo backend. Oltre all’ambiente runtime CGI, viene eseguito anche sui web server Apache e Nginx: lo stack LAMP è in realtà LAMPP, che sta per Linux, Apache, MySQL, PHP e Perl.

Esistono anche alcuni framework di sviluppo web Perl, tra cui Catalyst, Mojolicious e Dancer sono i più popolari.

Perl è utilizzato da diversi siti web e applicazioni notevoli come Amazon, IMDB, Booking.com e BBC iPlayer. Viene utilizzato anche in altri settori, come la programmazione di rete e l’amministrazione di sistema. Potete anche dare un’occhiata al Comprehensive Perl Archive Network (CPAN) dove sono disponibili oltre 25.000 progetti open-source Perl da scaricare.

7. Lua

Lua

Lua

Lua è un linguaggio di scripting veloce e leggero. La parola “lua” significa “luna” in portoghese, poiché la lingua è sviluppata e mantenuta dalla Pontificia Università Cattolica di Rio de Janeiro in Brasile. Lua supporta i paradigmi di programmazione procedurale, orientato agli oggetti e funzionale.

Poiché l’interprete di Lua è scritto in C, può essere facilmente incorporato nelle applicazioni grazie alla sua API C. Detto questo, è possibile usare Lua per estendere le applicazioni esistenti scritte in linguaggi basati su C come C, C++, C#, Java, Perl, Ruby e altri.

Esempio di Codice

Lua ha una sintassi concisa e di facile lettura, simile a Python e Ruby. Il seguente esempio di codice Lua mostra come usare l’istruzione if-then-else. Prima valuta la variabile op, poi esegue operazioni aritmetiche di base a seconda del suo valore:

if op == "+" then
   r = a + b
elseif op == "-" then
   r = a - b
elseif op == "*" then
   r = a * b
elseif op == "/" then
   r = a / b
else
   error("invalid operation")
end

Fonte: Programming in Lua reference guide: Statements

Casi d’Uso e Ambienti

L’implementazione Lua di default non interpreta direttamente il codice sorgente ma prima lo compila in byte code che poi esegue sulla macchina virtuale Lua. Poiché tutto questo avviene in runtime, non c’è un passo di compilazione manuale da eseguire (anche se si può optare per la compilazione di Lua prima del runtime per migliorare le prestazioni).

Ci sono anche altre implementazioni Lua, come Lua JIT, Lua Vela e molte altre.

Lua è spesso usato per sviluppare videogiochi, come Angry Birds, World of Warcraft e Grim Fandango. Essendo facile da incorporare, è anche una scelta frequente per dispositivi embedded come decoder, cruscotti di auto (ad esempio Volvo), telecamere IP (ad esempio Cisco), e altri.

Può anche essere usato nello sviluppo web, dato che sia il server Apache che quello Nginx hanno un modulo Lua (qui c’è il mod_lua di Apache, ed ecco il ngx_http_lua_module di Nginx). Wikipedia ha scelto Lua come linguaggio di scripting per i template, e anche l’interfaccia utente di Adobe Photoshop Lightroom è scritta in Lua.

8. Bash

Bash

Bash è il nome di un interprete a riga di comando (shell) per il sistema operativo GNU e del relativo linguaggio di scripting. ‘Linux’ è, infatti, il sistema operativo GNU che usa il kernel Linux (un kernel è la parte centrale del sistema operativo, è il primo programma che il sistema operativo carica).

Bash è un sostituto della shell originale UNIXBourne(sh): l’acronimo Bash sta per ‘Bourne Again SHell’ (un gioco di parole su ‘born again shell’).

Oltre a essere il superset della sintassi della shell di Bourne, Bash include anche funzionalità di altri linguaggi di scripting di shell come KornShell(ksh) e Cshell(csh), come per esempio l’editing a riga di comando e la storia dei comandi. È possibile usare Bash sia in modalità interattiva (eseguendo un comando alla volta e aspettando la risposta della macchina) che in modalità di scripting (eseguendo una serie di comandi—uno script Bash—in una sola volta).

Esempio di Codice

Come la maggior parte dei linguaggi di scripting CLI, Bash ha una sintassi semplice e descrittiva. Il seguente esempio di codice Bash seleziona un file dalla cartella corrente ed emette un messaggio contenente il nome e l’indice del file:

Hai bisogno di un hosting veloce, sicuro e adatto a chi sviluppa siti web per i clienti? Kinsta è stata progettata pensando a coloro che sviluppano in WordPress, fornisce un sacco di strumenti e un cruscotto potente. Dai un’occhiata ai nostri piani

select fname in *;
do
   echo you picked $fname \($REPLY\)
   break;
done

Fonte: Bash Reference Manual: Conditional Constructs

Casi d’Uso e Ambienti

È possibile usare Bash per apportare modifiche ed eseguire diverse azioni relative al sistema operativo, come l’esecuzione di comandi, l’esecuzione di compiti che la maggior parte delle persone farebbe usando un’interfaccia utente grafica (ad esempio, creare, spostare o cancellare cartelle e file), personalizzare e automatizzare le attività amministrative, connettersi a un server remoto, e molti altri.

Bash è la shell predefinita per molti sistemi operativi basati su Unix, incluse la maggior parte delle distribuzioni Linux e tutte le release di macOS fino a mac OS Catalina che ha sostituito Bash con la shellZ (Zsh) nel 2019. Si possono anche eseguire script Bash su Windows 10, usando il livello di compatibilità Windows Subsystem for Linux (WSL) sviluppato da Microsoft.

9. PowerShell

PowerShell

Originariamente, PowerShell era una shell a riga di comando e un linguaggio di scripting esclusivamente per il sistema operativo Windows. Da allora, Microsoft lo ha aperto e lo ha spostato dal NET Framework, che può creare solo applicazioni Windows, al NET Core, che può creare applicazioni per Windows, Linux e macOS. Questo significa che PowerShell è ora multipiattaforma.

È stato anche rinominato da Windows PowerShell a PowerShell Core, corrispondente al framework sottostante. A differenza della maggior parte delle shell a riga di comando, PowerShell accetta e restituisce oggetti .NET al posto del testo in chiaro, il che lascia spazio a nuove opportunità nell’automazione dei task.

Esempio di Codice

PowerShell ha una sintassi compatta che rende più veloce il lavoro nella linea di comando. L’esempio di codice PowerShell che segue crea un backup del file boot.ini e lo salva nel file boot.bak:

Copy-Item -Path C:\boot.ini -Destination C:\boot.bak

Fonte: PowerShell Documentation: Working with Files and Folders

Casi d’Uso e Ambienti

È possibile usare PowerShell sui sistemi operativi Windows, Linux, macOS e su alcuni dispositivi ARM (ad es. indossabili, lettori multimediali, tablet e altri dispositivi elettronici di consumo).

È possibile usare PowerShell per l’amministrazione di sistema, l’automazione di task e la gestione della configurazione. Per trovare i moduli e gli script PowerShell, potete anche consultare la PowerShell Gallery e la collezione ufficiale di script di esempio di Microsoft.

10. R

R

R è sia un ambiente software che un linguaggio di scripting che si può usare per l’elaborazione statistica, l’analisi dei dati e la visualizzazione grafica. È un progetto GNU libero e open source e un’implementazione del linguaggio di calcolo statistico S (non più in sviluppo attivo).

R consente di usare molte tecniche statistiche diverse, come i test statistici classici, il clustering, l’analisi delle serie temporali, la modellazione lineare e non lineare e altre.

Esempio di Codice

La sintassi di R è diversa dalla maggior parte dei linguaggi di scripting e include anche alcuni elementi insoliti. Qualche esempio? L’operatore di assegnazione principale è <- invece del segno di uguale = e include loop loopless. Per saperne di più sulle stranezze della sintassi di R, potete leggere questa guida per principianti di R di Sharon Machlis.

Il seguente esempio di codice R definisce un attributo dei names per il vettore fruit (struttura di base dei dati in R che contiene elementi dello stesso tipo) che usa nomi alfanumerici (come orange, banana, apple, peach) per aiutare a identificare i suoi componenti. In seguito, il sottovettore lunch(o un altro) può accedere a ciascun componente usando il suo nome alias:

> fruit <- c(5, 10, 1, 20)
> names(fruit) <- c("orange", "banana", "apple", "peach")
> lunch <- fruit[c("apple","orange")]

Fonte: An Introduction to R: Index vectors; selecting and modifying subsets of a data set

Casi d’Uso e Ambienti

L’ambiente software R è multipiattaforma; è possibile eseguirlo su sistemi operativi Windows, Linux e macOS. L’implementazione predefinita di R è disponibile anche in altri linguaggi di scripting come Python e Perl. Ciò significa che è possibile accedere a tutte le funzionalità statistiche di R usando questi linguaggi di scripting.

Oltre all’ambiente R di default, è possibile usare il linguaggio di scripting R anche in altri ambienti, come pqR (sta per ‘a pretty quick version of ‘, cioè una versione abbastanza veloce di R) e Renjin (un’implementazione R sopra la Java Virtual Machine).

11. VBA

VBA

VBA sta per Visual Basic for Applications ed è un’implementazione del linguaggio di programmazione Visual Basic 6 (non si trova più in sviluppo attivo dal 2008). È stato creato per le applicazioni di Microsoft Office per consentire agli sviluppatori di automatizzare compiti ripetitivi, aggiungere nuove funzionalità e interagire con gli utenti finali dei documenti.

Simile a Visual Basic, VBA segue il paradigma della programmazione guidata dagli eventi il quale mette al centro eventi come le azioni degli utenti che guidano il flusso del programma.

Poiché le applicazioni Microsoft Office hanno un’interfaccia utente grafica, è possibile allegare script VBA a pulsanti di menu, scorciatoie da tastiera, macro (pattern programmabili) ed eventi OLE (Object Linking and Embedding che permette di controllare un’applicazione da un’altra; è una tecnologia proprietaria Microsoft).

Esempio di Codice

Poiché VBA si basa su Visual Basic (che è un potenziamento di BASIC), usa una sintassi simile ai linguaggi della famiglia BASIC (Beginners’ All-purpose Symbolic Instruction Code), il che significa che è molto adatto ai principianti.

L’esempio di codice VBA che segue usa il metodo GetCertificateDetail() dell’oggetto SignatureInfo per ottenere la data di scadenza di un certificato digitale:

Sub GetCertDetails()
Dim objSignatureInfo As SignatureInfo
Dim varDetail As Variant

strDetail = objSignatureInfo.GetCertificateDetail(certdetExpirationDate)

End Sub

Fonte: Office VBA Reference: SignatureInfo object

Casi d’Uso e Ambienti

Il linguaggio di scripting VBA è integrato nella maggior parte delle applicazioni di Microsoft Office, rispettivamente Access, Excel, Office per Mac, Outlook, PowerPoint, Project, Publisher, Visio e Word, ognuno con una guida di riferimento separata sul sito di documentazione di Microsoft, mentre i concetti generali VBA sono descritti in dettaglio nella libreria di riferimento.

Oltre alle applicazioni di Microsoft Office, ci sono altre applicazioni che supportano anche VBA, come AutoCAD e CorelDRAW.

12. Emacs Lisp

Emacs Lisp

EmacsLisp è un linguaggio di scripting specifico per il dominio, progettato per l’editor di testo GNUEmacs. È un dialetto della famiglia dei linguaggi di programmazione Lisp (il nome deriva da LISt Processor).

Poiché Emacs Lisp è stato progettato per essere usato all’interno di un editor di codice, viene fornito con un set di funzionalità specifiche per quell’ambiente, come la scansione e l’analisi del testo, il buffer (oggetti con testo modificabile) e la gestione del display, e altri.

Il linguaggio di scripting Lisp di Emacs è strettamente integrato con l’interfaccia dell’editor stesso, quindi ogni comando è anche una funzione Lisp che si può richiamare dal proprio script, e anche i parametri di personalizzazione sono variabili Lisp.

Esempio di Codice

La sintassi di Emacs Lisp si basa su una notazione di prefisso interamente tra parentesi che può essere un po’ difficile da leggere all’inizio se non avete mai lavorato con un linguaggio Lisp.

Il seguente esempio di codice Emacs Lisp definisce due variabili (simboli) e assegna a ciascuna una lista di valori, come per esempio una lista di tipi di alberi (pino, abete, quercia, acero) al simbolo alberi e una lista di erbivori (gazzella, antilope, zebra) al simbolo erbivori:

(setq alberi '(pino abete quercia acero)
   erbivori '(gazzella antilope zebra))

Fonte: An Introduction to Programming in Emacs Lisp: Setting the Value of a Variable

Casi d’Uso e Ambienti

L’editor di testo Emacs è un’applicazione multipiattaforma che si può installare su macchine Windows, Linux e macOS. Usando il linguaggio di scripting Emacs Lisp, è possibile estendere e personalizzare l’editor di codice, ripetere e automatizzare i processi, creare grafici, limitare l’attenzione a specifiche aree (per sicurezza), cercare espressioni regolari, memorizzare testo, definire modalità e mappature dei tasti, porre domande agli utenti ed eseguire molte altre azioni. Ci sono anche alcuni framework di configurazione per Emacs Lisp, come DoomEmacs e Space mac che sono i più conosciuti.

13. GML

GML L’acronimo GML sta per GameMaker Language. È un buon esempio di linguaggio di scripting specifico per il dominio usato nello sviluppo di giochi. GML è un linguaggio di scripting proprietario appartenente a Game Maker Studio 2, un motore di gioco multipiattaforma e una piattaforma di sviluppo di proprietà di YoYo Games.
Anche se GML è usato principalmente per controllare gli oggetti di gioco, non è un linguaggio orientato agli oggetti, ma un linguaggio procedurale. Permette di richiamare script personalizzati da qualsiasi oggetto di gioco. Oltre al linguaggio di scripting GML, GameMaker Studio 2 dispone anche di uno strumento di scripting visivo chiamato Drag and Drop (DnD). Grazie alla natura flessibile di GameMaker Studio 2, è possibile unire anche il DnD con i vostri script GML.

Esempio di Codice

La sintassi di GML è simile a quella di JavaScript e di altri linguaggi simili al C. Il seguente esempio di codice GML fa muovere un oggetto di gioco orizzontalmente verso il puntatore del mouse sullo schermo a una velocità di 5 pixel per passo. Una volta raggiunta la posizione corrente del puntatore, lo script crea un livello di effetto di esplosione, lo esegue (c’è un effetto di esplosione sullo schermo), poi distrugge l’istanza (l’effetto di esplosione viene rimosso):

if mp_linear_step(mouse_x, mouse_y, 5, 0) {
   instance_create_layer(x, y, "Effects", obj_Explosion);
   instance_destroy();
}

Fonte: GameMaker Studio 2 Docs – Scripting – GML Reference – Movement and Collisions – Motion Planning

Casi d’Uso e Ambienti

GML è interpretato da GameMaker Studio 2 che dovrete acquistare se desiderate sviluppare giochi in questo linguaggio di scripting.

Il prezzo dipende dalla piattaforma per la quale volete creare i giochi. I giochi per Mac e Windows sono i più economici; i giochi per desktop multipiattaforma (Windows, macOS, Ubuntu), i giochi per il desktop, i giochi web HTML5, i giochi UWP (Universal Windows Platform) e i giochi mobili multipiattaforma (Android, Fire, iOS) sono i più costosi.

Alcuni esempi di videogiochi creati con GML includono Blackhole, 10 Second Ninja X, Death’s Gambit, Deltarune e molti altri.

Vuoi imparare un altro linguaggio di scripting? 👩‍💻 Queste 13 opzioni vengono regolarmente aggiornate e utilizzate in produzione, il che le rende ottime per il tuo curriculum. 💼Click to Tweet

Riepilogo

Non c’è dubbio che i linguaggi di scripting siano affascinanti. Hanno molte varianti, sintassi e implementazioni diverse e possono essere usati per molte cose.

Dalla costruzione di siti web dinamici, all’automazione dell’amministrazione di sistema, alla creazione di videogiochi e così via.

Le cose più importanti da ricordare sui linguaggi di scripting sono tre:

Non possono funzionare da soli ma hanno sempre bisogno di un ambiente (implementazione, runtime) con un interprete per quel linguaggio di scripting.

A volte è possibile usare linguaggi di scripting generici per accedere ad ambienti e piattaforme create principalmente per altri linguaggi di programmazione o di scripting. Pensate a JRuby (permette di eseguire Ruby sulla Java Virtual Machine), Renjin (implementazione R anche sulla JVM), Rpy2 (interfaccia R che potete usare da Python), come buoni esempi.

Infine, prima di imparare un nuovo linguaggio di scripting, è sempre una buona idea verificare la sua attuale popolarità usando l’indice TIOBE o GitHut.

In base alla popolarità, troverete anche più o meno script di esempio, repository GitHub, librerie di moduli, guide di riferimento, manuali dettagliati e vetrine di applicazioni che vi aiuteranno a iniziare con la lingua…e a ottenere progetti e lavori meglio retribuiti!


Se questo articolo ti è piaciuto, allora amerai la piattaforma di hosting WordPress di Kinsta. Metti il turbo al tuo sito web e ottieni supporto 24/7 dal nostro team esperto di WordPress. La nostra infrastruttura alimentata da Google Cloud si concentra su scalabilità, prestazioni e sicurezza. Lascia che ti mostriamo la differenza di Kinsta! Scopri i nostri piani