Nova di Panic: l’editor di codice nativo per Mac che fa la differenza

Antonio Troise
9 min readMar 30, 2023

--

Nova è l’erede di Coda sviluppato da Panic, storica software house di programmi famosi per Mac (come il client ftp Transmit) e che nel 2007 rilasciò la prima versione di questo potente text editor orientato al codice divenuto popolare tra gli sviluppatori web che lavoravano su Mac OS per la sua interfaccia utente elegante e intuitiva e per le sue funzionalità avanzate di editing e gestione dei file. Tuttavia, dopo diversi anni di sviluppo e miglioramenti, nel 2020, il team di Panic decise di rilasciare una nuova versione dell’editor, completamente riscritta da zero e chiamata, appunto, Nova. Secondo quanto dichiarato dallo stesso team di sviluppo, la decisione di riscrivere completamente l’app è stata presa per modernizzare il codice sorgente dell’applicazione e per aggiornare le tecnologie utilizzate, allo scopo di offrire una migliore esperienza utente e una maggiore stabilità. Anche se Coda non è più supportato (anche se è rimasta la sua versione mobile chiamata Code Editor e disponibile solo per iPhone e iPad), i suoi utenti possono acquistare Nova a un prezzo scontato per passare alla nuova versione.

Introduzione

Personalmente ho usato Coda sin da quando era uscito perchè sono stato subito colpito dalla sua eleganza e velocità. Iniziai a considerarlo quando mi resi conto che in quel periodo era l’unica alternativa valida per Mac che avesse il supporto ftp nativo all’interno dell’editor, come anche faceva Ultraedit ma per Windows. All’epoca per me era un requisito fondamentale e nessun altro editor gestiva i file in maniera nativa così efficacemente. Tuttora Nova ha mantenuto questa caratteristica.

Ad oggi, invece, la scelta sembrerebbe molto vasta, e uno sviluppatore può scegliere tra Visual Studio Code, Sublime Text, e il non più supportato Atom, ma per uno sviluppatore che lavora su macOS hanno tutte un difetto: non sono app native per Mac ma sono tutte chiaramente multipiattaforma, con tutti i pregi (posso imparare alla perfezione un editor e lavorarci sul qualsiasi sistema operativo) e difetti connessi (non hanno le alte performance e il design made in Apple che gli sviluppatori Mac-first gradiscono). Ovviamente se si sviluppa specificamente per le piattaforme Apple, allora si deve, nel bene e nel male, usare Xcode di Apple.

Naturalmente, il design di un’app non è tutto. Per fortuna, Nova ha molto da offrire e ha una grande quantità di vantaggi.

Descrizione

Nova di Panic è un potente editor per macOS progettato per scrivere codice, ma che può anche essere utilizzato per svolgere compiti che vanno oltre agli editor di testo standard. Nonostante non sia ancora localizzata in italiano è comunque molto intuitiva. Con Nova, è possibile lavorare rapidamente, con una sintassi di colore intelligente, mappe di tasti personalizzabili e un’interfaccia utente moderata con stili personalizzabili.

L’idea degli sviluppatori è sempre stata, fin dalla sua prima versione con Coda, quella di offrire all’interno di un’unica applicazione tutto ciò che serviva per sviluppare a mano un sito web: un editor di codice, strumenti di file management e gestione ftp, inspector e preview. Ma con Nova il team di Panic è voluta andare avanti e l’ha riprogettata da zero perchè oggi è cambiato il modo di sviluppare: oltre ad essersi moltiplicati i linguaggi, i framework e gli strumenti di sviluppo, i siti web sono diventati applicazioni e il deployment si è fatto molto più complicato di semplici upload e sincronizzazioni via ftp.

Nova è editor di codice di nuova generazione nativo del Mac e offre tutte le funzionalità di un editor di codice moderno e che gli sviluppatori si aspettano: completamento automatico intelligente, cursori multipli, bilanciamento di tag e parentesi, evidenziazione di problemi, mappa in miniatura del documento e molto altro. In più, l’editor dispone di una serie di tool accessori quali un file browser (anche remoto), un terminale, strumenti di controllo versione Git, e altri. Ulteriori strumenti e funzionalità, tra cui supporto ai file remoti, codice SSH, personalizzazione degli strumenti, ricerca, preferenze personalizzabili, calendario degli aggiornamenti, opzioni di compilazione e versioni precedenti del documento.

