Corso

È impossibile capire lo sviluppo software senza i linguaggi di programmazione. È vero, uno sviluppatore senza linguaggio di programmazione è come un tassista senza auto. Tuttavia, le cose sono più complesse. Così come il GPS facilita la vita dei tassisti, allo stesso modo gli ambienti di sviluppo integrati (noti anche come IDE) lo fanno per i programmatori.
Gli IDE sono progettati per permettere ai programmatori di scrivere codice e sviluppare applicazioni in modo più efficiente. Aumentano la produttività riunendo più strumenti in un'unica interfaccia. Scrittura, test e debug del codice, oltre a funzionalità di editing come evidenziazione della sintassi, abbinamento delle parentesi e completamento automatico del codice, sono tra le caratteristiche più comuni degli IDE moderni.
Esistono molti IDE particolarmente adatti alla data science, incluso il DataLab di DataCamp. In questo articolo, ti presenteremo JupyterLab, la nuova generazione di Jupyter Notebook, probabilmente l'IDE più popolare per la data science. Rilasciato nel 2018, JupyterLab offre un'interfaccia flessibile e più funzionalità rispetto al classico Jupyter Notebook, ed è certamente il presente e il futuro del Project Jupyter. Vuoi iniziare con JupyterLab? Continua a leggere!
Breve introduzione a Jupyter Notebook
Quando Jupyter Notebook fu lanciato per la prima volta nel 2014, rivoluzionò rapidamente il panorama degli IDE. Considerato di recente uno dei più importanti progetti informatici, che ha cambiato per sempre il processo di pubblicazione scientifica, Jupyter è diventato lo standard de facto nella data science.
Jupyter Notebook funziona come un'applicazione server-client, permettendo a chi scrive codice di modificare ed eseguire notebook tramite un browser web. L'applicazione può essere eseguita su un computer senza accesso a Internet o installata su un server remoto, a cui puoi accedere tramite Internet.
Inizialmente progettato per supportare Julia, Python e R – tre dei linguaggi di programmazione per la data science più popolari – oggi Jupyter supporta oltre 40 linguaggi di programmazione.
Jupyter è composto da due componenti principali.
- Kernel. È un programma che esegue e analizza il codice dell'utente. Per impostazione predefinita, Jupyter ha un kernel per il codice Python, ma sono disponibili anche kernel per altri linguaggi di programmazione.
- Dashboard. Un notebook è composto principalmente da una sequenza di celle, che possono contenere elementi come codice, testo, visualizzazioni, immagini e formule. Oltre alle celle, il dashboard include vari strumenti per configurare il flusso di lavoro del notebook, effettuare il debug del codice, esportare i notebook in diversi formati, esplorare i documenti e molto altro.

Come versione migliorata di Jupyter Notebook, JupyterLab aggiunge nuove funzionalità e capacità, anche se i componenti principali restano invariati.
Iniziare con JupyterLab
Per usare JupyterLab, prima di tutto devi installarlo sul tuo computer, come qualsiasi altro programma. Questo può essere fatto in modi diversi, a seconda delle preferenze: usando pip, Anaconda o Docker.
Installare JupyterLab con pip
Pip è il gestore di pacchetti standard in Python. Per installare JupyterLab con pip, ti basta eseguire dalla riga di comando:
>>pip install jupyterlab
Dopo aver eseguito questa istruzione, pip installerà i pacchetti di JupyterLab così come tutte le dipendenze richieste perché JupyterLab funzioni. Se vuoi saperne di più su come gestire i pacchetti in Python, dai un'occhiata al nostro tutorial su Pip per la gestione dei pacchetti.
Una volta installato correttamente JupyterLab sul tuo computer, ti basta eseguire la seguente istruzione per aprire JupyterLab:
>>jupyter lab
Vedrai quindi l'applicazione aprirsi nel tuo browser web preferito al seguente indirizzo: http://localhost:8888/lab

Installare JupyterLab con Anaconda
Anaconda è un gestore di pacchetti, un gestore di ambienti e una distribuzione Python che contiene una raccolta di molti pacchetti open-source. Anaconda è un'ottima scelta se vuoi iniziare con la data science. Non devi più preoccuparti di come installare Python o JupyterLab, perché vengono installati automaticamente nelle distribuzioni moderne di Anaconda.
Il modo più semplice per avviare JupyterLab è tramite l'Anaconda Navigator, un'applicazione che ti permette di utilizzare le funzionalità di Anaconda in modo intuitivo e senza codice. Come puoi vedere nell'immagine qui sotto, sia Jupyter Notebook che JupyterLab sono già installati. Ti basta cliccare sul pulsante Launch per aprire JupyterLab nel browser.

