homepage
 about us
 mission
 avvertenze d'uso
 disclaimer
 data
 articoli
 a caldo
 domande e risposte
 documentazione
 errori argomentativi
 anti bufala
 anti claim
 humor
 vignette
 testi
 link
 contattaci


Tutti i contenuti di pc-vs-mac.com, salvo ove diversamente specificato, sono pubblicati secondo la licenza d'uso Creative Commons.
  La rivoluzione in Vista: i concetti base
unificare, aggiornare, potenziare
 
 
Come si diceva qualche riga fa, nel corso del tempo i paradigmi, gli strumenti e i concetti legati alla programmazione continuano ad evolversi. Il software che è stato scritto con i criteri vecchi invece no, a meno che non venga riscritto ex-novo - il che non vuol dire gettare tutto quanto fatto nella spazzatura, perchè tipicamente in questa operazione è possibile recuperare abbondanti porzioni del codice vecchio. In una situazione normale, diventa difficile passare ai nuovi modelli, in quanto comporta un elevato costo in termini di risorse (programmazione e testing) e pertanto si preferisce aspettare i major update, nei quali si introdurranno via via in misura sempre maggiore i nuovi concetti man mano che si andrà a rivedere, aggiornare, modificare le varie porzioni di codice. In una situazione privilegiata invece come quella in cui si trova Vista, il discorso è diverso, perchè di fatto viene rimesso in gioco tutto il codice esistente.

C’è inoltre da ricordare che Microsoft è una di quelle aziende che contribuisce all’evoluzione della tecnica della programmazione: realizza importanti strumenti di sviluppo e con essi introduce anche nuovi concetti. Per Vista ha introdotto un modello di programmazione per il codice managed denominato WinFX, che si basa sulla piattaforma .NET. Vediamo però una cosa per volta.


Il codice managed

Vista farà ampio uso, e questa sarà una delle sue peculiarità uniche, del codice managed. Senza entrare in dettagli tecnici, in un programma scritto in codice managed ogni operazione è controllata, e pertanto vi sono delle garanzie a riguardo che un software scritto in codice unmanaged non dà. In quest’ultimo caso il sistema operativo carica nella memoria il file eseguibile - che è una rozza immagine binaria delle istruzioni in codice macchina - gli “passa la palla” e da quel punto in poi non si sa più nulla di ciò che accade all’interno di quel processo, ma si vedono solo gli effetti. Nel caso del codice managed invece l’eseguibile è un più raffinato binario codificato in un linguaggio intermedio e astratto che viene tradotto in codice macchina (che, come dice la parola stessa, può essere dato in pasto alla macchina) al volo e in modo trasparente nel momento in cui l’applicazione viene lanciata. Ad occuparsi della traduzione se ne occupa un compilatore apposito che si preoccupa di inserire, tanto per dirne una, controlli e verifiche sulle istruzioni proprie dell’applicazione in modo che nessun evento inaspettato passi inosservato. Grazie a questa tecnica si elimina un’intera categoria di possibili errori di programmazione che spesso conducono a falle di sicurezza (un esempio tipico sono i buffer overflow). Inoltre, con l’introduzione del linguaggio intermedio, si aprono opportunità interessanti:
- l’eseguibile non è contestualizzato a una o all’altra piattaforma hardware: una volta che è disponibile il compilatore, lo stesso eseguibile può essere lanciato su un Itanium 2 o su un Athlon 64
- è concepibile che il compilatore, in prospettiva, possa operare ottimizzazioni specifiche per le caratteristiche specifiche del proprio computer, a partire dalla CPU. Un eseguibile tradizionale è sempre un compromesso perchè deve poter funzionare su una vasta varietà di hardware
- il compilatore, venendo nel corso del tempo aggiornato, potrà produrre codice macchina sempre più ottimizzato e in grado di produrre ottimizzazioni specifiche per un numero di macchine sempre maggiore. In pratica potrebbe delinearsi lo scenario in cui ad ogni aggiornamento del compilatore tutte quelle applicazioni scritte in codice managed migliorino sensibilmente le loro performance

WinFX

WinFX, come accennato, è il modello di programmazione per il codice managed, basato sulla piattaforma .NET, di Windows Vista. Con WinFX Microsoft non solo vuole migliorare e rendere il più facilmente fruibile quei servizi che già si trovano ad es. in Windows XP ma vuole offrirne di nuovi fornendo nuovi e potenti strumenti agli sviluppatori. Di fatto WinFX racchiude tutte i servizi scritti in codice managed che Vista offre, come quelli della Windows Communication Foundation (nome in codice “Indigo”), della Windows Presentation Foundation (nome in codice “Avalon”) o della piattaforma .NET. In una parola sola, il cuore di Windows Vista.


Pagina precedente
(Unificare)
Pagina successiva
(Potenziare - sviluppo, interfaccia, usabilità)

Indice:
1. Il lungo passo
2. La via di Microsoft
3. Unificare
4. Aggiornare
5. Potenziare - sviluppo, interfaccia, usabilità
6. Potenziare - sicurezza, strumenti
7. Potenziare - controllo, semplicità, stabilità
8. Potenziare - performance, altro
9. Conclusioni