Rispetto a Coda, inoltre, Nova aiuta gli sviluppatori non solo a scrivere il codice, ma anche ad eseguirlo, grazie alla possibilità di triggerare dal suo interno azioni, task e script esterni, in tal modo velocizzando il flusso di lavoro.

Infatti Nova non ti aiuta solo a programmare. Aiuta l’esecuzione del tuo codice perchè può facilmente creare attività di compilazione ed esecuzione per i tuoi progetti. In pratica sono script personalizzati che possono essere attivati in qualsiasi momento dai pulsanti della barra degli strumenti o dalle scorciatoie da tastiera e permettono di costruire contenuti con un solo clic. Nova supporta attività Build, Run e Clean separate. Può aprire un report quando viene eseguito. E gli script possono essere scritti in una varietà di lingue.

Ha anche il supporto integrato per una lunga lista di linguaggi di programmazione e di markup: CSS, Diff, EJS, ERB, HTML, INI, JavaScript, JSON, JSX, Less, Lua, Markdown, Perl, PHP, Python, Regex, Ruby, Sass, SCSS, Shell Script, SQL, Tree-sitter Query, TSX, TypeScript, XML, e YAML.

Oltre al motore, è stata riprogettata anche l’interfaccia grafica: pulita, funzionale e nel pieno rispetto del look & feel Mac, Nova offre un’interfaccia utente moderna, con stili di colore personalizzabili per rendere l’editor più vivace.

Supporta anche i temi, che sono espandibili e che permettono di personalizzare l’ambiente di lavoro dell’app. Puoi far apparire Nova esattamente come vuoi: luminoso, scuro o cyberpunk. Inoltre, i temi sono simili a CSS e facili da scrivere. Nova può anche cambiare automaticamente il tema quando il tuo Mac passa dalla modalità chiara a quella scura.
L’interfaccia utente di Nova è altamente reattiva e offre un’esperienza fluida su Mac anche grazie al fatto che è compatibile con i computer Apple Silicon e quindi l’applicazione è stata progettata e ottimizzata per sfruttare appieno le potenzialità del processore M1/M2 di Apple, offrendo prestazioni elevate e una maggiore efficienza energetica.

Il sistema rileva automaticamente la lingua, l’indentazione, la formattazione del testo e l’estensione dei file correnti e fornisce correzioni in tempo reale, in modo da migliorare la produttività. Inoltre, la funzione di autocompletamento previene l’inserimento di caratteri errati durante la digitazione.

Con Nova, gli utenti possono personalizzare la mappatura dei tasti, che consente loro di assegnare comandi personalizzati alle combinazioni di tasti preferite. È anche possibile creare una mappatura dei tasti basata sull’attività corrente, in modo da poter accedere rapidamente ai comandi più comuni della lingua corrente.

Nova offre anche altre funzionalità utili, come il controllo del codice, che consente di individuare e risolvere i problemi più comuni nel codice, come gli errori di formattazione e le mancate chiusure. Sono inoltre supportati gli strumenti di debug, che consentono di cercare e risolvere i problemi più complessi. Infatti Nova ha il supporto di debug integrato per PHP, Python, Chrome, Node.js, Deno ma anche un simulatore per il loro Playdate.
Inoltre, la funzione ‘Go to Definition’ consente di spostarsi istantaneamente a una definizione di funzione, variabile o altro. Infine, Nova offre anche una live preview che consente di visualizzare in tempo reale le modifiche apportate al codice.

Panic in questo video offre una buona introduzione all’editor di Nova. Spiega tutto (in inglese) dalla creazione e dall’apertura di singoli progetti alla personalizzazione dell’interfaccia utente fino al browser delle estensioni con un’ampia selezione di estensioni. Una buona introduzione per chiunque sia interessato al software:

In questo altro video, invece, mostra come clonare le repository Github in pochi semplici passi:

Differenze con Visual Studio Code

