Microsoft e l'evoluzione dei Linguaggi di Programmazione

Microsoft è da sempre prim'attore nel mondo dello sviluppo e in questo articolo scopriremo i 40anni di linguaggi di sviluppo made in Redmond

Avatar di Felice Pescatore

a cura di Felice Pescatore

Introduzione

image1

Molti associano Microsoft primariamente al mondo Windows, Office ed ai software applicativi. Ma Microsoft è da sempre prim'attore nel mondo dello sviluppo, anzi: ricordiamo che Gates ed Allen fondano Microsoft proprio per commercializzare varianti del proprio BASIC realizzato per l'Altair.

In questo nuovo viaggio scopriremo i 40anni dei linguaggi di sviluppo mande in Redmond.

Leggi anche: L'evoluzione di Microsoft Office, dagli albori a Cortana

Dal Basic ad un mondo di linguaggi

Nel 1975 la Micro Instrumentation & Telemetry Systems, Inc. (MITS) di Ed Roberts presenta l'Altair 8800, il primo microcalcolatore disponile al grande pubblico. Si tratta di una vera e propria rivoluzione tanto che il numero di gennaio della rivista Popular Electronics con esso da ufficialmente inizio all'era dell'informatica per tutti presentandolo in copertina. 

image2
La copertina del numero di Popular Electronics dedicata all'Altair 8800

Su questo sistema Bill Gates e Paul Allen sviluppano una versione specifica del linguaggio Basic che servirà da traino per la fondazione della Micro-Soft (notare il trattino) focalizzata, nei primi anni, proprio sulla sua commercializzazione ad una serie eterogenea di clienti, tra cui General Electric.

L'MS Basic è decisamente diverso dalla concezione odierna di compilatore/interprete ed inoltre è possibile averlo in modalità stand-alone, ovvero con capacità di boot del sistema. Nello specifico la versione per l'Altair occupa circa 4 KB di memoria ed è riversata su nastro perforato, l'unico supporto di input accettato dal sistema. Una delle cose che hanno fatto storia è la scrittura del programma di boot dell'interprete che viene scritto da Paul Allen sul volo per Albuquerque per la consegna dell'interprete stesso.

image3
L'Altari 8800 Basic

Lo step evolutivo successivo è BASIC-A (Basic Advance) il BASIC per DOS, ancora interpretato e, ovviamente, a riga di comando. Questa versione può essere eseguita solo su PC IBM originali (non cloni), andando a leggere una particolare configurazione nel BIOS, spingendo Microsoft, decisa a vendere il proprio DOS anche a produttori terzi (Compaq in primis), a iniziare lo sviluppo di un BASIC cross-partner da includere nell'MS DOS e che acquista il prefisso GW. Sul significato di questo prefisso, che non è mai stato spiegato ufficialmente, ancora oggi restano in piedi due possibili ipotesi:

  • Graphics and Windows BASIC o Gee Whiz ("diamine", "perbacco") per il grande numero di istruzioni grafiche in 2D contenute nel linguaggio
  • GW sarebbero le iniziali di Greg Whitten, dipendente Microsoft, che contribuì agli standard BASIC;

Il GW Basic diventa il complemento standard dell'MS-DOS tanto che come il sistema operativo, anch'esso viene personalizzato dal vendor specifico.

image4
Manuale GW Basic Olivetti Branded

Il GW Basic si evolve velocemente, trasformandosi in QuickBASIC e aggiungendo il supporto ai tipi

definiti dall'utente, alle strutture avanzate, ad una grafica migliore, un supporto al disco

avanzato e, soprattutto, un compilatore che consente di distribuire direttamente l'applicazione e non il sorgente. Siamo nel 1985 e l'intero ambiente viene distribuito esclusivamente su floppy da 5,25", mentre per la disponibilità sui supporti da 3,5" bisognerà aspettare la release 2.0 rilasciata l'anno successivo.  La versione 2.0 porta in dote la tipica interfaccia utente che accompagnerà il prodotto per il suo intero ciclo di produzione/vendita.

image5
Microsoft Quick Basic

