Uploaded avatar of iHiD

Un'intervista a Ryan Potts

@iHiD
Oltre 7 anni fa

Un'intervista con Ryan Potts in cui lui e Jeremy Walker parlano di Delphi, delle cose che ha imparato come contributore di Exercism e delle sue esperienze di programmazione in settori ancora «offline».

Ciao Ryan. Grazie per aver trovato il tempo di fare due chiacchiere con me. Sei il maintainer del track Delphi su Exercism. Come ti sei avvicinato a Delphi?

Lavoro per un'azienda fondata da mio padre, che sviluppa software dagli anni '80: all'inizio usava Microsoft Pascal, poi è passata a Borland Turbo Pascal. Sono arrivato in azienda nel '96, più o meno nel periodo in cui cominciavamo a ricevere richieste per produrre software che girasse su Windows invece che su DOS. Per nostra fortuna Borland aveva appena rilasciato Delphi 1. Per noi è stata la soluzione perfetta, perché gran parte delle unit sviluppate negli anni si potevano ancora usare. Non dovevamo più ricominciare da zero in VB o VC per supportare Windows.

E usi ancora Delphi tutti i giorni?

Sì, l'azienda per cui lavoro produce macchine per i test di R&S e per i test su piccoli lotti nel settore automotive: si testano pneumatici, sedili auto, gonfiatori di airbag e si eseguono anche crash test. Tutti i sistemi prodotti sono usati da diverse case automobilistiche nel mondo e dai loro fornitori.

Il software su cui lavoro serve a controllare questi vari tipi di macchine. Sviluppo l'interfaccia utente, definisco le sequenze di test per le parti automatizzate delle prove, integro i vari punti di input e output, sia analogici sia digitali. Deve essere il più possibile facile da usare, così che una persona con una formazione minima si senta abbastanza a suo agio nell'usarlo.

Il lavoro che faccio non richiede alcuna programmazione web. Tutto quello che faccio è in Delphi su Windows. Ogni tanto devo mettere insieme un piccolo «comando personalizzato» in C++ e poi caricarlo sulla scheda processore di acquisizione dati, un computer parallelo che sta in uno slot PCI del computer; ha una sua CPU, la sua memoria e il suo sistema operativo.

È affascinante parlare con qualcuno che non fa nessuna programmazione web. Oggi sembra piuttosto insolito, ma mi chiedo se sia solo il rapporto segnale/rumore di cui sento parlare ogni giorno, più che uno specchio del settore.

Sì, partecipare a Exercism mi ha permesso di sbirciare un po' in come vive «l'altra metà» del settore informatico. Ho imparato molto sullo sviluppo guidato dai test (TDD), su come muovermi in GitHub e su come lavorare a un progetto open source. Molto di quello che ho imparato ha migliorato la qualità del lavoro che faccio.

È davvero bello sentirlo. Una delle cose che amo di più di Exercism è proprio quel clima da «come vive l'altra metà del mondo»: ti accorgi di tutti i tuoi punti ciechi e scopri cose di cui non immaginavi nemmeno l'esistenza. Immagino che essere maintainer di un track abbia aumentato ancora di più questo apprendimento?

Direi proprio di sì. Scrivo più test di prima. Non è sempre TDD in senso stretto, a volte i test vengono dopo invece che prima. Però ha influenzato il modo in cui strutturo il codice: tolgo le dipendenze superflue per rendere più facile testare.

Passo molto tempo a rivedere issue e PR nel repository problem-specifications, dove definiamo gli esercizi di Exercism in modo indipendente dal linguaggio. Ho imparato molto dalle discussioni. A volte una modifica proposta sembra semplice in superficie, ma la conversazione che ne segue fa emergere dei problemi. Ho sviluppato più pazienza. Mi ha insegnato a cercare altre angolazioni possibili ai problemi tecnici sul lavoro.

Ho anche imparato di più sul mentoring, in particolare l'importanza di conoscere il perché che sta alla base, e non solo il come. Lavoro con una manciata di altri programmatori. Anche se sono più giovane della maggior parte di loro, sono in azienda da più tempo, e spesso riesco a indicare un approccio più efficiente per sequenziare il funzionamento di una macchina, oppure a spiegare perché qualcosa va fatto in un modo particolare.