Sia Nova che Visual Studio Code sono potenti editor di codice disponibili per macOS, ma ci sono alcune differenze che potrebbero rendere Nova più vantaggioso in determinati scenari. Ecco alcuni vantaggi di Nova rispetto a Visual Studio Code per macOS:

  1. Interfaccia utente intuitiva: Nova ha un’interfaccia utente elegante e intuitiva che rende facile navigare tra i file e utilizzare le funzionalità avanzate dell’editor di codice. Alcuni utenti potrebbero trovare più facile da usare rispetto a Visual Studio Code, che ha una curva di apprendimento leggermente più ripida.
  2. Funzionalità di gestione del progetto: Nova offre funzionalità avanzate di gestione del progetto che semplificano l’organizzazione dei file del progetto e la navigazione tra di essi. Ad esempio, Nova offre una funzionalità di gestione dei progetti visiva che consente di aggiungere, rimuovere e organizzare i file del progetto in modo intuitivo.
  3. Migliore integrazione con Git: Nova è progettato per integrarsi perfettamente con Git, il sistema di controllo delle versioni popolare tra gli sviluppatori. Offre funzionalità avanzate di controllo del codice sorgente, come la possibilità di confrontare le modifiche, creare branch e risolvere i conflitti di merge.
  4. Prestazioni superiori: Nova è progettato per offrire prestazioni veloci e fluide, anche con progetti di grandi dimensioni. Inoltre, ha una maggiore stabilità rispetto a Visual Studio Code e ha meno problemi di crash o rallentamenti. Infatti, come tutte le applicazioni native per macOS, anche Nova, offre prestazioni superiori rispetto alle applicazioni cross-platform come Visual Studio Code (essendo basato sul framework open source Electron, Visual Studio Code è disponibile su tutte le piattaforme perchè consente di creare applicazioni desktop cross-platform utilizzando tecnologie web come HTML, CSS e JavaScript. Inoltre Electron, utilizza il motore di rendering Chromium di Google per visualizzare le interfacce utente delle applicazioni desktop e Node.js per l’accesso alle risorse di sistema). Il modo che ha escogitato il team di Microsoft per migliorare l’efficienza di Visual Studio Code, è stato di creare una architettura modulare che consenta di caricare solo le funzionalità necessarie per il progetto in uso (per dire su Visual Studio Code devo installare una estensione esterna per gestire un semplice ftp) in modo da limitare i problemi di prestazioni che possano emergono. Per Nova tutto questo non è un problema: oltre ad avere tutte le funzionalità avanzate (come file browser Transmit ricco di funzionalità, un terminale Prompt super comodo o una vista di confronto tra due file) già integrate può caricare decine di estensioni senza alcun problema.

Ovviamente, ogni sviluppatore ha le sue esigenze ed è quindi logico che la scelta dell’editor di codice dipende dalle esigenze personali, dai progetti e dall’ambiente in cui si lavora.

La loro filosofia

Trovate il senso di questa app in questa frase degli sviluppatori che tradotta fra pressapoco così: “Il miglior motore di testo del mondo non significa nulla se non ti piace davvero passare il tuo tempo nell’app”. Questo spiega la cura maniacale che hanno dedicato al design dell’app ma anche a tutto quello che sta dietro e che non si vede. Pensate che durante la beta hanno trovato alcuni bug nel motore di layout di testo di Apple che non sono riusciti a correggere. La loro soluzione? Scrivere il loro gestore di layout di testo… da zero. Non solo questo ha risolto i bug, ma ha anche aumentato le prestazioni di Nova!

Dove trovarla

Nova è disponibile direttamente sul sito dello sviluppatore a questo link, costa 99 dollari per la licenza che include un anno di update e nuove funzionalità (79 dollari per l’upgrade da Coda). Dopo il primo anno, costa 49 dollari all’anno se si vuole ricevere tutti gli update, ma l’app in sé non viene disattivata se non si sottoscrive il piano.

Dal sito dell’app è possibile scaricare gratuitamente Nova in versione prova di 30 giorni.

--

--

Antonio Troise
Antonio Troise

Written by Antonio Troise

Blogger at levysoft.it and english edition curator on Medium in AI tech. Former founder of Gamertagmatch and Seguiprezzi. Sharing on levysoft.tumblr.com.

No responses yet