Upload
massimo-bonanni
View
1.462
Download
0
Embed Size (px)
DESCRIPTION
Breve storia dell'evoluzione degli strumenti di sviluppo di casa Microsoft. Slides della sessione tenuta alla conferenza Comunicando 2011
Citation preview
Evoluzione degli strumenti di sviluppo
Microsoft
Massimo BonanniSenior Developer @ THAOS s.r.l.
[email protected] http://
codetailor.blogspot.com
http://twitter.com/massimobonanni
Agenda
• Gli IDE questi sconosciuti• All’inizio era BASIC!• Anni ‘70-’80: compilatori e poco più• Anni ’90: frammentazione degli strumenti di
sviluppo• Ultimi 10 anni: l’ecosistema .NET• Conclusioni
IDE, questo sconosciuto
• IDE è l’acronimo di Integrated Development Environment;• Un insieme di applicazioni (di solito abbastanza complesso)
a supporto di chi produce software;• Generalmente consiste di:
– Un editor di codice sorgente– Un compilatore e/o interprete– Un debugger – Un tool di building– Vari tools a supporto
IDE, questo sconosciuto
• Gli IDE possono essere multi-linguaggio o singolo linguaggio;
• Alcuni IDE sono espandibili tramite plug-in o estensioni;
• Negli ultimi anni gli IDE sono diventati parte di ecosistemi anche molto complessi che contemplano anche gestione del ciclo di vita delle applicazioni;
IDE, a cosa serve
Lo scopo di un IDE non è banalmente quello di permettere allo sviluppatore di scrivere codice ma dovrebbe permettere allo stesso di aumentare la propria produttività in tutti le fasi della realizzazione di un sistema software.
IDE, a cosa serve
In sintesi:
“At every juncture, advanced tools have been the key to a new wave of applications, and each
wave of applications has been key to driving computing to the next level.”
Bill Gates
La storia di MicrosoftPossiamo suddividere l’evoluzione degli strumenti di sviluppo in tre fasi:
– Anni ‘70-’80 : poco più che compilatori a riga di comando ed editor di base;
– Anni ’90 : primi IDE a finestre (grazie all’arrivo di Windows);
– Dal 2000 ad oggi: l’ambiente di sviluppo si trasforma in una vera piattaforma di sviluppo. Arriva l’ambiente di sviluppo multi-linguaggio: Visual Studio .NET
Gli anni ‘70-’80Gli anni ‘70 sono caratterizzati da interpreti a riga di comando con pochissime funzionalità e debugger minimali.
All’inizio era BASIC
All’inizio del 1975 nasce Microsoft ed il primo prodotto rilasciato è Altair BASIC, un compilatore per l’Altair 8800.
Una «cosa» molto diversa da quello che intendiamo noi come compilatore.
BASIC AltairL'interprete finito occupava meno di 4 kB di memoria e fu riversato su nastro perforato, un tipo di supporto che l'Altair 8800 poteva leggere.Il programma di boot dell’interprete fu scritto da Paul Allen sul volo per Albuquerque per la consegna dell’interprete stesso
Microsoft BASICA seguito dell’Altair BASIC, l’interprete si è evoluto mantenendo, però, alcune caratteristiche distintive:
• Utilizzo di stringhe allocate dinamicamente che memorizzavano la loro grandezza, una caratteristica assente in C o in C++ fino alla creazione della STL negli anni novanta;
• Molte di queste operazioni sulle stringhe sono ancora valide nel framework .NET;
• Supportava i nomi lunghi per le variabili. Tuttavia, la tabella dei simboli da utilizzare al momento dell'esecuzione del programma utilizzava una ricerca lineare: per questo motivo un programma che utilizzava molte variabili distinte veniva eseguito dall'interprete molto più lentamente di un altro che utilizzava magari un unico array per tutte le sue variabili.
L’era del DOS : GW-BasicGW-Basic è stato il primo interprete BASIC dell’era DOS.Interprete a linea di comando.Il nome GW ha diverse spiegazioni:
– Graphics and Windows BASIC;– GW sarebbero le iniziali di Greg
Whitten, dipendente Microsoft, che contribuì agli standard BASIC;
– Gee Whiz ("diamine", "perbacco") per il grande numero di istruzioni grafiche in 2D contenute nel linguaggio
QuickBASIC & QBASIC
Basato su GW-BASIC ma aggiunge tipi definiti dall'utente, strutture avanzate, una grafica migliore, un supporto al disco avanzato e un compilatore.Una versione ridotta del QuickBASIC 4.5, chiamata QBasic, era incluso nel MS-DOS 5 e successive, sostituendo il GW-BASIC. QBasic era limitato al solo interprete, mancava di alcune funzioni, poteva eseguire programmi fino ad una certa dimensione e non aveva il supporto ai moduli.
Microsoft C• Microsoft C 1.0, basato sul Lattice C (primo compilatore C di IBM per DOS), è
stato il primo prodotto Microsoft sul C prodotto nel 1983;• C 2.0 aggiunto il supporto a grandi modelli di dati;• C 3.0 prima versione sviluppata all’interno di Microsoft e pubblicato nel 1985.
Usato in Microsoft per lo sviluppo di Windows;• C 4.0 aggiunto il debugger CodeView (utilizzato successivamente anche in
Visual Basic per DOS);• C 5.0 aggiunti il supporto per strutture dati superiori ai 64K, Microsoft Fortran
e il primo compilatore a 32 bit per 80386;• C 6.0 rilasciato nel 1989, contiene un browser per il codice sorgente, un nuovo
debugger e un front-end opzionale in C++.
Negli anni 90 diventerà Visual C++.
QuickCQuickC nasce con lo scopo di competere con Turbo C di Borland verso la fine degli anni ‘80.Compatibile con Microsoft C confluirà anche lui in Visual C++.
Gli anni ‘90Negli anni ‘90 arrivano i primi veri IDE. L’ottica MS cambia con una visione a più lungo respiro.Nasce Visual Studio.
FoxPro• FoxPro è un linguaggio di programmazione
procedurale orientato alla gestione dei dati relazionali.
• FoxPro è un DBMS (Database Management System) ma non un RDBMS (Relational Database Management System) non avendo funzionalità transazionali.
• Originariamente è stato pubblicato dalla Fox Software (attorno al 1984) per DOS, Windows, Apple Macintosh e UNIX.
• Nel 1992 la Fox è stata assorbita dalla Microsoft.
Visual FoxPro• La versione 3.0 di FoxPro è la prima con un
interfaccia visual e, per questo prende il nome di Visual FoxPro.
• A differenza della maggior parte dei sistemi di gestione di database, Visual FoxPro è un linguaggio di programmazione completo, dinamico che non richiede l'uso di un ambiente di programmazione supplementare (ad esempio Management Studio per SQL Server)
• Può essere utilizzato per scrivere applicazioni non solo tradizionali "fat client", ma anche middleware e applicazioni web
Visual Basic
• E’ un linguaggio di terza generazione di tipo event-driven molto semplice da usare;
• Deriva dal Basic degli anni precedenti;
• Nasce con lo scopo di permettere uno sviluppo RAD (Rapid Application Development) di applicazioni a finestra;
Visual BasicCaratteristiche:
– Facilità d'uso (non utilizza formalità di punteggiatura tipica di quasi tutti gli altri linguaggi);
– il suo ambiente di lavoro RAD permette di realizzare in breve tempo interfacce GUI anche complesse;
– pratico accesso alle basi dati;– la creazione di controlli ActiveX con il linguaggio stesso (anche se nelle prime versioni
si doveva usare il linguaggio C).
Tramite l'integrazione dei controlli VBX (nelle versioni a 16 bit), dei controlli OCX (presenti nelle versioni a 32 bit) e dei collegamenti OLE presenti nell'ambiente di lavoro o realizzati da altri programmatori, è possibile aggiungere potenzialità al linguaggio, aggiungendo nei propri progetti nuove funzioni o ampliando funzioni già esistenti.
Visual BasicPoichè Visual Basic è stato progettato per essere un linguaggio semplice, molte caratteristiche che sono presenti in linguaggi come C++ non sono disponibili.
Alcune funzionalità come la verifica del "cast" dei dati e la dichiarazione obbligatoria delle variabili (anche se è possibile rendere questa dichiarazione obbligatoria) sono disabilitate.
Questo rende Visual Basic molto semplice da utilizzare, ma i programmi così realizzati possono essere distribuiti con errori nascosti dovuti a questa mancanza di controlli.
Visual BasicMolti critici di Visual Basic spiegano che la sua natura semplice è dannosa nel lungo periodo perchè imparare a programmare in Visual Basic non introduce i programmatori a molte delle tecniche e dei costrutti fondamentali della programmazione. Inoltre la possibilità di disabilitare errori e avvertimenti in fase di compilazione, può rendere difficoltosa la ricerca degli errori stessi.
Molti dei suoi sostenitori insistono, invece, sul fatto che la sua semplice natura è il suo punto di forza, in quanto permette un rapido sviluppo di applicazioni da parte di programmatori esperti e una curva di apprendimento piuttosto breve per i programmatori che provengono da altri linguaggi. Inoltre, le applicazioni Visual Basic possono essere integrate con le basi dati in maniera molto semplice.
Visual BasicVisual Basic è, inoltre, un agglomerato di funzionalità e sintassi diverse con meno consistenza, ma con più tolleranza degli altri moderni linguaggi di programmazione.
Alcune istruzioni come gosub, on error e la dichiarazione del tipo di variabile con l'ultimo carattere del nome (ad esempio miaStringa$ per le stringhe), sono retaggi delle origini del Basic che sono state incluse per mantenere una compatibilità verso il basso del codice.
Il linguaggio continua ad attirare molti apprezzamenti e molte critiche, ma la grande base "storica" di programmatori che lo hanno utilizzato e che basano su di esso la propria produttività fa sì che continui ad avere una grande diffusione.
Visual BasicFunzionalità non supportate:• Programmazione orientata agli oggetti:
– Visual Basic, fino alla versione 4, non supporta la programmazione orientata agli oggetti.– Successivamente con la versione 5 e 6 vi è un supporto limitato alla programmazione orientata
agli oggetti. Non si può per esempio implementare l'ereditarietà degli oggetti.
• Multithreading: non esiste un supporto diretto per la programmazione multithread.
• Puntatori: La gestione dei puntatori è molto più limitata rispetto a molti altri linguaggi.
• Numerici senza segno: I tipi di dati numerici supportati da Visual Basic sono esclusivamente quelli con il segno (da 8 a 32 bit), mentre molti altri linguaggi supportano nativamente i numerici senza segno.
Visual Basic : IDE
• Il nome in codice del progetto Visual Basic era Thunder. I controlli creati dal runtime di VB hanno il nome interno del tipo che inizia con il prefisso Thunder (ad esempio i bottoni, internamente, sono conosciuti come ThunderCommandButton).
• Visual Basic 1.0 (Maggio 1991) fu rilasciato per Windows al Comdex/Windows World trade show in Atlanta, Georgia.
• Il Mainstream Support per Visual Basic 6.0 è terminato il 31 Marzo 2005 mentre il supporto esteso nel Marzo 2008.
Visual C++
• Visual C++ è il successore della serie dei compilatori C e C++: QuickC, C/C++.
• La prima versione è del febbraio 1993.
• Primo IDE a supportare il 32bit fin dalla prima versione.
Visual C++
Visual C++ è l’IDE Microsoft più longevo essendo ancora presente sul mercato nei nuovi Visual Studio (ben 18 anni di vita).
Visual J++
• Visual J++ è l'implementazione di Microsoft di un IDE per il linguaggio di programmazione Java.
• La prima versione è stata rilasciata nel 1996• Creato per la piattaforma Windows, i
programmi scritti in J++ possono essere eseguiti all'interno della MSJVM (Microsoft Virtual Machine for Java), la versione proprietaria di Microsoft di un interprete Java.
Visual J++
• La sintassi di J++ rispetta le convenzioni grammaticali del Java creato da Sun Microsystems anche se non sono state implementate alcune funzionalità presenti nella versione Sun (ad esempio, Java Remote Methods Invocation e Java Native Interface).
• Visual J++ implementa altre estensioni di linguaggio che non esistono nella versione SUN come callback e delegate per gestire la gestione degli eventi.
• Per questi due motivi SUN e Microsoft, inizialmente in accordo per l’implementazione di Visual J++, sono andati per vie legali il che ha fatto si che Visual J++ non fosse più supportato.
• Visual J++ è stato rimpiazzato da J#, che permette di compilare codice Java/Java++ in linguaggio intermedio CIL (Common Intermediate Language) della piattaforma .NET.
Visual Studio
• Visual Studio nasce con lo scopo di riunire sotto un unico pacchetto tutti gli IDE forniti da Microsoft.
• La prima versione di Visual Studio prendeva il nome di Visual Studio 97 e fu lanciata nel 1997.
• In realtà pochi sanno che ci fu una precedente versione (denominata semplicemente Visual Studio) che fu rilasciata nella primavera del 1995
Visual Studio 97• Il nome in codice di Visual Studio 97 fu Boston
e fu il primo dei nomi presi da luoghi geografici.
• Visual Studio 97 includeva:– Visual Basic 5.0– Visual C++ 5.0– Visual J++ 1.1– Visual FoxPro 5.0– Visual Interdev per la creazione di siti web
utilizzando pagine ASP– Visual SourceSafe 5.0 per il controllo del codice
sorgente
Visual Studio 6• Nome in codice Aspen, fu rilasciato a giugno del
1998.
• Di fatto è l’ultimo Visual Studio non .NET.
• Tutti gli ambienti di sviluppo furono portati alla versione 6.0.
• Visual Basic, Visual C++ e Visual FoxPro avevano lo stesso IDE mentre Visual J++ e Visual InterDev condividevano un nuovo ambiente comune.
Visual Studio 6L’edizione più completa di Visual Studio 6.0 conteneva anche i tools:
– Application Performance Explorer– Automation Manager– Microsoft Visual Modeler– RemAuto Connection Manager– Visual Studio Analyzer
L’IDE diventa sempre più una suite di prodotti in ausilio del progettista, dello sviluppatore e del tester.
Dal 2000 ad oggiVisual Studio si evolve fino a diventare una piattaforma di sviluppo basata su .NET Framework.Vengono rilasciati framework (sia open source che ufficiali) a compendio del framework di base: WPF, WCF, Silverlight, Enterprise Library, nHibernate, Entity Framework.Arrivano gli strumenti gratuiti.Microsoft si apre all’open source con il lancio di CodePlex.La famiglia Visual Studio contempla anche la gestione completa dell’ALM con Team Foundation Server.
Visual Studio.NET
• NET Framework è un framework software che contiene una insieme di librerie di classi e supporta una serie di linguaggi.
• .NET Framework è stato rilasciato il 13 Febbraio 2002 assieme alla prima versione di Visual Studio .NET.
• A partire dalla fine anni 90 la potenza dei PC superava abbondantemente i requisiti di una applicazione standard.
• Questo è stato il trigger che ha visto la nascita di Java e poi del Framework.NET. In quel periodo storico l'overhead dovuto ai runtime e alla garbage collection era minimo rispetto ai benefici di produttività e manutenibilità.
Visual Studio.NETI benefici portati dall’introduzione del framework sono stati:
– Unificazione dell’IDE di sviluppo che, quindi può diventare uno ed uno soltanto;
– Poichè l’IDE è uno soltanto siu può fornire maggiore estendibilità allo stesso;
– Intercambiabilità dei linguaggi (in un primo tempo non completa, in via di completamento nelle ultime versioni);
– Possibilità di realizzate super-framework applicativi fruibili da tutti i linguaggi della piattaforma.
Visual Studio.NET 2002• Il primo rilascio di Visual Studio .NET è
datato Febbraio 2002 (la beta fu rilasciata nel 2001).
• Tecnicamente è chiamato Visual Studio 7.0 e solo dopo il rilascio di Visual Studio .NET 2003 questa versione iniziò a essere chiamata Visual Studio .NET 2002.
• Basato su .NET Framework 1.0, non è possibile sviluppare applicazioni per versioni successive del framework.
• L'IDE sfrutta parzialmente a sua volta il .NET.
Visual Studio.NET 2002• Si tratta della prima versione di Visual Studio a supportare i
linguaggi C# e VB.NET. Introdusse inoltre le ormai deprecate Managed Extension per il C++ (sostituite ora dall'estensione C++/CLI).
• Includeva:– .NET Framework 1.0– C# 1.0– Visual Basic.NET (VB 7)– Visual J# 1.0– Visual C++ .NET 2002
(Visual C++ 7.0)• La versione Beta includeva
Visual FoxPro 7, poi rimosso.
Visual Studio.NET 2003
• Caratteristiche salienti:– Incorpora la versione 1.1 del .NET Framework;– È stato aggiunto il supporto per il .NET Compact
Framework (per dispositivi portatili);– È stato aggiunto il supporto per ASP.NET Mobile
Designer (per creare applicazioni web progettate per dispositivi portatili o qualsiasi dispositivo di piccole dimensioni);
– Varie modifiche alla struttura grafica e correzioni di piccoli bug.
– Nonostante la versione del programma sia 7.1, il formato dei file è alla versione 8.
• Primo IDE della serie VS.NET ad includere una versione per architetti con un model designer
• Si tratta di un «minor upgrade» della versione 2002.
Visual Studio 2005
• L’anno 2005 rappresenta un punto di svolta per il futuro degli ambienti di sviluppo Microsoft:– Viene rilasciato VS.NET 2005 con il nuovo
framework 2.0;– Vede la luce Team Foundation Server per la
gestione del ciclo di vita del software;– Microsoft apre le porte all’Open Source (CodePlex)
e agli strumenti gratuiti.
Visual Studio 2005• Rilasciato nell’Ottobre del 2005.• Primo della serie a non avere il suffisso .NET.• Permette lo sviluppo per la versione 2.0 del
Framework (rilasciato assieme ad esso).• Viene rilasciato Visual Studio Tools for Applications
(VSTA) per lo sviluppo su Office con tecnologia .NET.• L’IDE è formato da un «Guscio» (Shell) al cui interno
possono trovare spazio delle estensioni (ancora complesse da realizzare)
Si va verso l’idea della piattaforma di sviluppo estensibile e pluggabile!!
Visual Studio 2005
• Contestualmente viene rilasciata anche la versione gratuita di SQL Server 2005.
• E’ il primo prodotto di sviluppo Microsoft a fornire una versione gratuita (Express Edition) utilizzabile anche per sviluppi commerciali.
CodePlex• Altro passo fondamentale per la sopravvivenza della piattaform
a.NET, è l’apertura all’Open Source, arma in più dalla concorrenza.• CodePlex è un progetto per l’hosting di progetti Open Source
principalmente sviluppati con tecnologia .NET.• La versione Beta del progetto fu lanciata nel Maggio 2006 mentre
la versione definitiva nel Giugno dello stesso anno.• Attualmente ospita circa 25.000 progetti.• Supporta la gestione del codice sorgente tramite TFS o Mercurial.• Il suo utilizzo è gratuito.
CodePlex
www.codeplex.com
Team Foundation Server
Nel 2005 viene anche rilasciato Team Foundation Server, una piattaforma completa per la gestione gestione del ciclo di vita del software (ALM) che completa la piattaforma Microsoft per lo sviluppo.
Team Foundation Server• TFS si integra perfettamente con Visual
Studio e con altri prodotti Microsoft (Excel, ad esempio).
• TFS mette a disposizione una serie di servizi e API per poter estendere le sue funzionalità creando il proprio client.
• TFS può essere utilizzato (grazie a client di terze parti) anche per la gestione ALM di altre piattaforme di sviluppo (Java, PHP, etc., etc.).
Visual Studio 2008
• Rilasciato il 19 Novembre 2007 assieme al framework 3.5 (di fatto un’estensione della 2.0).
• La versione di prodotto è la 9.0 ed è l’ultima a supportare il targeting per applicazioni C++ per Windows 2000;
• Supporta il multi-targeting con le versioni del framework 2.0, 3.0, 3.5 e.NET Compact.
Visual Studio 2008• A livello di framework vengono introdotti:
– XAML– Windows Presentation Foundation (WPF)– Silverlight– Windows Communication Foundation (WCF)– Workflow Foundation (WI)– Language INtegrated Query (LINQ)– Entity Framework (EF)
• Contiene il primo compilatore multi-thread che consente la compilazione contemporanea di più progetti contanuti in una solution.
• E’ possibile eseguire il debug su applicazioni multi-thread tramite la «Thread Window»
Visual Studio 2010• L’IDE di Visual Studio 2010 è completamente
ridisegnata rispetto ai precedenti utilizzando WPF.
• Altamente estendibile utilizzando Managed Extensibility Framework (MEF, un esempio di progetto precedentemente presente su CodePlex e portato nel framework).
• L’IDE si arricchisce di strumenti di test, controllo della qualità del codice, refactoring, etc., etc.
• L’IDE è multi-targeting anche verso le successive versioni del framework .NET.
Visual Studio 2010• Il framework passa alla versione 4.0 (una nuova versione) ed
estende e migliora i framework applicativi introdotti nella versione precedente (WPF, WCF, EF, etc., etc.)
• Viene introdotto F#, un linguaggio di programmazione multi-paradigma, basato sul .NET Framework, che permette la programmazione funzionale, imperativa o ad oggetti
Expression Studio• La famiglia Expression Studio nasce per
supportare i designer nello sviluppo di applicazioni web e basate sul markup XAML.
• Grazie alla duttilità e alla completezza dello XAML, nasce il concetto di «Devigner», ovvero di una figura a metà strada tra il developer ed il designer. L’interfaccia grafica è in grado di supportare animazioni e comportamenti descritti dal markup.
Expression Studio
I prodotti della famiglia Expression sono pensati, sia per ergonimicità dei comandi e dei menù che per i colori, per avvicinarsi alle necessità dei designer.
Expression StudioLa suite di Expression Studio contiene:– Microsoft Expression Web: per il disegno di siti web in
HTML.– Microsoft Expression Blend + SketchFlow: per la
progettazione di interfacce XAML WPF e Silverlight.– Microsoft Expression Design: per il disegno in grafica
vettoriale in XAML.– Microsoft Expression Encoder: per l’encoding video (VC-1,
H.264/MPEG-4).– Microsoft Expression Media: gestione dei contenuti digitali.
Conclusioni• Il futuro è Win8 con il suo nuovo paradigma di programmazione
HTML/Javascript che si affiancherà al consolidato paradigma client.
• Visual Studio si adeguerà per fornire strumenti adatti allo sviluppo nella nuova tecnologia.
“At every juncture, advanced tools have been the key to a new wave of applications, and each wave of applications has been key to
driving computing to the next level.”Bill Gates