Luca Annunziata

La sfida cross-platform di Microsoft ed Erich Gamma

Il distinguished engineer di Microsoft racconta a Punto Informatico la strada che ha condotto alla nascita di Visual Studio Code. In un percorso parallelo a quello del cambiamento di tutta l'azienda

Roma - Nel corso di Future Decoded 2015, evento organizzato da Microsoft a Roma che ha visto la partecipazione del CEO della Corporation Satya Nadella, sul palco dell'Auditorium della Capitale sono state messe in mostra tutte le tecnologie che costituiscono il fiore all'occhiello dell'azienda di Redmond. Tutte, quasi nessuna esclusa, hanno un fattore comune che fino a pochi anni fa sarebbe stato impossibile da prevedere: devono qualcosa all'opensource, e dimostrano nei fatti qual è il nuovo approccio che l'azienda sta seguendo nel suo nuovo corso.

Il merito di questa spinta rinnovata all'innovazione e della ritrovata popolarità tra gli addetti ai lavori è senza dubbio di Nadella: ma sarebbe ingenuo ignorare che nel corso degli ultimi anni, prima che Ballmer cedesse lo scettro al suo successore, Microsoft ha condotto una campagna di reclutamento che ha portato tra le sue fila alcuni nomi importanti che hanno contribuito a cambiare la sua mentalità. Tra questi c'è Erich Gamma, noto a molti come uno dei componenti della celebre gang of four: assieme a Helm, Johnson e Vlissides è stato autore del libro Design Patterns - Elementi per il riuso di software ad oggetti che ha reso tanto popolare il nuovo approccio alla programmazione affermatosi a partire dalla seconda metà degli anni '90 del secolo scorso.

Strappato a IBM, dove aveva contribuito in modo decisivo allo sviluppo di Eclipse, oggi Gamma continua il suo lavoro assieme al suo team a Zurigo per creare uno strumento per gli sviluppatori anch'esso inedito nella storia di Microsoft: Visual Studio Code è un editor cross-piattaforma compatibile con Git e con un supporto esteso a oltre una trentina di linguaggi, alcuni dei quali molto distanti dallo storico framework adottato a Redmond. Gamma ha accettato di raccontare a Punto Informatico questa trasformazione di Microsoft che sta vivendo in prima persona, egli stesso contribuendo al cambio di mentalità e approccio che l'azienda di Windows e Office sta affrontando in questi mesi.
La prima domanda ovviamente ruota attorno alla partenza da IBM, al saluto al progetto Eclipse cui tanto ha contribuito e l'avvicinamento ai nuovi strumenti legati al Web: "Č la nuova sfida - racconta - Quello che abbiamo fatto negli anni con Java è stato molto bello, ma se si guarda al JavaScript oggi si vede una possibilità di far girare il proprio codice su ogni browser di qualunque computer: un'opportunità incredibile". Per questo, dopo qualche iniziale titubanza ci confessa, ha deciso di accettare l'offerta di Microsoft: "Ci ho messo un paio di mesi a decidermi, ma alla fine mi sono convinto a salire a bordo: innovare la tecnologia Web è la via migliore per proseguire nella tradizione di innovazione di Java. In passato se pensavi alla portabilità pensavi a Java, oggi pensi a JavaScript".

L'obiezione che muoviamo è ovviamente che in realtà le promesse e le premesse di Java non sono mai state realmente mantenute: la portabilità senza necessità di rivedere il codice si è rivelata una chimera. "Sì, ma ci siamo andati vicini - ribatte Gamma - e con Eclipse abbiamo messo a disposizione strumenti molto utili in questo senso. Con Javascript però puoi arrivare facilmente a device come gli smartphone, ai browser, e sfruttare davvero questa tecnologia per far eseguire applicazioni di livello desktop". Restano da convincere solo gli scettici che dubitano della effettiva portata di JavaScript: "Inizialmente non era stato concepito per questo scopo, ma oggi è stato fatto un grande progresso: ci sono voluti più di 5 anni di lavoro, con tutte le standardizzazioni, ma oggi abbiamo anche strumenti più potenti come TypeScript che consentono di lavorare allo sviluppo di applicazioni di ampio respiro".

