Tempo fa sono stato ad un "*camp" dove tra le tante persone interessanti che ho conosciuto me ne è capitata una che, dopo avermi chiesto di cosa mi occupo, mi ha chiesto quale programma usassi, domandandomi nello specifico se usassi quello "verde", costoso e WYSIWYG.
Ho risposto di no, che preferisco scrivere il codice in solo testo. L'interlocutore mi ha guardato come fossi un marziano, si è messo a ridere dicendomi che così perdevo un sacco di tempo e che era impossibile che fossi capace di interpretare quello che scrivevoÂ…
Io uso TextMate, un editor di testo creato da Allan Odgaard di Macromates.
Non solo so cosa scrivo ma penso che il programma mi aiuti anche ad essere più veloce nello scrivere il codice, mi assiste nelle porzioni ripetute o usate freqentemente e in una miriade di altre cose che giorno dopo giorno lo rendono sempre migliore.
Sarebbe molto lungo cercare di spiegare il funzionamento di TextMate. Una delle caratteristiche peculiari e che più apprezzo del programma è che il testo digitato possiede uno "scope selector" (rozzamente potrebbe essere tradotto come un "selettore di ambito"), ispirato dalla ereditarietà dei CSS, che permette al programma di capire se una data porzione di codice appartiene a codice "PHP all'interno di un file html", o se si tratta di un "valore tra doppie virgolette all'interno di un selettore CSS nell'header di un file html"Â… wow!
Questa caratteristica, di base, ha permesso l'altra caratteristica interessante di TextMate: l'architettura dei Bundles.
Simile alle extensions dell'altro, quello verde per intenderci, i bundles sono delle istruzioni particolari relative ad un linguaggio o a delle utilità che velocizzano drammaticamente la scrittura del codice. I bundles possono essere relativi a Comandi specifici tipo "effettua l'escaping della riga/selzione", possono essere Macro come "Cancella tutti gli spazi bianchi dopo la selezione" o possono essere "semplici" Snippets di codice. Per esempio, digito div, premo il tasto tab e il programma mi scrive tutto il tag, con apertura chiusura, id, mi sposta i tag di apertura e chiusura su tre righe, con la giusta spaziatura in tab o spazi, per permettermi di inserirvi il contenuto in mezzo e con successivi tab da tastiera, di spostarmi, per poterne immettere i relativi contenuti, dal valore dell'id al contenuto stesso del div, il tutto con, ripeto: div+tab.
Personalmente, uso due bundles (HTML e CSS) creati da Minimal Design che estendono le potenzialità dei bundles HTML e CSS di base di TextMate (guardate gli screencasts relativi sulla stessa pagina di download per capirne la potenza).
I più attenti noteranno che l'autocompletamento con il tasto tab deriva dal mondo Unix. Assolutamente vero: TexMate è stato creato da un appassionato di Unix, per cui dall'interno stesso del programma si possono eseguire i comandi del terminale ma è anche possibile eseguire codice Ruby, Perl, CGIÂ… splendido!
Gli stessi comandi o gli snippets che troverete già nel programma si possono basare sui linguaggi disponibili da terminale. La maggior parte sono in Ruby, ma potete usare quello che preferite, poiché il programma possiede un comodo "Bundle Editor" per permettervi di creare e modificare in qualsiasi modo i vostri snippets, comandi, etc. E se non ne foste capaciÂ… registrate come macro i vostri comandi!
In giro per la rete ma anche sullo stesso sito del programma troverete bundles di ogni genere, dal più sconosciuto linguaggio di programmazione ai più blasonati framework (ce ne sono anche per MooTools, jQuery, Prototype/Script.aculo.us, Cake, Simphony, Ruby On Rails, etc.) fino a funzioni particolari come gestione dei ToDos, scrittura di posts di un blog, e chi più ne ha più ne metta.
Su questa pagina troverete dei video esplicativi di cià di cui stiamo parlando.
Ricordo in conclusione che è possibile sfruttare anche su Windows la potenza del programma e soprattutto la ricca collezione di bundles creati dalla comunità di utenti che ruota intorno al programma grazie a E - TextEditor.