Lettera ad uno studente italiano che non sa cosa sia l’opensource

Il mio augurio di una week veramente open

Caro amico,

in occasione della Code Week ho deciso di provare a spiegarti cosa sia secondo me questo “opensource” di cui hai sicuramente sentito parlare e che forse hai cercato (come parola) su Wikipedia e di cui forse pensi di sapere la definizione. Voglio darti il mio punto di vista, quello di una persona che non sapeva cosa volesse dire sviluppare opensource fino a pochi anni fa, lo ha compreso col tempo (praticandolo) ed adesso ritiene debba essere parte della cultura di ogni studente.

Io ero uno di quelli che era convinto che “opensource” fosse roba non adatta a me, roba per soli NERD, roba da amanti di Linux (io sono un Apple lover), roba quindi molto lontana da quello che faccio.

Un giorno mi sono iscritto a Github, ho cominciato a vedere quante persone condividono il software che hanno prodotto con altri e mi sono posto delle domande: come mai lo fanno? Perchè tutta questa voglia di creare un programma e poi condividerlo con altri?

E piano piano osservando questo mondo ho un po’ capito. Ho capito che opensource non è semplicemente una questione di rilasciare del codice perchè altri possano usufruirne, ma è una “questione di testa”.

Negli anni 90, alle scuole superiori ho iniziato programmando in Pascal proseguendo all’università con altri linguaggi come il JAVA (assieme a HTML), il C, il PHP. Mai nessun professore però ci ha accennato alla possibilità di condividere e riusare ciò che facevamo nei laboratori. I linguaggi di programmazione sono tutti pane quotidiano per gli informatici : si tratta di studiarli sui manuali, leggere tutorial e fare molto esercizio, ma sono tutti “strumenti” per creare qualcosa che possa essere eseguito su un computer. Appunto sono “solo” strumenti. Mai nessuno mi ha spiegato come l’algoritmo che scrivevo potesse essere utile ad altri e poteva essere migliorato da altri.

Quello che non è facile è acquisire proprio questa consapevolezza di poter condividere ciò che si implementa. Questa è una questione puramente culturale, che, anzi, va in pesante contrasto con quello che ognuno di noi è abituato a pensare. Noi siamo figli di una generazione che ci ha insegnato a fare e costruire (un progetto, una professione o un’impresa) perchè gelosamente la si potesse custodire per trarne un beneficio diretto senza che nessun’altro potesse avere accesso alla nostra conoscenza. Noi siamo figli di una generazione che mai e poi mai avrebbe violato il “segreto aziendale” e che tutt’oggi fa grande fatica a concepire questa filosofia di vita della condivisione.

Ecco perché è importante sin dalla scuola avere un approccio opensource a ciò che implementiamo, scegli tu il linguaggio di programmazione migliore, quello che ti è più facile, quello che preferisci, ma per favore non scordarti di condividere ciò che fai con gli altri spiegando come hai fatto a farlo.

E’ come se tu facessi un compito in classe o un esame dove è consentito (anzi vivamente consigliato) copiare dai compagni. Ecco, una buona definizione di opensource: potere copiare nel rispetto delle fonti di cui uso il sapere.

Se davvero non sei sicuro che stai inventando Facebook, Twitter o Google, libera il codice. E ti riporto solo alcuni motivi validi per cui secondo me dovresti farlo:

  • Otterrai feedback positivi da chi apprezza ciò che hai fatto. Questo nell’era di internet dove chi sei lo sanno in molti è cosa ottima.
  • Otterrai feedback negativi e spunti di miglioramento da chi ha valutato che la tua idea può essere realizzata in modo migliore.
  • La tua idea farà da motore di sviluppo di altre idee.
  • La diffusione libera costituisce una vetrina per te e per chi lavora con te e favorisce un’opportunità in più per il momento in cui andrai cercando un lavoro
  • Se l’idea è valida, l’interesse che si genera verso la tua idea farà da “motore pubblicitario” alla tua idea e ne costituirà un modo per aumentare la qualità del tuo lavoro che difficilmente riusciresti a raggiungere “pagando qualcuno”

Per favore, caro amico, non credere a chi ti dirà “Ti rubano le idee”: il mondo delle idee è ancora troppo vasto perché qualcuno te le rubi solo perché ne hai condiviso l’implementazione.

E che qualcuno riusi il tuo lavoro non è un furto, dovrà essere per te motivo di orgoglio anzi. Non solo ma per quanto ti sembri impossibile potrebbe generarti lavoro nel momento in cui ti arrivino richieste da chi vuole che tu aggiunga funzionalità a quel codice che hai sviluppato.

Cerca di capire, infine, che quando correrai nel mondo del lavoro usare codice open spesso si traduce in usare prodotti di community che hanno sviluppato, testato quel codice prima di te. Questo fa sì che se riusi sei più produttivo sicuramente, a patto che tu abbia valutato bene cosa riusare.

Cerca quindi, oltre ai manuali di programmazione di sforzarti di passare dal concetto del “mi rubano le idee” al concetto del “per favore, rubate le mie idee, usatele e rendetele migliori”. Una mentalità nuova di fare informatica a scuola ma anche nel lavoro, sappimi dire i risultati.

A presto

Matteo

(Scritto in occasione delle Code Week 2015 ma valido per ogni Code Week che verrà)