Ex sviluppatore Apple mostra nuovi e interessanti concetti per chi sviluppa software.
|
Brian Victor è stato “Human Interface Inventor” per Apple, azienda per la quale ha lavorato dal 2007 al 2010, occupandosi a quanto sembra, prevalentemente di iOS. Nel corso di una presentazione di un’ora alla CUSEC (Canadian University Software Engineering Conference), ha illustrato alcuni concetti interessanti per chi ha sviluppato/sviluppa software. Per Victor molti programmatori costruiscono codice “alla cieca”: scrivono sorgente immaginando l’esito nella loro testa, lo compilano, vedono i risultati e se questi non sono quelli desiderati, si ricomincia da capo, senza sfruttare meccanismi che consentono di visualizzare immediatamente i cambiamenti apportati, tutto sommato non molto diversamente da quanto si faceva ai tempi delle schede perforate. Questa consuetudine, benché valida, non tiene conto dei bug che potrebbero essere causati dai cambiamenti o, viceversa, impedisce di tenere conto di modifiche che potrebbero portare benefici.
Nel corso della lezione, Victor ha mostrato un interessante strumento che permette di visualizzare concretamente le correzioni a codice JavaScript, mostrando subito cosa accade cambiando variabili, costanti, eliminando/modificando procedure e funzioni e altri parametri con strumenti visuali (slide e cursori) di semplice utilizzo. Nel primo esempio è mostrato un software per generare alberi e paesaggi vettoriali: senza modificare linee di codice a mano ma con semplici strumenti richiamabili con il mouse è possibile cambiare la dimensioni dei rami, il loro orientamento, la dimensione del tronco, la posizione e il colore del sole, del cielo, dello sfondo utilizzato, ecc. Una lente d’ingrandimento permette di navigare la scena e individuare il codice responsabile della riproduzione sottostante. In un altro esempio è mostrato un gioco arcade a piattaforme stile Mario Bros, mostrando quanto sia semplice per lo sviluppatore ridurre la velocità degli sprite visualizzati, gestire i metodi di attacco e salto, aggiungere piattaforme, modificare insomma vari aspetti “meccanici” senza ricompilare il codice ma visualizzando all’istante i possibili risultati.
Per Victor è insensato che molti programmatori si debbano mettere a modificare codice a mano quando si può avere uno strumento che permette di modificare tutto automaticamente. Con il metodo classico solo chi ha più immaginazione, riesce a ottenere i risultati migliori. Victor prosegue con le sue dimostrazioni facendo l’esempio di una semplice ricerca di tipo binario, mostrando come la visualizzazione diretta dei risultati, permetta di rendersi conto immediatamente dei possibili scenari, semplificando la scrittura della funzione ed evitando errori. Il principio utilizzato può essere utile in molteplici situazioni: si prosegue, mostrando la simulazione di un circuito elettronico e di come sia possibile verificare “al volo” l’effettivo funzionamento dello stesso (anche in questo caso è possibile modificare vari parametri e visualizzare le possibili conseguenze alimentando il circuito).
Altro esempio interessante è un software iPad per la creazione di animazioni che evita le complessità insite in software come Flash (l’uso dei keyframe per esempio) che permette di creare animazioni usando semplicemente le dita e il drag&drop. Ancora una volta l’approccio è diretto, con il feedback visivo in tempo reale, senza ricorrere a un software che lavora sul paradigma della linea temporale e che solo in seguito permette di capire se il risultato è quello desiderato o no.
La filosofia di Victor ricorda un po’ quella seguito da Lawrence Gordon Tesler, sviluppatore che negli anni ’80 ricoprì vari ruoli in Apple e inventore del copia, taglia e incolla: comandi semplici che hanno rivoluzionato il modo di concepire alcuni software e che adesso appaiono banali e scontati ma che nessuno prima aveva immaginato. L’approccio di Victor, il suo modo di approcciarsi e pensare ai problemi non è dissimile da quello usato dai pionieri e grandi visionari del mondo dell’informatica.
[vimeo]http://vimeo.com/36579366[/vimeo]
Bret Victor – Inventing on Principle from CUSEC on Vimeo.
Via | Macity