Č il caso del già citato Visual Studio Code: l'editor è stato scritto in TypeScript, linguaggio opensource creato da Microsoft che il team di Gamma ha adottato sin dagli albori. TypeScript, al contrario di quanto accaduto in altre occasioni, non è un dialetto costruito ad hoc da Redmond per i suoi scopi: è un linguaggio con caratteristiche superiori a quelle dell'originale, ma che una volta compilato genera un codice JavaScript compatibile al 100 per cento con lo standard. "Programmare in JavaScript, dice uno dei miei colleghi, è come scolpire codice nella roccia: non puoi cambiare quanto hai realizzato ed è facile commettere errori. TypeScript offre una soluzione al problema di scalabilità di JavaScript, offre maggiore struttura e strumenti per modificare rapidamente il codice o effettuare dei test". Senza problemi di tecnologia proprietaria o lock-in, aggiunge, visto che è opensource.


La questione successiva che scegliamo di trattare nel corso della nostra conversazione è il nuovo slogan con cui Nadella motiva le sue truppe: mobile first, cloud first. Chiediamo a Gamma come vede questo cambiamento nelle priorità di Microsoft: "C'è una differenza tra quello che sta avvenendo lato server e lato client sul fronte dello sviluppo, ma ci sono dei fattori comuni che stanno arricchendo entrambe le esperienze: penso a l'esperienza node.js, a quella ASP, che hanno fornito molti spunti per quello che deve accadere oggi e nel futuro prossimo. E poi questa evoluzione dei linguaggi e di alcuni strumenti fa sì che quello che sviluppi per i client possa girare anche sui server, ed è una prospettiva esaltante per uno sviluppatore".

Gamma spiega a Punto Informatico come stia cambiando il modo stesso di concepire la scritture del codice da parte degli sviluppatori: non è necessario sempre imparare un linguaggio nuovo per affrontare un nuovo tipo di applicazioni, a volte si può puntare su tecnologie ed esperienza che si hanno già nel proprio portfolio e riproporre gli stessi approcci e le stesse soluzioni in diversi ambiti. "Conosci già certi strumenti, ti sono familiari, sei in grado di essere produttivo. Quello che c'è di molto buono è la possibilità di scelta: ci sono più opzioni aperte oggi per uno sviluppatore, e a seconda del tipo di compito che mi aspetta posso scegliere lo strumento migliore".

