Editor per programmatori in Mac OS X ce ne sono oramai un bel po’, a cominciare da BBEdit, ma in breve tempo TextMate sta diventando uno strumento sempre più adatto ed efficiente per chi si occupa di programmazione o semplicemente vuole realizzare ottime pagine web.
Il sito http://macromates.com/ e una vivacissima mailing list sono una fonte di informazioni molto accurata e mostrano come un buon programma si sviluppa anche con una costante attenzione al feedback degli utenti.
È la stessa attenzione che l’autore, Allan Odgaard, tiene in ampia considerazione, inserendo via via nel codice del programma i suggerimenti di molti degli iscritti alla mailing list, anch’essi programmatori, tra cui alcuni italiani come Domenico Carbotta, citato nei credits dell’about del programma.
TextMate, all’apparenza scarno, ma molto potente, consente di programmare e creare codice in html, Perl, Python, Javascript, java, C, C++, PHP, Ruby, CSS, SQL, XML, Tex, LaTeX, BibTeX, Action script, Apache, Unix shell, ed altri linguaggi che via via si aggiungeranno, ed anche in “plain text” con potenti strumenti di ricerca e sostituzione tramite un completo sistema di “espressioni regolari”, vocabolari, funzioni di autocompletamento, hints e altri strumenti. Strumenti e “snippet” che l’utente può editare, ed anche aggiungere per personalizzare il programma o anche migliorarlo.
Una volta che si prende confidenza con l’interfaccia del programma se ne apprezzeranno le doti e la sintassi colorata e i tantissimi comandi e “macro” del bundle consentiranno di creare in breve tempo tutto quello che serve. C’è anche un modulo di “definizione del linguaggio” con cui, eventualmente, si può definire un altro linguaggio di programmazione, se TextMate non lo dovesse ancora avere.
Per l’html il programma ha anche vari templates, una completa gestione dei CSS e di javascript, moduli di “tidy” per controllare il codice e renderlo conforme agli standards e i principali aspetti della sintassi già presenti nel bundle, che possono anche essere ampliati e personalizzati in modo semplice ed intuitivo.
Una caratteristica che abbiamo trovato molto interessante è che, come del resto accade in ottimi editor (come BBEdit), una volta scelto il linguaggio in cui si vuole operare, il programma si predispone e controlla la sinstassi e tutto il resto, adattandosi anche a situazioni “ibride”: ad esempio, se si è in html e si inserisce una sezione di codice in javascript o una sezione per gli stili CSS, se il cursore si trova in quella sezione, i comandi e le scorciatoie da tastiera sono quelle rispettivamente di javascript o CSS, e spostando il cursore sul normale codice html sono quelle opportune. In tal modo si possono avere le stesse scorciatoie (o abbreviazioni) per ottenere diversi effetti.
Le pagine html create, qualora nel Mac sia attiva la condivisione web, si possono controllare in modo “wysiwyg” sia con un browser, sia con un modulo interno al programma, sia anche con il browser e lanciate direttamente usando il server “localhost” per testare in locale le pagine come se fossero su un server remoto. Lo stesso vale per i CGI in perl.
Per altri linguaggi di programmazione, di volta in volta, l’uso di Terminale o quello che serve viene previsto in modo trasparente e l’utente fa quasi tutto restando nell’interfaccia del programma. Interfaccia che si può persino personalizzare con temi ad hoc o creati dall’utente stesso. Un programma altamente personalizzabile, insomma.
Applicando ha rivolto qualche domanda ad Allan Odgaard.
A. Cos’è TextMate
TextMate è un editor, il che vuol dire che è pensato per gli script, i files di configurazione, i sorgenti (linguaggi di programmazione) e testi strutturati, come LaTeX, linguaggi di marcatura e HTML.
TextMate non è pensato per RTF (rich text files) e files tipo quelli di Word, con cui probabilmente molti utenti “non-geeks” scrivono i loro testi.
A. Quando hai cominciato a sviluppare il programma. E perché?
Ho cominciato nel 2003, senza farmi illusioni, per gioco. Ma nella primavera del 2004 ho riconsiderato tutto ed ho cominciato a lavorare a tempo pieno per quasi quattro mesi. Nell’ottobre del 2004 ho rilasciato la prima versione.
Per un po’ di tempo ho sognato di essere uno sviluppatore autonomo e guadagnarci, e in parte ho cominciato per questa ragione. Per il resto non ero soddisfatto degli editor esistenti, e come programmatore “hobbista” uso moltissimo editor, così decisi di svilupparne uno tutto mio.
A. Attorno a te, al tuo sito, a TextMate, c’è una attivissima mailing list che supporta il programma. Pensi che il feedback degli utenti ti aiuti a sviluppare meglio TextMate?
C’è una perfetta sinergia tra me e i più attivi utenti della mailing list. TextMate tende a non privilegiare un particolare compito (es. l’editing dell’HTML) ma piuttosto prova a fornire una serie di strumenti e meccanismi di estensione che permettano di essere adattati al compito cui si sta lavorando.
Per poter definire meglio questi meccanismi ho bisogno di trattare il maggior numero possibile di questi casi, così da poter individuare patterns, standard, procedure… Così mi ispira molto leggere come la gente usa e pensa di usare TextMate.
Cose come il sistema di grammatica delle varie lingue, i selettori di scope, gli snippets e i comandi sono stati potenziati per essere più flessibili e spesso più semplici da usare, da quando ho cominciato a sviluppare, principalmente sono il risultato del loro uso pratico e del fatto che sono serviti anche a molte altre cose che non avevo neppure immaginato.
A. Quali sono, dunque, i tuoi progetti futuri?
C’è tanta roba che vorrei fare per TextMate, ma cerco di pensarci una settima alla volta e non fari progetti a lungo termine.
Ma i progetti vanno nella direzione di cambiare il sistema di management del progetto per la prossima major release, così che diventi più un file manager che un project manager. Dopo questa fase devo cambiare il modello di presentazione per il testo per permettere un più agile uso degli abbellimenti dell’attuale area di editing del testo e modi più sofisticati di resa del testo stesso.
Inoltre, ci saranno molti altri miglioramenti incrementali, che possono essere fatti per le caratteristiche attuali, per esempio gli snippets dovranno essere in grado di presentare scelte multiple nei segnaposto come i menu, il metodo di attivazione delle voci del bundle dev’essere espanso perché possa includere oggetti arbitrari, movimenti del mouse, e cose di questo genere.
Ho anche bisogno di aprire TextMate ulteriormente agli attuali plug-ins. Propendo per un approccio dichiarabile, che è più semplice per l’utente e spesso offre maggiore flessibilità, ma non tutto si può fare in questa maniera, e la lista di gente che vuol creare plug-ins per roba che non mi piace implementare sembra crescere lentamente.
A. Pensi di rilasciare in futuro traduzioni in italiano, francese, spagnolo o altre lingue?
Al momento no. Principalmente perché il modo di tradurre un programma per Mac è clonare l’interfaccia per ogni lingua e cambiare il testo. Questo vorrebbe dire tradurre TextMate per esempio in dieci lingue, e se cambio una minuzia in una finestra dovrò aggiornare dieci interfacce. Peggio se aggiungo del testo: devo richiamare i dieci traduttori per tradurre questo testo in ogni lingua, prima di ogni release pubblica.
Così, sinché TextMate sarà soggetto a questo pesante sviluppo, questo ulteriore peso non è sostenibile per me. Ma ovviamente ho progetti per farlo in un prossimo futuro.
Il programma, attualmente alla versione 1.5, costa solo 39 dollari e si può provare nella versione trial su macromates.com.
-Salvo Micciché