Tuttavia, in alcuni casi – ad esempio, quando crei un nuovo ambiente conda – potresti dover installare JupyterLab in quell'ambiente. Per farlo, il modo più rapido è eseguire quanto segue dalla riga di comando di conda (Anaconda Prompt su Windows e terminale su macOS e Linux):
>>conda install -c conda-forge jupyterlab
Installare JupyterLab con Docker
Docker è una piattaforma aperta per eseguire software in container. Questi container sono processi autonomi e isolati che ti permettono di separare le applicazioni dall'infrastruttura per distribuire software rapidamente.
Se hai Docker installato, puoi installare e usare JupyterLab selezionando una delle numerose immagini Docker supportate dagli Jupyter Docker Stacks. Puoi considerare queste immagini come pacchetti software preconfezionati che Docker scarica automaticamente quando li esegui.
Ad esempio, se vuoi installare l'immagine di Docker jupyter/datascience-notebook, che include librerie per l'analisi dei dati in Julia, Python e R, ti basta eseguire il seguente comando Docker:
>>docker run -it -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes jupyter/scipy-notebook
Per maggiori dettagli ed esempi su come usare JupyterLab con Docker, consulta la documentazione. Inoltre, per un'introduzione dettagliata a Docker, ti consigliamo vivamente questo tutorial di DataCamp.
Interfaccia di JupyterLab
L'interfaccia di JupyterLab è una versione rimasterizzata di quella di Jupyter Notebook, che offre un nuovo set di blocchi modulari per il calcolo interattivo ed efficiente. JupyterLab integra diversi strumenti di coding in un'unica interfaccia, offrendo così un'esperienza di programmazione più vicina ai tradizionali IDE.

L'interfaccia di JupyterLab comprende i seguenti elementi principali:
- Area di lavoro. L'area di lavoro principale presenta un nuovo layout a schede che ti consente di combinare diversi documenti (notebook, file di dati, HTML, PDF, immagini, ecc.) e strumenti di coding (terminale, console di codice, editor di testo, ecc.) in pannelli di schede che possono essere ridimensionati o suddivisi tramite drag and drop. Il sistema a schede, assente in Jupyter Notebook, permette una programmazione più integrata ed efficiente, dato che gli sviluppatori possono svolgere la maggior parte delle attività senza uscire da JupyterLab.
- Barra laterale sinistra. La barra laterale comprimibile contiene diverse schede comuni, tra cui:
- File browser. Consente di gestire file e cartelle sul computer.
- Gestore di schede e kernel. Fornisce un elenco delle schede nell'area di lavoro principale e dei kernel e terminali in esecuzione.
- Indice dei contenuti. Un indice interattivo basato sulle intestazioni incluse nelle celle markdown.
- Gestore estensioni. Consente di installare nuove applicazioni e plugin per migliorare l'esperienza in JupyterLab (vedi sotto).
- Barra laterale destra. Una seconda barra laterale comprimibile che contiene:
- Ispettore delle proprietà. Permette di analizzare in dettaglio le informazioni e le proprietà delle celle.
- Debugger (vedi sotto)
- Barra dei menu. La barra dei menu in alto in JupyterLab include menu di primo livello con le azioni disponibili. I diversi menu sono:
- File: azioni relative a file e directory.
- Edit: azioni relative alla modifica dei documenti e ad altre attività.
- View: azioni che cambiano l'aspetto di JupyterLab.
- Run: azioni per eseguire il codice nelle diverse attività.
- Kernel: azioni per la gestione dei kernel.
- Tabs: un elenco dei documenti e delle attività aperti nell'area di lavoro.
- Settings: impostazioni comuni e un editor di impostazioni avanzate. Una delle funzioni più interessanti di JupyterLab è la possibilità di scegliere diversi temi per l'interfaccia, incluso il tema scuro.
- Help: un elenco di link di aiuto per JupyterLab e i kernel.
Debug in JupyterLab
L'obiettivo del debug è individuare le cause dei bug riscontrati nel tuo programma durante i test e quindi modificare il codice per ottenere il risultato esatto desiderato.
Gli specialisti dei dati, e più in generale gli sviluppatori, monitorano le interazioni e i cambiamenti nelle variabili del programma durante il processo di debug. Puoi indagare le possibili cause degli errori nel tuo programma osservando come ogni diversa funzione, metodo o persino riga di codice modifica il valore e la funzionalità delle variabili.
Jupyter Notebook e le prime versioni di JupyterLab incorporavano il comando magico integrato %debug per svolgere attività di debug. Tuttavia, lo strumento è piuttosto rudimentale rispetto ai debugger di altri IDE.
Per fortuna, le versioni più recenti di JupyterLab includono di default un front-end per il Debugger. Offre le capacità di debug tradizionali, tra cui impostazione di breakpoint, step nelle funzioni e ispezione delle variabili. Puoi attivarlo dalla barra laterale destra, come mostrato nell'immagine qui sotto:

