Code is words

Una delle cose meravigliose del mio nuovo lavoro è che finalmente ho il tempo e la motivazione e gli obiettivi per studiare seriamente cose piuttosto tecniche. Robe di metadati, ma soprattutto robe di python, scraping, API: in una parola sola, programmazione, che sono sette anni che provo ad imparare e finalmente ce la sto facendo.

Questo vuol dire lavorare spesso col terminale, a linea di comando (che per chi come me sarà sempre un forestiero informatico è un tipo di lavoro estremamente pulito e concentrato), ma soprattutto vuol dire stare tutto il giorno davanti ad un editor di testo, e scrivere.

Questa è una cosa molto poco banale.
Vuol dire stare davanti ad una pagina bianca (nera, nel mio caso), e cercare di far accadere cose, attraverso le parole.
Solo che si utilizzando due tipi di linguaggi: uno formale, l’altro no. Uno serve per parlare con le macchine, l’altro con gli umani.

Il linguaggio formale, il codice, è complesso, spesso complicato, ma estremamente potente. Poche persone lo sanno parlare, ma viviamo in un momento storico in cui sempre più persone lo imparano e lo impareranno (sarà un mondo interessante, credo (come se si svegliasse un continente di persone che fino a ieri non parlava; come se domani l’Africa aprisse le labbra e ne udissimo la voce plurale, per la prima volta)).
La cosa meravigliosa del codice è che modifica una realtà (virtuale), la crea, la fa vedere.
Il codice è comunicare con i computer, far fare le cose a loro; permette la costruzione di strumenti e intrastrutture virtuali, che però hanno effetto anche sul reale.

Provavo a dirlo anche qui: secondo me, ci manca una metafora appropriata, per il digitale, se non quella che il codice è un creatore di mondi (perchè è parola, e la parola crea mondi) solo che è parola formalizzata, e quindi ci fa parlare con i computer, che sono intelligenze inferiori (perchè non gestiscono la confusione, l’informale, l’informe) e superiori al tempo stesso, perchè con le parole formali fanno miracoli, e creano mondi per noi.

Aaron lo diceva benissimo: programming is magic.

~

Diminuire gli strumenti su cui si lavora a me sta dando enormi soddisfazioni, e migliorando la mia produttività. Cerco di concentrarmi su alcuni di questi, che eliminino le distrazioni e mi costringano a scrivere/leggere/eseguire comandi.

D’altronde, era banale: la comunità dei programmatori non fa che scrivere tutto il giorno, ed è capace di costruirsi i propri strumenti da sola. Ne consegue logicamente che basta guardare cosa usano loro per trovare strumenti comodissimi per scrivere e lavorare.

Ergo, Sublime Text è diventato il mio migliore amico.
Sto piano piano facendo convergere tutta la mia attività qui sopra: ci scrivo il poco, misero codice che riesco, e scrivo appunti e post e articoli in Markdown, che non è altro che un linguaggio di markup (tipo wiki, per capirci), ma standard, riproduce l’HTML, viene usato da sempre più siti e addirittura puoi scriverci anche in WordPress (quindi ci scrivo anche i post).
E’ molto comodo e mi permette di lavorare sempre su Sublime e non trasferirmi su Google Docs o (peggio) LibreOffice.
Diventa dunque possibile lavorare soltanto su Sublime e scrivere codice, eseguirlo (da terminale), prendere appunti (su una pagina nuova), o anche scrivere sul blog e pubblicare allo stesso tempo (con Jekyll, per esempio, attraverso GitHub, ma si può pubblicare anche su WordPress).
Sono appena all’inizio, e sono già innamorato.

5 pensieri su “Code is words

  1. Quando si parla di scrittura vera e propria, quella rivolta gli “umani”, quindi non scrittura di codice, non mi hanno mai convinto gli editor puri di testo, cosiddetti “distraction free”, perché trovo che abbiamo bisogno di strumenti molto più complessi capaci di rispondere a diverse necessità: 1) strutturare un testo, splittarlo e riassemblarlo; 2) poter separare gli appunti grezzi, gli abbozzi da quella che è la scrittura effettiva; 3) un documento unico può essere suddiviso in varie parti contenute in file diversi, per cui abbiamo bisogno sia di avere un sistema di navigazione da un file all’altro, sia un sistema di link per i rimandi interni; 4) poi abbiamo bisogno di poter raccogliere insieme file di materiali presenti sul nostro computer (per es. un file PDF) e che ci servono per scrivere un certo testo, raccogliendoli insieme da qualche parte creando una collezione “temporanea” ma senza spostarli dalle cartelle a cui li abbiamo assegnati (una cosa è la gestione dell’archiviazione, un’altra cosa è l’uso temporaneo per scrivere un certo testo). Per chi scrive saggi (ma anche un blog) un’altra esigenza fondamentale è quella di gestire le citazioni: questo implica un colloquio tra l’editor di testo e un software per la gestione delle citazioni. Un editor di puro di testo non offre tutte queste caratteristiche. Quanto all’inserimento delle citazioni e alla gestione degli stili, i sistemi basati su LaTeX rimangono imbattibili; il loro limite è che non servono per editare un blog perché sono pensati per produrre un output stanpato o un file PDF. Un software complesso fatto per ottenere molte di queste cose è Scrivener: http://www.scrivener.it/ Poi c’è Emacs, un vero e proprio “ecosistema” che riesce a rispondere a molte esigenze di questo tipo e per la scrittura vera e propria tra le varie alternative si può usare Org mode per Emacs: http://orgmode.org/

    Mi piace

    1. Ti consiglio di provarlo, il buon Sublime. Pur non essendo un esperto, posso dirti che secondo me è come Emacs, però usabile :-) Ha moltissimi plugin, e la metafora dell’ecosistema secondo me gli calza a pennello. Il Markdown risolve molte cose relative alla formattazione, non so invece di integrazioni con Zotero o simili. Però le funzioni che ti fanno passare fra fogli diversi in una stessa cartella, e soprattutto l’editor a schede, sono comodissimi (per me, almeno).

      Mi piace

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...