Sappiamo tutti che uno degli strumenti più preziosi per noi ingegneri (e non) informatici è Google. Sia per la ricerca di chiarimenti, frammenti di codice oppure dei tutorial, quante volte ci siamo trovati davanti a tantissimi risultati, tutti (o quasi) in inglese? Sempre. Ormai la conoscenza dell’inglese è un obbligo ai giorni nostri e i testi più raccomandati sono stati scritti in questa lingua. Nonostante ciò, due ragazzi siciliani, Giuseppe Sapienza e Luca Pappalardo, studenti di Ingegneria Informatica a Catania, hanno voluto rivendicare il luogo del nostro paese e quello della divulgazione informatica in lingua italiana.
Nell’ambito di AppShow 2017, Close-up Engineering ha avuto la possibilità di parlare con Giuseppe Sapienza sul loro progetto: xCoding, una community di sviluppatori che fece i primi passi tre anni fa come un blog sul linguaggio Swift e che ormai conta con il supporto di centinai di iscritti. Oltre alla community, esiste anche un gruppo Facebook dove i vari utenti scambiano e interagiscono tra di loro.
“Noi siamo focalizzati sul learning, cioè, sullo spiegare come si creano le applicazioni. Per il momento solo per iOS con il linguaggio Swift e giochi multipiattaforma con Unity3D. Lo sviluppo è secondario e se lo richiede qualche cliente in particolare (sviluppiamo per conto terzi). Lo scopo principale è lo scambio della community.”
Oltre all’interazione tra gli utenti, Sapienza ci ha spiegato come una parte fondamentale del progetto xCoding siano i corsi dedicati: “Siamo partiti con un corso gratuito sul linguaggio Swift, perché la nostra idea è quella che la programmazione elementare deve essere alla portata di tutti e che non ci dovrebbe essere nessun costo per accedere alle tecnologie dell’informazione. Questo corso, in 3 anni, ha registrato più di 5000 iscritti, grazie anche al fatto che sotto ogni sezione è possibile trovare degli esercizi che l’utente può svolgere se ha un account registrato (oppure solo leggere se non ce l’ha) per poi sottometterli alla mia revisione e a quella della community. Quindi chi sta seguendo il corso può interagire attivamente durante il proprio percorso di studi.”
“Abbiamo un altro corso, quello di Luca Pappalardo, che è sullo Unity3D, quindi sullo sviluppo di videogiochi. Anche questo gratuito perché permette di comprendere i meccanismi che stanno alla base di questo strumento.”
“La fase successiva, quella che stiamo creando adesso, è quella di creare corsi di un determinato livello (questa volta a pagamento anche per remunerare il nostro lavoro) indirizzati a chi vuole rendere questa passione un vero e proprio lavoro.”
“La cosa a cui tengo di più è al fatto che il programmatore italiano non ha molta considerazione dei propri colleghi connazionali. Ogni volta che parlo con altri sviluppatori mi sento dire la solita frase: Dovresti informarti e leggere da fonti scritte in inglese. Ovviamente è vero, perché sono loro che danno gli spunti a tutto il mondo dell’informatica, però, avere dei supporti in italiano aiuta chi non è ancora uno sviluppatore, e a tutte le persone che stanno provato ad affacciarsi a questo mondo e che non hanno una conoscenza dell’inglese di un determinato livello. Crediamo che l’Informatica italiana debba riottenere un ruolo di leadership, sia europeo che mondiale, quindi se prima non comunichiamo tramite community, eventi o forum, rimarranno sempre freelance che bazzicano da un posto a un altro.”
“È assolutamente falsa questa convinzione. Siano nell’epoca della velocità; tutti vogliono tutto nel più breve tempo possibile. Questo porta alle persone che si stanno avvicinando a studiare determinati concetti tecnici, come quelli informatici, a pensare, magari dopo una settimana di aver cominciato gli studi, di non essere portato per quel determinato settore. Questo succede semplicemente perché sta commettendo l’errore di voler ammassare tutte le conoscenze in un brevissimo lapso di tempo, quando invece l’Informatica, come tanti altri settori, hanno tempi lunghissimi di apprendimento.”
“Io faccio sempre questo esempio quando introduco un corso di primo livello: sviluppare si può paragonare a costruire un palazzo. Solamente mattone dopo mattone si arriva all’ultimo piano, e di conseguenza, ci vuole del tempo per mettere su quella infrastruttura. Allo stesso modo, nell’Informatica ci vuole del tempo per raggiungere un determinato livello”
“È abbastanza semplice. Qualche anno fa, uno sviluppatore creava un’app, la piazzava sul mercato e ‘come andava andava’. Oggi non si può più accedere al mercato in questo modo. Un’app deve essere strutturata in un determinato modo, sopratutto deve essere mantenibile nel lungo periodo. Uno sviluppatore la cede a un altro, e quest’ultimo, deve essere in grado di riprendere quello che lo sviluppatore precedente aveva scritto e creato. Purtroppo, nei linguaggi procedurali, questo non avviene perché la sintassi non è pensata per le persone ma per i computer, quindi risulta complicato per una nuova persona, capire cosa aveva scritto quella precedente.”
“I linguaggi orientati agli oggetti hanno il pregio della manutenibilità. Permettono di essere facilmente leggibili e rimodulati in un breve tempo. Questo non vuol dire che io sia contro i linguaggi procedurali, anzi, in alcuni settori, ad esempio nell’IoT (Internet of Things), dove le memorie dei chips sono ridotte, non si può pensare di scrivere un codice object oriented. Nei dispositivo mobile, però, non ha senso farlo perchè abbiamo memorie, tra virgolette, non dico illimitate ma quasi. Non è importante stare attentissimi alle performance, tanto meglio focalizzarsi sulla manutenibilità.”
“L’idea è quella di essere un punto di riferimento per il settore della consulenza mobile in Italia. Non ci siamo mai messi su argomenti come lo sviluppo web o lo sviluppo attraverso framework che ti permettono di creare applicazioni native, bensì sulle eccellenze e gli istrumenti di punta dei dispositivi nativi. Quindi pensiamo di espanderci sotto questa ottica.”