Per quelli che non lo sapessero, BBEdit è un software molto particolare e dalla storia alquanto lunga. Anzi, lunghissima: la prima versione risale al 12 aprile del 1992, come scrivemmo qui, ed è diventato abbastanza velocemente lo strumento definitivo per programmatori, sviluppatori web, system admin o da chiunque lavori quotidianamente e pesantemente con il testo. Rich Siegel (a tutt’oggi lead developer del prodotto) è probabilmente uno degli sviluppatori chiave perché ha fornito lo strumento che ha messo in moto intere generazioni di persone che “fanno” con il testo. Pensato come tool per programmatori su Macintosh, è ben presto diventato qualcosa di più, anzi di molto di più.
Da un lato perché, con la nascita del web, l’esigenza di manipolare codice e testo come con l’HTML ha aperto la via a una moltitudine di figure nuove che in molti casi non appartenevano direttamente al mondo della programmazione. Dall’altro perché anche per chi manipolava (e manipola) grandi quantità di testo avere a disposizione uno strumento potente e flessibile come BBEdit è sempre stato un grande vantaggio. Nella storia mai scritta degli strumenti digitali di scrittura BBEdit ha un posto di tutto rilievo non solo sulla piattaforma di Apple (e nonostante sia un software solo ed esclusivamente per macOS, dato che non esiste una versione per iOS o altro).
Ritorno al passato
Perché non usare una delle prime versioni di BBEdit (qui abbiamo la 4.1 che gira su Mac OS 7.0.1) per provare una emozione rara: scrivere con una antichissima versione di BBEdit. Un esperimento che non consigliamo di fare, a meno che non abbiate sulla scrivania un vecchio Macintosh Plus che ancora funziona correttamente. Il problema, casomai, sarà poi riuscire a esportare il documento scritto, a meno di non utilizzare un emulatore (come in questo caso).
Qui su Macitynet abbiamo sempre seguito con attenzione le evoluzioni di BBEdit: abbiamo recensito la versione precedente, cioè la 11, abbiamo segnalato l’aggiornamento della 12, ma avevamo anche recensito la versione 9, e sempre tenuto d’occhio lo sviluppo del software.
A suo tempo, parliamo del lontano 2001, fu una notizia scoprire che BareBones, la software house dietro a BBEdit, aveva portato il suo software su MacOS X: per molti sviluppatori fu condizione necessaria e sufficiente per migrare alla nuova versione Unix del sistema operativo di Apple (perché all’epoca di resistenze ce ne furono e non poche). Non solo, ma abbiamo sempre seguito con interesse (e utilizzato) anche TextWrangler, la versione free dell’editor di testo di BareBones, che recentemente è stato fermato proprio per l’uscita della nuova versione di BBEdit 12. La ragione è semplice: il nuovo BBEdit ha una modalità “demo” a piene funzionalità che, se non si acquista il programma, si blocca dopo 30 giorni.
Dopo i trenta giorni le funzionalità di base per l’editing di testo continueranno ad essere disponibili con un livello sostanzialmente analogo a quello di TextWrangler. Perché allora mantenere due nomi e due basi di codice, quando si può fare con un solo prodotto, che così diventa anche più popolare? Detto fatto, BBEdit è il “Jack of all trades” anche in questo caso.
Solo fuori dal Mac App Store
BareBones era una delle aziende che aveva deciso di mantenere due versioni della sua app: una si poteva acquistare direttamente dentro l’app store di Mac, e l’altra invece dal sito aziendale. A parte il prezzo, quel che cambiava erano solo alcune funzionalità. Segnatamente, dato che la sandbox di macOS per i programmi che vengono installati dal Mac App Store blocca molte attività meno canoniche di altri del software, non funzionava la parte della linea di comando, che infatti in quella versione non era più installabile.
La versione 11 di BBEdit dunque si poteva comprare e usare tranquillamente, anche se in versione molto parzialmente “ridotta” anche su App Store di Mac. Adesso però, con regole sempre più stringenti e quindi margini di manovra sempre maggiori, BareBones ha deciso di chiudere definitivamente questo lato della sua attività e vendere BBEdit solo sul suo sito. E meno male che non la vende in abbonamento, si potrebbe aggiungere. Sono molti infatti gli sviluppatori che, per ragioni economiche, hanno deciso di passare a questo tipo di modello di vendita (una sorta di “noleggio” della app o di “accesso” alle sue funzionalità, anziché di acquisto puro e semplice: è il caso nel testo di Ulysses). Ma per BareBones non è una questione di modello di business, quanto soprattutto di funzionalità. Quelle che l’azienda vuole mettere dentro BBEdit non ci sta più se si passa dal Mac App Store. E allora, per andare a tutto birra, ecco la storica decisione di uscire dal negozio digitale e via, verso nuove e vecchie strade.
Un uso orientato al codice
Cosa voglia dire utilizzare BBEdit, qualsiasi versione (abbastanza recente) di BBEdit, è presto detto. Mettiamo qui e nel prossimo paragrafo le cose orientate all’utilizzo di questa app per scrivere codice e parole, e poi parliamo delle novità della nuova versione.
Ricordando che BBEdit non è un word processor (una videoscrittura, come ad esempio Word di Microsoft o il nostro amico Scrivener) ma un editor di testo, cioè un manipolatore di lettere e numeri, che può servire per scrivere qualsiasi cosa e non necessariamente prosa (o poesia), possiamo andare a vedere quali sono i fondamentali per quanto riguarda il software.
Le aree che interessano la scrittura del codice sono le più numerose. C’è ovviamente la parte di scrittura in quanto tale, che permette di creare righe di testo con lunghezza variabile (da infinita a soft e hard wrap) e con formati diversi (little e big endian) orientati a differenti tipi di strutture dei documenti (Unix, Windows, vecchi per Mac). Questa è la prima parte dell’eredità più importante come editor di testo per la programmazione, cioè la funzione per la quale era originariamente nato BBEdit quando gli sviluppatori (e segnatamente Rich Siegel) crearono un software per Macintosh in Pascal capace di superare il limite dei file di 32K usando il motore del testo “PE” della THINK Technologies.
La seconda dimensione interessante per gli sviluppatori di software ha a che fare con l’architettura. Nel corso del tempo BBEdit si è arricchito ed ha aggiunto numerose funzionalità ed ha anche cambiato la sua architettura. Il punto saliente è stata l’aggiunta del supporto per i plugin, la possibilità di fare scripting prima con le tecnologie di Apple Script e poi con quelle Unix, e colorare la sintassi dei vari linguaggi di programmazione. Quest’ultimo aspetto, unito all’architettura a plugin ha permesso al software di fare il suo salto di qualità negli anni novanta, quando terze parti crearono plugin per l’HTMIL, all’epoca linguaggio sconosciuto agli sviluppatori e oggi forse la ragione vera e profonda del maggior successo di BBEdit.
La terza dimensione è quella invece della gestione dei collegamenti: BBEdit ha sempre seguito le varie tecnologie promosse da Apple, a partire dai vari OpenDoc e PowerTalk, ma ha presto sposato anche FTP e SFTP. In pratica rendendo il software uno strumento che non ha bisogno di altro aiuto per poter “muovere” il testo creato direttamente dall’editor al server dove verrà eseguito. Non poco e non male.
Quarta dimensione è quella della gestione delle espressioni regolari, potenziate tramite l’integrazione con Grep di Unix (la piccola app Unix sta per g/re/p cioè: Globally search a Regular Expression and Print), che sta nella “pancia” di macOS, ma che già da tempo era nell’occhio di BBEdit. Con l’uso delle RegEx, che non dimentichiamolo sono uno dei capisaldi della teoria dell’informatica e dei linguaggi formali, la potenza di manipolazione del testo diventa enorme.
Le espressioni regolari permettono di trovare un insieme di lettere e numeri che definiscono un search pattern, a partire dalle modalità più semplici (“cerca” e “cerca e sostituisci”) fino ad espressioni sempre più complesse: un tipo di ricerca è quella data da:
(?<=\.) {2,}(?=[A-Z])
che permette di trovare tutte le volte che in un testo compaiono due spazi di fila, ma solo se si trovano dopo un punto e prima di una lettera maiuscola (esempio preso da Wikipedia).
Il lavoro che si può fare su un testo con questo tipo di approccio è enorme, e ai programmatori risulta essere estremamente utile perché consente di manipolare in maniera automatica ed altamente sofisticata grandi quantità di testo che spesso sono righe di codice alquanto complesse e praticamente impossibili da editare una per una a mano. Ma non c’è solo questo.
Un uso orientato alle parole
Le funzioni avanzate di manipolazione del testo hanno fatto sempre più gola anche agli utenti che volevano manipolare codice HTML per il web e non solo. Infatti, non sono moltissimi in proporzione ma sono utenti appassionati anche gli autori di libri (magari tecnici) o chi deve gestire grandi quantità di testo, di documentazione e di altre tipologie di documenti testuali.
Gli esempi sono vari e anche qui siamo, con le consuete eccezioni che ci sono sempre, nell’ambito di applicazioni piuttosto particolari e ben definite. Ma si tratta di applicazioni piuttosto specifiche. Comunque. BareBones si fa vanto e a ragione di avere una nicchia piuttosto popolosa di utenti che utilizzano appassionatamente la sua applicazione per scrivere ad esempio per il web.
Con l’integrazione diretta di SFTP e adesso anche di Git, è possibile infatti caricare direttamente il testo nei vari repository online, o magari sul server dove vengono pubblicate le pagine web. Non poteva poi mancare l’integrazione com il markdown, cioè l’integrazione tramite plugin con il sistema di colorazione della sintassi, che permette di dare spazio anche a questo modo di scrivere testo. Ci sono le chicche, come la modalità di selezione delle parole che evidenzia automaticamente tutte le ricorrenze dello stesso termine nel testo: una cosa che serve a chi fa prosa e non certo ai programmatori, e che lascia capire come l’eredità di BBEdit abbia un Dna antico che risale a un’epoca in cui il mondo del software per il testo era popolato da creature a due teste: buone sia per il codice che per il testo tradizionale. Ci sono alcune cose “strane” per un utente di testo tradizionale rispetto al codice, come ad esempio le coppie di doppie che vengono evocate non appena si apre ad esempio una parentesi, oppure le virgolette. Ma ci si abitua quasi subito e casomai il problema diventa poi farne a meno in altri editor.
Testo a tutta birra
BBEdit ha veramente tantissime funzioni, molte più di quanto non sia ragionevole riassumere qui. Abbiamo provato il software utilizzandolo per scrivere testo ma anche codice di scripting, Html, Markdown e abbiamo gestito connessioni con server SFTP, Git e altre modalità di scambio dei dati. Abbiamo anche recuperato file salvati con la versione del 1994 e il testo è venuto fuori perfetto, senza nessun problema di accentate o altro. Abbiamo trovato grande facilità con i menu dedicati all’hmtl (dopo tanti anni di markdown in editor minimalisti, recuperare queste funzionalità strutturate nel software è stato veramente un piacere) e la possibilità ad esempio di far collassare i blocchi di testo a seconda del livello strutturale di titolazione (titoli H1, H2, H3 etc) annidati l’uno dentro l’altro. Sulla sinistra il pannello che permette di passare da un documento aperto all’altro è molto comodo ed è quello che dà una vocazione da “quasi IDE” al suo software. Non è Xcode, ma fa cose piuttosto complesse che nessun editor più semplice riesce a portare avanti, senza contare anche un interessante (ma purtroppo a tratti zoppicante) funzione di auto-completamento delle parole e soprattutto (finalmente) l’integrazione con SplitView di macOS.
Nel tempo BareBones ha aggiunto molte altre funzionalità: dalla possibilità di cercare e modificare documenti all’interno di un file zippato a quelli di “buona cittadinanza” con Mac, che consentono di salvare ad esempio il contenuto di una finestra alla chiusura del programma anche se il file non è stato mai salvato, e rivederlo come nuovo quando si riapre BBEdit. Per chi scrive prosa le novità sono sempre relative, perché nella versione 12 BareBones ha mirato a portare avanti le funzionalità di gestione del testo più strutturali.
In particolare, BBEdit ha creato nuovi temi scuri e migliorato quelli esistenti, ha migliorato il design e il layout delle finestre flottanti e accessorie (quelle per FTP ed SFTP, l’anteprima del codice) e ha fatto un’ampia serie di modifiche e aggiornamenti per quanto riguarda l’integrazione con le tecnologie di macOS High Sierra e successivi. In questo modo BareBones ritiene di aver gettato le fondamenta per altri anni di utilizzo del suo software sulla piattaforma Mac. Ci sono più di 100 novità in questa versione 12 e non è certamente possibile vederle tutte, anche perché alcune sono veramente minimali e di nicchia. Invece vale la pena sottolineare alcune cose.
Cominciamo dal nuovo comando Canonize, che permette di effettuare trasformazioni del testo e formattazioni dei documenti in maniera molto sofisticata su un unico documento o su interi progetto. Questo si sposa con il nuovo Paste Using Filter, che permette di caricare testo da altre applicazioni senza portarsi dietro formattazioni o altri tipi di “sporco”. C’è poi la nuova funzione Columns che consente di estrarre una singola colonna di testo da file in cui il testo è organizzato con schemi tipo CSV senza dover prima passare da una importazione in un foglio di calcolo. Ed è anche possibile riorganizzare le colonne all’interno di un documento di questo tipo. La funzione Extract adesso supporta pienamente l’integrazione con l’applicativo Unix Grep, e questo consente di modificare righe di testo nel momento stesso in cui vengono trovate e copiate.
BBEdit 12 ha nuovi motori per gestire alcune delle sue funzioni più importanti: abbiamo già accennato all’anteprima e alla parte di SFTP-FTP, ma c’è una terza parte che è stata aggiornata, anche se non è una novità assoluta. Si tratta di quello che BareBones chiama Text Factory, cioè la modalità di lavoro in batch su un insieme di documenti di testo. Nella Text Factory, cioè nella possibilità di operare contemporaneamente su più documenti di testo che appartengono anche a progetti differenti, sta la vera potenza di fuoco di BBEdit per quanto riguarda la manipolazione di grandi quantitativi di testo. Per chi ha sposato il testo semplice (con Markdown, LaTeX o altre modalità di marcatura leggera o meno leggera del testo, oltre all’HTML per quanto riguarda il web) questo vuole dire poter lavorare sull’interessa dei propri archivi senza problemi.
Conclusioni
Una vecchia gloria: ma dire così è denigratorio. Uno dei più esperti, maturi e potenti programmi per la manipolazione del testo presenti sul mercato. Questa è già una approssimazione migliore. BBEdit si fa rispettare perché fa moltissimo, anche se lo fa con una estetica ben diversa (dai più limitati) software per la manipolazione del testo super minimalista attualmente tanto di moda come i vari IA Writer.
Per chi giù possiede e utilizza regolarmente BBEdit, l’aggiornamento è di rigore, visto i vantaggi che porta. Chi ha la versione BBEdit 11 ha anche diritto a uno sconto. Se invece vi approcciate per la prima volta a un software di questo tipo, allora qui le cose sono più complesse. Ci sono cose nuove, cose diverse e cose strane. Paradossalmente, ha meno senso utilizzare BBEdit se ci si occupa di scrittura creativa che non se ci si occupa invece di gestire e organizzare sempre più grandi quantità di testo. Il web i ha liberato dalla dipendenza dai formati di Microsoft e quindi diventa possibile fare veramente tanto con maggiore leggerezza e libertà.
Per chi programma le cose sono un po’ più complicate. Ci sono vari tipi di programmatori e molti seguono abitudini che vengono acquisite in maniera molto pragmatica all’inizio della carriera. Altri “scoprono” un modo di lavorare e lo tengono ben stretto da allora in avanti. C’è chi “vive” dentro Atom, l’editor di testo creato da GitHub, c’è chi invece ancora è legato a VIm o ad Emacs. C’è chi non lascerebbe mai il suo vecchio sistema di scrittura del codice e chi passa da uno all’altro ogni giorno. C’è chi è un fedelissimo di Sublime Text (o, in ambiente Windows, di Notepad++ o di UltraEdit) e chi invece sostiene che si può fare tutto con un editor di testo semplice, gratuito e senza funzioni.
Secondo chi scrive BBEdit è uno strumento inseparabile per chi deve gestire grandi quantità di testo, con un miscuglio di codice e di prosa, ad esempio perché amministra uno o più siti web e deve mettere le mani sui server molto spesso. È utile per chi produce libri e documentazione in grande scala ed ha una attitudine piuttosto orientata alla matematica (altrimenti c’è sempre Scrivener). Per chi voglia programmare è uno strumento molto utile, con l’unico svantaggio di tenere vincolati alla piattaforma di Apple, anche in una prospettiva di passaggio a un ibrido di marzapane tra iOS e macOS.
In generale, i trenta giorni di demo a funzionalità piena sono più che sufficienti e, alla fine, ci si guadagna sempre un editor di testo molto utile e potente anche con le funzionalità di base. E un pezzo di storia sul proprio SSD. Non male, vero?
Pro
Leggero, veloce, affidabile, potente
Come il vino buono, più passa il tempo e più migliora
Contro
Alcune scelte di interfaccia sono molto conservatrici
Mancano alcune funzioni tipiche degli ambienti di sviluppo integrati