Oltre a Exercism, sei anche un MVP Delphi, niente male! Come è successo? Fai parte di una community Delphi attiva?

Durante le fasi iniziali della creazione del track Delphi, mi sono messo in contatto con il signor Jim McKeeth di Embarcadero per vedere se potevamo ottenere una licenza open source per Delphi. Ci avrebbe permesso di usare Delphi per sviluppare nuovi esercizi e di far contribuire le persone tramite pull request. Nel corso della nostra corrispondenza, Jim mi ha invitato a entrare nel Programma MVP di Embarcadero.

Delphi Praxis è una community online che conosco bene. Su Google+ c'è molto traffico, ma ormai è in declino, quindi dobbiamo andare altrove.

Hai creato delle app open source in Delphi che gli altri possano dare un'occhiata?

Certo! L'installer Windows della CLI di Exercism è open source ed è scritto interamente in Delphi. Determina automaticamente la versione corretta (32/64 bit) della CLI di Exercism che serve allo studente, poi scarica la CLI, la estrae e la mette al posto giusto. L'installer è stato scaricato 15.000 volte, e ne sono piuttosto orgoglioso!

Un risultato fantastico! Da persona che non fa molta (se non nessuna) programmazione per internet, quali difficoltà hai incontrato creando l'installer in Delphi?

L'installer era stato scritto inizialmente in C#. Era obsoleto, e ho deciso di vedere se riuscivo a migliorarlo. Non avevo mai provato a fare una cosa del genere, ma sapevo che Delphi aveva gli strumenti per portare a termine il lavoro. Ho iniziato studiando il codice C# originale per capire quale sequenza di eventi avvenisse dietro le quinte, e poi provare a svolgere gli stessi compiti in Delphi. Ho trovato del codice di esempio sul sito della documentazione di Embarcadero che mi ha aiutato a capire come collegare correttamente i componenti disponibili per creare un client REST. Ho anche scoperto una comoda utility fornita con Delphi, chiamata REST Debugger. Mi permetteva di inserire e quindi testare le varie chiamate HTTP necessarie per far funzionare l'installer. Una volta che funzionano, il debugger crea delle copie dei componenti necessari, così posso incollarle nel codice.

Per chi vuole entrare più a fondo in Exercism, magari per chi spera di diventare maintainer, ci puoi raccontare qual è stato il tuo percorso?

Faccio parte di un gruppo MeetUp locale chiamato Akron Code Club. Più o meno una volta al mese ci incontriamo e di solito ci mettiamo in coppia per lavorare a un code kata proposto al gruppo. Al meetup di agosto 2016 abbiamo iniziato a lavorare sugli esercizi forniti da Exercism. Usando Exercism e alcuni degli altri siti didattici, ho pensato che sarebbe stato bello se più siti di programmazione online offrissero Delphi o Pascal come opzione. Dopo aver dato un'occhiata al sito di Exercism e ai repository GitHub di Exercism, ho scoperto che Exercism è sempre interessato ad aggiungere nuovi track di linguaggio. Non ero del tutto sicuro di come contattare al meglio Katrina. Credo di aver usato Gitter per mettermi in contatto con lei nell'agosto del '16) proponendo l'aggiunta di Delphi. Circa due mesi dopo ho ricevuto una risposta di scuse: è stato allora che ho capito che Katrina non usa Gitter. Comunque, si chiedeva se fossi ancora interessato a lavorare all'aggiunta di un track Delphi Pascal e, in caso affermativo, avrebbe dato il via alle cose.

Ora c'è un repository che puoi usare per richiedere un nuovo track di linguaggio, e puoi sempre aprire delle issue nel repository exercism/exercism per metterti in contatto con i maintainer del progetto.

Ottimo. Grazie per aver chiacchierato con me e per tutto il tuo lavoro su Exercism!

È stato un piacere! È stato divertente. Mi piace partecipare e fare quello che posso per Exercism. Si impara facendo!

30 gennaio 2019 · Ti è stato utile?