Il 1988 segna il rilascio dell'ultima versione di QuickBasic, la 4.5, ambiente messo in secondo piano dallo sviluppo del nuovo (e per certi versi rivoluzionario) Visual Basic, disponibile nella versione 1.0 anche per DOS. In realtà il supporto da parte di Microsoft continuerà per diversi anni tant'è che nel 1990 viene rilasciata una nuova versione 4.5 proposta in un package completamente rivisto, così come rivista risulta la manualistica. Curiosità è che anche in questa nuova veste, l'ambiente viene reso disponibile sia su floppy da 3,5" che sugli ormai obsoleti dischi da 5,25".

Dal QuickBasic 4.5 viene "estratta" una versione light denominata QBasic e fornita con l'MS-DOS dalla versione 5.0 (il PC DOS 5.0 include QBasic ma viene rimosso nella prima versione di fix  5.00.1, in seguito alla completa rottura di IBM con Microsoft). Rispetto al fratello maggiore, QBasic dispone del solo interprete, manca di alcune funzioni e moduli e può eseguire solo applicazioni di dimensioni modeste.

Insieme a QBasic, Microsoft fornisce il codice di due giochi di esempio: l'onnipresente Snake(Nibbles) e Gorillas, anche se quest'ultimo, ad essere precisi, è scritto da IBM e non dalla casa di Gates.

image6
Gorillas

QBasic ha una vita più longeva del QuickBasic, tanto da essere presente addirittura in Windows 95 e Windows NT e alcune versioni di OS/2, anche se resta sostanzialmente immutato nel tempo. Solo dal 2000 Microsoft annuncia ufficialmente che non includerà più l'interprete nei suoi sistemi operativi, creando così un ecosistema di interpreti/compilatori QBasic like, come ad esempio FreeBasic disponibile per DOS, Windows e Linux.

image7
Free Basic

Nel giro di un quinquennio, praticamente tutti i linguaggi di programmazione più popolari entrano nell'orbita del big di Redmond. Cronologicamente parlando è il Fortran il "secondo amore" di Microsoft, rilasciato nel 1977.

In realtà il Fortran è anche il primo linguaggio con cui Gates è venuto a contatto. Infatti durante i suoi studi liceali gli viene assegnato il compito di scrivere un programma per organizzare la composizione delle classi ("class scheduling"), compito che il giovane Bill porta brillantemente a termine. Si racconta, inoltre, che Gates scrive anche una versione speciale dello scheduler che lo posiziona in classi composte solo da lui e da tutte le ragazze che lo ritengono carino.

Il compilatore realizzato da Microsoft, in parte scritto proprio da Gates e pensato per i sistemi CP/M, si impone sul mercato per l'alta qualità, rafforzata anche dall'ottima documentazione a corredo.

image8
Microsoft Fortran

Nel 1981 è la volta di MASM ovvero il Microsoft Macro Assembler, il compilatore Assembler targato Microsoft per la piattaforma x86. MASM è lo strumento di più basso livello dell'ecosistema MS e il preferito dagli utenti esperti che devono "spremere" al massimo i propri sistemi. Inoltre MASM diventa velocemente il leader del settore incontrando nell'omologo Intel l'unico vero antagonista.

Del Macro Assembler vengono realizzate anche delle versioni spurie con suffisso "-80", pensate per le CPU 8080 e Z80 e aventi come target il sistema operativo CP/M.

image9
Microsoft Assembler

Nel 1983 per rafforzare lo standard MSX e l'MSX-DOS, Microsoft rilascia versioni specifiche del BASIC (80), del FORTRAN (80) e addirittura una specifica versione del COBOL (80).  In realtà la casa di Gates aveva già inserito nella propria offerta il COBOL, particolarmente rilevante per le applicazioni finanziarie e per gli istituti bancari. L'MS COBOL viene sviluppato durante tutti gli anni '80 e raggiunge la veneranda versione 4.5 all'inizio del decennio successivo, con il COBOL 4.5 per DOS, WINDOWS e OS/2.

image10
Microsoft COBOL 4.5

Anche il Fortran si evolve negli anni fino ad arrivare al FORTRAN PowerStation 4.0 (1994), con il supporto agli standard Fortran 66Fortran 77 e Fortran 90, e ai sistemi operativi Windows NT e Windows 95. Ufficialmente Microsoft sospenderà il supporto a questo linguaggio a partire dal 1 Aprile del 1997.