Estensioni di JupyterLab
JupyterLab è già uno strumento potente e ben equipaggiato, con nuove funzionalità che rendono l'esperienza di coding più simile a un IDE. Tuttavia, se senti che mancano alcune funzionalità o vuoi potenziare le capacità di JupyterLab, dovresti dare un'occhiata alle estensioni di Jupyter.
Scritte in JavaScript, le estensioni di JupyterLab sono componenti software contenenti uno o più plugin per aggiungere nuove capacità a JupyterLab, come nuovi temi, editor di file e nuove scorciatoie da tastiera.
Esistono due tipi di estensioni per JupyterLab:
- Estensioni precompilate. Non richiedono la ricompilazione di JupyterLab.
- Estensioni con sorgente. Richiedono la ricompilazione di JupyterLab al momento dell'installazione. La ricompilazione di JupyterLab richiede l'installazione di Node.js – un ambiente open-source e multipiattaforma per l'esecuzione di applicazioni JavaScript.
Se usi conda con i pacchetti conda-forge, puoi ottenere Node.js con:
>>conda install -c conda-forge nodejs
Esistono diversi modi per gestire le estensioni di JupyterLab, ma ti consigliamo vivamente di usare il Gestore estensioni integrato. Accessibile tramite l'icona a puzzle sulla barra laterale sinistra, il Gestore estensioni consente di installare e disabilitare estensioni senza bisogno di scrivere codice.

Per maggiori informazioni sulle estensioni di JupyterLab e su come gestirle, consulta la documentazione di JupyterLab.
JupyterLab vs Jupyter Notebook
Di seguito trovi una tabella con le differenze tra Jupyter Notebook e JupyterLab:
|
Jupyter Notebook |
JupyterLab |
|
|
Data di rilascio |
2014 |
2018 |
|
Open source? |
Sì |
Sì |
|
Sistema a schede |
Scheda singola |
Schede multiple e modulari, tutto in un'unica vista |
|
Capacità di debug |
Comando magico %debug |
Debugger |
|
Visualizzatore file di dati |
File di dati visualizzati come file di testo |
I dati possono essere visualizzati in formato tabellare |
|
Esperienza di coding |
Sembra uno strumento standalone |
Sembra un IDE |
|
Temi predefiniti |
Chiaro |
Chiaro e scuro |
|
Vantaggi |
|
|
|
Svantaggi |
|
|
|
Sviluppi futuri |
Rimane come vecchia versione legacy |
Il futuro del Project Jupyter |
DataLab
Se cerchi un IDE online, basato sul cloud, che ti permetta di scrivere codice e analizzare dati in modo collaborativo e condividere le tue intuizioni, DataLab è un'ottima scelta.
Sviluppato da DataCamp, DataLab è una piattaforma di analisi dei dati basata sul cloud progettata per aiutarti a iniziare in modo rapido e semplice. Con DataLab, puoi saltare il lungo processo di configurazione e iniziare subito a lavorare con i dati. Non c'è bisogno di installare nulla, perché tutto è accessibile dal browser.
Usando DataLab, troverai dataset integrati da usare all'istante, oltre a template predefiniti con codice già scritto. DataLab è accessibile a tutti i livelli, con strumenti low-code e no-code per creare report e visualizzazioni di grande effetto.
Supporta anche Python e R, entrambi con integrazioni SQL native, e viene preconfigurato e preinstallato con i pacchetti di data science più popolari al mondo.
Esegui e modifica il codice da questo tutorial online
Esegui codiceConclusione
Sei arrivato alla fine. Congratulazioni! Speriamo che questo tutorial su JupyterLab ti sia piaciuto. Grazie alla sua struttura a celle, incentrata sul calcolo interattivo ed esplorativo, Jupyter è diventato rapidamente uno strumento rivoluzionario, l'IDE preferito dai professionisti dei dati. Rispetto a Jupyter Notebook, JupyterLab è uno strumento più raffinato, che riunisce il meglio dei notebook e dei tradizionali IDE, come RStudio e PyCharm.
Quindi, se sei alle prime armi con la data science e ti chiedi se scegliere Jupyter Notebook o JupyterLab, ti consigliamo vivamente il secondo. Vuoi saperne di più su Jupyter? Dai un'occhiata ai seguenti materiali di DataCamp:
- Tutorial sull'interfaccia SQL in JupyterLab
- Jupyter Notebook Tutorial: la guida definitiva
- Tutorial sul Markdown in Jupyter Notebook
- Jupyter Notebook Cheat Sheet
FAQ su JupyterLab
- Che cos'è un IDE?
Gli IDE sono programmi progettati per permettere ai programmatori di scrivere codice e sviluppare applicazioni in modo più efficiente. Aumentano la produttività riunendo più strumenti in un'unica interfaccia. - Che cos'è JupyterLab?
JupyterLab è l'ultimo IDE web-based di Jupyter per notebook, codice e dati. - Che cos'è un notebook?
Un notebook è un documento che contiene elementi come codice, equazioni, visualizzazioni e testo, seguendo una struttura a celle. - Posso usare Python in JupyterLab?
Sì, così come altri linguaggi di programmazione per la data science, come R e Julia - Che cos'è il Gestore estensioni di JupyterLab?
Consente di installare nuove applicazioni e plugin per migliorare l'esperienza in JupyterLab - Dovrei scegliere Jupyter Notebook o JupyterLab?
Poiché JupyterLab è il presente e il futuro del Project Jupyter, ti consigliamo vivamente di scegliere JupyterLab.