Bisogna anche tenere conto dell'esperienza e delle competenze delle nuove generazioni, dice Gamma: "Pensiamo ai cosiddetti millennial: sono sviluppatori che hanno iniziato proprio con JavaScript, e possono puntare su questi strumenti per lavorare sia lato client che lato server. Altri sviluppatori con più esperienza possono preferire c#, asp.net: noi dobbiamo offrire agli sviluppatori su tutte le piattaforme un'esperienza comune, e JavaScript ad esempio ha dei vantaggi come la mancanza di compilazione e la possibilità di eseguire codice direttamente nel browser. Inoltre - aggiunge - dobbiamo puntare a offrire un'esperienza simile anche ad altri linguaggi ed è in questa direzione che ci stiamo muovendo".
Notizie collegate
35 Commenti alla Notizia La sfida cross-platform di Microsoft ed Erich Gamma
Ordina
  • E' sempre la stessa storia:

    Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers Developers...

    (monkey dance, la preferita dai developers scarsi)

    ...in salsa clopen ricoperta da una croccante cialda di mer*a chiamata JS.

    Da quando c' è il padella la strategia non solo non è cambiata, ma è anche peggiorata.
    non+autenticato
  • imho invece di prendere per i fondelli con javascript e compagnia, avrebbero dovuto portare .net su android/ios, o magari comprare Xamarin e renderlo gratuito per lo sviluppo multipiattaforma

    ad oggi non esiste ancora una vera soluzione multipiattaforma per lo sviluppo mobile, che sia completa, affidabile al 100% e non costi uno sproposito

    forse ( e dico forse ) swift, che diventerà open tra pochi mesi, potrà fornire una soluzione multipiattaforma

    fino ad allora o ci si affida ad unity et similia, oppure ( per le app generaliste ) si può optare per ruby con i vari ruboto e rubymotion
    non+autenticato
  • Mi dispiace (e dico sul serio perché la cosa fa schifo anche a me) ma la risposta multipiattaforma è JavaScript (magari accompagnato da un framework e da Cordova). Bisogna purtroppo farsene una ragione.

    Quindi ben venga TypeScript. Almeno cerca di mettere ordine nella porcheria.
  • - Scritto da: Zucca Vuota
    > Mi dispiace (e dico sul serio perché la cosa fa
    > schifo anche a me) ma la risposta
    > multipiattaforma è JavaScript (magari
    > accompagnato da un framework e da Cordova).
    > Bisogna purtroppo farsene una ragione.

    Opinione tua, opinione di un fanboy di microloft.

    >
    >
    > Quindi ben venga TypeScript. Almeno cerca di
    > mettere ordine nella
    > porcheria.

    Mettere ordine vuol dire smetterla con l' esecuzione di spazzatura lato client, tutto il resto è solo il blabla di markettari alla ricerca di soldi da spillare con ogni mezzo.
    non+autenticato
  • - Scritto da: Zucchina Bollita

    > Opinione tua, opinione di un fanboy di microloft.

    Peccato che Microsoft non sia né l'unica né la prima.

    > Mettere ordine vuol dire smetterla con l'
    > esecuzione di spazzatura lato client, tutto il
    > resto è solo il blabla di markettari alla ricerca
    > di soldi da spillare con ogni
    > mezzo.

    Vorrei sapere dove si spillano soldi visto che JavaScript ce l'hanno tutti, TypeScript è open e gratuito, l'ambiente di Gamma idem.
  • Quindi tutto lo sforzo fatto per eseguire codice lato client è solo un esercizio di stile? Sicuro che non ci guadagnano con JS?
    non+autenticato
  • - Scritto da: Zucchina Bollita

    > Mettere ordine vuol dire smetterla con l'
    > esecuzione di spazzatura lato client

    Pretendi che i siti nel 2015 non facciano uso di JS?
    Hai anche qualche idea per la pace nel mondo?
    non+autenticato
  • - Scritto da: tre punti e un leso
    > - Scritto da: Zucchina Bollita
    >
    > > Mettere ordine vuol dire smetterla con l'
    > > esecuzione di spazzatura lato client
    >
    > Pretendi che i siti nel 2015 non facciano uso di
    > JS?

    E' vero, non si può pretendere che un estraneo eviti di fare il padrone in casa TUA.

    >
    > Hai anche qualche idea per la pace nel mondo?

    Ma non ci penso minimamente, sei libero di farti incool8 come e quando vuoi se ci tieni tanto.
    non+autenticato
  • - Scritto da: Zucchina Bollita

    > > Pretendi che i siti nel 2015 non facciano uso di
    > > JS?
    >
    > E' vero, non si può pretendere che un estraneo
    > eviti di fare il padrone in casa TUA.


    A casa mia disabilito JS quando voglio.


    > > Hai anche qualche idea per la pace nel mondo?
    >
    > Ma non ci penso minimamente

    strano perché la probabilità di successo è la stessa dell'idea GENIALE che hai avuto sopra
    non+autenticato
  • - Scritto da: Zucchina al forno
    > - Scritto da: Zucchina Bollita
    >
    > > > Pretendi che i siti nel 2015 non
    > facciano uso
    > di
    > > > JS?
    > >
    > > E' vero, non si può pretendere che un
    > estraneo
    > > eviti di fare il padrone in casa TUA.
    >
    >
    > A casa mia disabilito JS quando voglio.

    A casa mia è disabilitato di default, il contrario è da ingenuotti...

    >
    >
    > > > Hai anche qualche idea per la pace nel
    > mondo?
    > >
    > > Ma non ci penso minimamente
    >
    > strano perché la probabilità di successo è la
    > stessa dell'idea GENIALE che hai avuto
    > sopra

    Blabla.
    non+autenticato
  • - Scritto da: Zucchina Bruciata
    > - Scritto da: Zucchina al forno
    > > - Scritto da: Zucchina Bollita

    > > > > Pretendi che i siti nel 2015
    > > > > non facciano uso di JS?

    > > > E' vero, non si può pretendere che un
    > > > estraneo eviti di fare il padrone in casa
    > > > TUA.

    > > A casa mia disabilito JS quando voglio.

    > A casa mia è disabilitato di default, il
    > contrario è da ingenuotti...

    Ma se tutti cel'habbiamo disabilitato allora che se ne fanno di JS i siti nel 2015 ?
    non+autenticato
  • ingegneri coi controcazzi come gamma e soci,
    tanti soldi disponibili e euna visione a lungo termine perseguita con pazienza, lascimo pure i pinguini in cantina a ricompilare il kernel per la millesima a volta a noi la
    WORLD DOMINATION
    non+autenticato
  • il problema non saranno i pinguini, ma i winari!
    Da quando esiste il mondo le mura dei castelli si abbattono dall'interno. Per abbattere qualcosa la devi conoscere bene. Occhiolino
    non+autenticato
  • è fatto per visualizzare. Perché il web è pieno di criminali e la tua libertà di eseguire quello che ti pare corrisponde alla giungla di virus che stiamo vivendo.

    Ormai il veicolo per i malware è sempre una pagina da aprire:
    Se non è l'sms con il link malevolo è la mail contraffatta con il link malevolo.
    Se non è il pdf con il link malevolo è la pubblicità su un sito che punta a un link malevolo.

    Sempre lì andiamo a parare: sempre a quella idea del ca**o di eseguire codice in un browser. La vogliamo finire? Vogliamo togliere qualsiasi possibilità di eseguire alcunché a tutti?

    Sarà possibile un giorno poter aprire una pagina senza dover avere anche l'antivirus?
    non+autenticato
  • - Scritto da: xx tt
    > è fatto per visualizzare. Perché il web è pieno
    > di criminali e la tua libertà di eseguire quello
    > che ti pare corrisponde alla giungla di virus che
    > stiamo
    > vivendo.
    >
    > Ormai il veicolo per i malware è sempre una
    > pagina da
    > aprire:
    > Se non è l'sms con il link malevolo è la mail
    > contraffatta con il link malevolo.
    >
    > Se non è il pdf con il link malevolo è la
    > pubblicità su un sito che punta a un link
    > malevolo.
    >
    > Sempre lì andiamo a parare: sempre a quella idea
    > del ca**o di eseguire codice in un browser. La
    > vogliamo finire? Vogliamo togliere qualsiasi
    > possibilità di eseguire alcunché a
    > tutti?
    >
    > Sarà possibile un giorno poter aprire una pagina
    > senza dover avere anche
    > l'antivirus?

    Mega-quotone-galattico!
    non+autenticato
  • si basta che ti installi una sandbox
    non+autenticato
  • > si basta che ti installi una sandbox

    Questo deve avvenire dopo che ho scelto.

    Prima il browser di default legge le pagine passivamente, così com'è la sua natura fare.
    Quando e soprattutto SE glielo chiedo passa ad eseguire su una sandbox SUA.

    Hai presente la "finestra di navigazione anonima" del firefox?
    Ecco: una "finestra di navigazione con esecuzione", da richiamare appositamente.
    Con tanto di domanda se sono imbec....ehm...sicuro.
    non+autenticato
  • - Scritto da: martin cllistere
    > si basta che ti installi una sandbox

    dalla quale si "evade" tranquillamente.
    Per essere moderatamente sicuri, serve una macchina virtuale con dentro Sistema Operativo e navigatore internet.
    La macchina vera la usi per lavorare il locale, quella virtuale per navigare in internet.
    non+autenticato
  • - Scritto da: xx tt
    > è fatto per visualizzare. Perché il web è pieno
    > di criminali e la tua libertà di eseguire quello
    > che ti pare corrisponde alla giungla di virus che
    > stiamo
    > vivendo.
    >
    > Ormai il veicolo per i malware è sempre una
    > pagina da
    > aprire:
    > Se non è l'sms con il link malevolo è la mail
    > contraffatta con il link malevolo.
    >
    > Se non è il pdf con il link malevolo è la
    > pubblicità su un sito che punta a un link
    > malevolo.
    >
    > Sempre lì andiamo a parare: sempre a quella idea
    > del ca**o di eseguire codice in un browser. La
    > vogliamo finire? Vogliamo togliere qualsiasi
    > possibilità di eseguire alcunché a
    > tutti?
    >
    > Sarà possibile un giorno poter aprire una pagina
    > senza dover avere anche
    > l'antivirus?

    A quanto leggo, no! Almeno finché in giro ci sono persone che la pensano come il gamma.
    Anzi a dire il vero, può solo che peggiorare la situazione. Ficoso
    non+autenticato
  • > A quanto leggo, no! Almeno finché in giro ci sono
    > persone che la pensano come il
    > gamma.
    > Anzi a dire il vero, può solo che peggiorare la
    > situazione.
    > Ficoso

    Allora speriamo che qualcuno lanci una nuova moda: l'iBrowser.

    "Un innovativo software nato per essere leggero che fa della security by passivity il suo pilastro. Il nuovo attesissimo browser ci libererà dai link malevoli con una coraggiosa scelta di design.

    Passivo = sicuro di default, ecco il nuovo motto a Cupertino"
    non+autenticato
  • davvero un linguaggio interessante, megagalattico, compilando non viene generato codice binario ma codice che deve essere a sua volta interpretato. Mah...
    non+autenticato
  • - Scritto da: nessuno
    > davvero un linguaggio interessante,
    > megagalattico, compilando non viene generato
    > codice binario ma codice che deve essere a sua
    > volta interpretato.
    > Mah...

    Caspita... mai usato ma a sentirne il principio, accidenti questa sì che è...



    una monnezza! Rotola dal ridere
    non+autenticato
  • - Scritto da: pentola

    > Caspita... mai usato ma a sentirne il principio,
    > accidenti questa sì che è...
    > una monnezza! Rotola dal ridere

    Perchè? Spiega meglio il tuo pensiero.
  • - Scritto da: Zucca Vuota
    > - Scritto da: pentola
    >
    > > Caspita... mai usato ma a sentirne il
    > principio,
    > > accidenti questa sì che è...
    > > una monnezza! Rotola dal ridere
    >
    > Perchè? Spiega meglio il tuo pensiero.

    No!
    non+autenticato
  • Un altro che non sa di che parla.
  • - Scritto da: nessuno
    > davvero un linguaggio interessante,
    > megagalattico, compilando non viene generato
    > codice binario ma codice che deve essere a sua
    > volta interpretato.
    > Mah...

    Vedi il JavaScript come le istruzioni del tuo processore. In pratica un processore virtuale che gira ovunque. TypeScript compila in JavaScript e produce un codice per tutti questi processori virtuali.

    Quello che l'articolo non evidenzia è il fatto che il codice JavaScript è comunque codice TypeScript ovvero può essere inserito nel codice TypeScript senza problemi. In altri termini si può vedere TypeScript come una sorta di estensione di JavaScript. TypeScript cerca di proporre anche molte delle evoluzioni che stanno incubando per le nuove versioni standard di JavaScript (ECMAScript). Quindi prima o poi troveremo queste cose standard nei browser.

    TypeScript non è usato solo da Microsoft ma anche da gruppi esterni per vari progetti (ad esempio Angular2, Dojo Toolkit).
  • - Scritto da: nessuno
    > davvero un linguaggio interessante,
    > megagalattico, compilando non viene generato
    > codice binario ma codice che deve essere a sua
    > volta interpretato.
    > Mah...

    genio, deve generare necessariamente Javascript visto che i browser interpretano quello e non i binari.
    Lo scopo è usare, in fase di sviluppo, un linguaggio che sia scalabile a progetti complessi, caratteristica per cui Javascript non è nato.

    Per inciso Google internamente fa lo stesso da un decennio: usa Java per lo sviluppo lato client e poi un loro strumento si occupa di convertire in Javascript (ed offuscare).
    non+autenticato
  • - Scritto da: Fessologo

    > Per inciso Google internamente fa lo stesso da un
    > decennio: usa Java per lo sviluppo lato client e
    > poi un loro strumento si occupa di convertire in
    > Javascript (ed
    > offuscare).

    Ma che cazzo dici? LOL! Java convertito in JavaScript, ma che troiate vai raccontando?
    non+autenticato
  • - Scritto da: ...
    > - Scritto da: Fessologo

    > Ma che cazzo dici? LOL! Java convertito in
    > JavaScript, ma che troiate vai
    > raccontando?

    smerdata in arrivo:
    https://support.google.com/code/topic/10034?hl=en


    "Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications easy. With GWT, you can develop and debug AJAX applications in the Java language using the Java development tools of your choice. When you deploy your application to production, the GWT compiler translates your Java application to browser-compliant JavaScript and HTML ."


    non mangiare troppa merda che ti fa male!
    non+autenticato
  • lo sai chi ha inventato il linguaggio typescript?
    un certo Aders Hejlsberg, forse a te non dice niente
    ma questo genio ha prima creato il compilatore TurboPascal per la Borland e poi in microsoft ha inventato il typescript e pure il linguaggio c#..
    al suo cospetto possiamo solo inginocchiarci sui ceci caro mio ( e mi ci metto pure io dentro)
    eheh caro miio c'e chi puo fare e quindi fa , e chi non puo??
    parla, parla parla e scrive scrive scrive...
    non+autenticato
  • javascript non viene più interpretato da un bel po' di anni
    (almeno nei maggiori browser). tutti usano un compilatore JIT
    non+autenticato