Sempre nei primi anni '80 arriva il compilatore Microsoft Pascal, pensato per offrire una versione made in Redmond del linguaggio principe per scopi didattici. Qui, tra l'altro, incontriamo Tandy Trower, responsabile dello sviluppo di parte dei linguaggi di BigM, ma, soprattutto, uomo chiave per le prime due release di Windows (Da Interface Manager a Windows 8). Come per il Basic, anche in questo caso arriva rapidamente il QuickPascal con l'IDE integrato stile Turbo Pascal.

image11
Microsoft QuickPascal 1.0

Il matrimonio tra Microsoft ed il Pascal è, comunque, di breve durata e termina (1988) proprio con il QuickPascal, incapace di contrastare Borland, anche e soprattutto sul fronte dei prezzi: 400$ contro meno di 100$ per il secondo.

Il 1983 è l'anno del C targato Redmond: Microsoft C 1.0, basato sul Lattice C (il primo compilatore C per PC IBM, nato per Amiga, e disponibile per un numero decisamente ampio di sistemi). La versione per DOS è particolarmente importante poiché grazie ad essa viene effettuato il porting di una serie rilevante di applicativi da CP/M, scritti in BDS C. Lo step di rilievo successivo è il rilascio (1985) della versione MS C 3.0, la prima interamente sviluppata da Microsoft ed utilizzata per lo sviluppo di Windows.

Le versioni successive aggiungono il debugger CodeView (C 4.0), il primo compilatore a 32bit per processori i80386 (C 5.0), un primo supporto al C++ (C 6.0, 1989) fino ad arrivare all'ultima versione non "visual", la C/C++ 7.0 (1992), che supporta nativamente il C++ e introduce le MFC  (Microsoft Foundation Classes) 1.0 (Microsoft Foundation Classes) per lo sviluppo di interfacce grafiche.

Parallelamente nasce QuickC (1987) che porta con sé l'IDE ormai standard della serie "Quick", compatibile con lo standard ANSI C e la versione 5 del Microsoft C. Neanche a dirlo, il diretto competitor è ancora una volta Borland con il proprio Turbo C (omologo del Tubo Pascal) cosa che spinge Microsoft ad offrire la propria soluzione per 99$. Questa versione è comunque più limitata rispetto al fratello Microsoft C, soprattutto nella massima memoria utilizzabile, nella velocità del compilatore e nelle feauture di ottimizzazione del codice.

Nel complesso le tre versioni "Quick" (Basic, Pascal e C) dimostrano che già nella seconda metà degli anni '80 il big di Redmond intuisce la necessità di uniformare i propri ambienti che, anche restando separati tra loro, cercano di assomigliarsi quanto più possibile per permettere agli sviluppatori cross-language di lavorare con ambienti familiari.

Nel 1987, Microsoft stringe un accordo con Sybase per realizzare un RDBMS per il nuovo OS/2. L'accordo prevede che Sybase mantenga i diritti sulle release per piattaforme Unix, mentre Microsoft su quelle per OS/2 e per i propri sistemi operativi.

La scelta di BigM è dettata, fondamentalmente, dalla volontà di inserirsi nel mercato dei DB per PC, quasi completamente dominato da dBase (nelle varie incarnazioni III e III+). Stranamente, però, Microsoft decide di non dichiarare guerra ad Ashton-Tate (com'è nel suo stile), ma di coinvolgerla nello sviluppo di strumenti per una facile migrazione dei dati su OS/2, annunciando Ashton-Tate/Microsoft SQL Server

image12
Il SAF di SQL Server 1, con i copyright delle tre società

Prima della fine del decennio, in concomitanza con il lancio di dBase IV, la partnership tra Microsoft e Ashton-Tate si dissolve per la presunta complessità di realizzare uno strumento di dev/frontend che permetta di scambiare i dati tra la nuova versione di dBase e SQL Server. Ashton-Tate/Microsoft SQL Server viene così rinominato semplicemente in Microsoft SQL Server, mentre Sybase, ancora co-sviluppatore dello stesso, rinomina le proprie release in Sybase SQL Server per UNIX e VMS.