March 2006 - Posts
Microsoft ha rilasciato un insieme di report per Reporting Services 2005, che coprono i log di SSIS, IIS e SharePoint e forniscono un po' di reportistica anche per Axapta, Navision e Great Plains.
La versione per Reporting Services 2000 conteneva qualche esempio interessante, ma non suscitava tutto il mio entusiasmo (ma in effetti non può essere considerato un prodotto finito, è proprio un insieme di esempi e in questo senso va considerato). Non appena avrò modo di testarne bene le funzionalità (almeno di alcuni) tornerò sull'argomento, ma nel frattempo se qualcuno li avesse già provati mi piacerebbe avere le sue impressioni.
A quanto pare MapPoint 2006 è veramente in dirittura di arrivo. Su MP2KMAG è già possibile preordinare MapPoint 2006 (ma con le mappe Nord-America), ma di solito la versione Europa esce in maniera concomitante.
Su questo blog è possibile trovare qualche anticipazione delle nuove funzioni. Io sono impaziente di vedere il nuovo algoritmo di ricerca dei nomi (quello di MapPoint 2004 è poco utilizzabile per la sua rigidità) e le nuove mappe (dovrebbero avere un dettaglio maggiore a livello di strade). Ho ricevuto spesso mail di persone che sviluppano con MapPoint 2004 e mi chiedevano delucidazioni, io non ho tantissima esperienza avendo lavorato più a dei prototipi che a delle applicazioni complete che usano MapPoint come componente ActiveX, ma alcune nuove API dovrebbero migliorare anche dei problemi relativi alla georeferenziazione.
Appena il prodotto sarà disponibile (purtroppo non ho avuto modo di provare nemmeno una beta) tornerò sull'argomento.
Premessa: lavorando quasi esclusivamente con tecnologie Microsoft, il mio può essere considerato un parere di parte, ma posso dire che i valori che mi ispirano sono indipendenti dal caso specifico, che però sollecita la mia attenzione in quanto ha effetti sul mondo (tecnologico) in cui tutti viviamo.
Ho appena letto questo breve articolo di Paul Thurrot che commenta una lettera inviata a Microsoft dal commissario antitrust dell'Unione Europea, Neelie Kroes. Il messaggio inviato a Microsoft è quello di fare attenzione a quello che farà con Windows Vista, perché se integrerà tecnologie come IE7, DRM e Metro, potrà esserne vietata la vendita nei paesi dell'Unione.
Ben sapendo di toccare un argomento che susciterà reazioni contrapposte, non riesco a capacitarmi di come si voglia definire delle regole per la realizzazione di un prodotto, che deve contenere alcune funzionalità ma non altre per decreto. Tra le possibili funzionalità soggette a regolamentazione, ci sarebbero addirittura funzionalità concorrenziali a Symantec e McAfee (riferendosi probabilmente di antivirus e firewall).
Ripeto, non riesco a capacitarmi di come ciò sia possibile. Credo sia noto a molti il paragone di come sarebbe un'automobile se fosse costruita da Microsoft (fermate in autostrada, spegni e riaccendi, cambia il volante ogni mese, ecc. ecc.). Immaginiamo il giochino al contrario, ovvero come sarebbe un'automobile oggi se fossero state applicate regole analoghe dal 1980 in avanti.
Le cinture di sicurezza sarebbero ancora un optional. ABS e Airbag forse ci sarebbero (difficile immaginare di montarli in un secondo tempo), ma qualcuno ricorderà che c'è stata un'epoca in cui il climatizzatore poteva essere montato in un secondo tempo. Quindi via il climatizzatore dalla dotazione di serie. E cosa dire dell'autoradio? Sparito il bollo (chi se lo ricorda quello della radio?) il massimo che dovremmo aspettarci dovrebbe essere una "predisposizione" per il montaggio del nostro "estraibile" preferito (per la gioia di ladruncoli e di chi vende vetri per auto).
Tornando al nostro "mondo tecnologico", quando Microsoft è passata a Windows ha eliminato l'intero mercato dei memory extender (chi ha sviluppato in DOS si ricorda di cosa significhi un limite di 640K, dove oggi non ci sta nemmeno il notepad (non sto scherzando, verificate pure). Il Defrag, nato con uno degli ultimi DOS, ha messo in pericolo molti produttori di utility corrispondenti. Lo stesso Explorer, da un certo punto di vista, ha messo in crisi utility favolose per la gestione e la copia di file.
Per guardare ad altri: è inimmaginabile oggi un sistema operativo senza browser internet (Apple ha Safari e nessuno glielo impedisce, com'è giusto). Secondo me è auspicabile, per la sicurezza di tutti, che alcune funzionalità di sicurezza siano implementate a livello di sistema operativo. Vogliamo dire che il mercato di un paio di aziende (americane e non europee, tra l'altro - Symantec ha in Europa degli impianti produttivi, come peraltro Microsoft, ma per questioni più logistiche e fiscali che non strategiche) è più importante della sicurezza? Vogliamo le cinture di sicurezza come optional nelle automobili?
Certo, il software è un bene particolare, tutto ricerca e sviluppo con zero costi di produzione materiale. Certi distinguo rispetto ai beni materiali sono, sotto certi aspetti, anche giustificate. Ma io credo fermamente che lo spirito ultimo che guida l'antitrust debba essere la tutela del mercato e in prima istanza dei clienti/consumatori, non il diritto all'esistenza delle singole aziende e/o dei singoli prodotti. Quando leggo certe giustificazioni, non riesco a comprenderne il senso. Signori, il costo per il possesso di un personal computer è sceso enormemente negli ultimi 20 anni. Google si è affermata contro un colosso che pareva invincibile come Altavista. Microsoft ha combattuto IBM sul terreno dei sistemi operativi (Windows su OS/2). In molti mercati Microsoft ha una buona posizione ma non ha il 90% del mercato in fatturato (XBox, SQL Server, Exchange). Ma tutte queste battaglie si sono combattute sul mercato e non in tribunale. Il risultato è stato un vantaggio per gli utenti, che hanno scelto il prodotto migliore valutandone tutti gli aspetti. Che un'azienda cerchi di eliminare o ridurre la concorrenza fa parte delle regole del gioco e non è una distorsione, purché ciò avvenga in maniera corretta: acquisire un'azienda (come l'esempio di Alienware di cui ho parlato pochi giorni fa) è ben diverso dal ricattarla o farla fallire facendo dumping sui prezzi. Questo è il tipo di azione che mi aspetterei da un organo di controllo: individuare, perseguire e se possibile prevenire l'abuso di posizioni dominanti (quindi ricatto o dumping) e di cartelli sui prezzi, non il mantenimento dello status quo (mantenere le condizioni per cui un prodotto abbia mercato venenendo meno all'interesse primario del cliente/consumatore).
Dal mio punto di vista, un cartello di prezzi fatto dalle società che detengono una quota maggioritaria del mercato è eticamente disdicevole tanto quanto un'intervento legislativo che distorce le regole della concorrenza prevenendo il cambiamento di condizioni di mercato che potrebbero far scendere i prezzi (o aumentare la qualità) dei prodotti. Vietare di mettere un antivirus in un sistema operativo per me equivale a consentire che si costituiscano cartelli sui prezzi.
Il mondo cambia, il mercato cambia, i prodotti cambiano, le aziende cambiano.
Il cambiamento va incentivato, non fermato.
Pensare di fermare il tempo è fuori dal tempo stesso.
Dite la vostra.
PS: Forse, semplicemente, Microsoft dovrebbe investire qualcosa in una lobby migliore a Strasburgo e Bruxelles, come fanno tutti...
Ieri ho inaugurato il Security Roadshow 2006 a Brescia, il tour va avanti in tutta Italia nel mese di marzo e aprile (date e iscrizioni su questa pagina). Personalmente sarò ancora speaker a Verona (30 aprile) e Padova (13 aprile).
Approfitto del post per ringraziare gli intervenuti che onestamente hanno alzato la mano alla mia domanda su chi sviluppasse ancora come amministratore. Io non ho guardato (per avere risposte sincere) ma terminata la giornata ho chiesto a qualche collega le percentuali... un 80% di sviluppatori usa ancora un utente amministratore, spero di essere riuscito a convertire almeno un 50% dei presenti, sarebbe già un ottimo risultato!
Un commento personale: anche se in Vista è presente UAC (User Account Control) che consente a un utente amministratore di operare come se fosse un utente normale, resto dell'idea che sia meglio usare un utente "normale". UAC, così come RunAsAdmin (funzione simile utilizzabile anche su XP e 2003), per quanto comodi mi sembrano un po' dei palliativi.
Ricordo che le slide dell'evento saranno disponibili sulle pagine di MSDN alla fine del tour, comunque se avete bisogno di riferimenti a tool o altre informazioni non fate problemi a scrivermi.
Mi è capitato di frequente di vedere l'uso della clausola TOP 100 PERCENT usato nella definizione di viste (in SQL Server) per poter usare la clausola ORDER BY nella definizione della vista. Non si tratta di una buona idea.
Benché apparentemente il risultato sia simile a quello di avere una ORDER BY in una SELECT, non è assolutamente garantito che il risultato restituito sia ordinato: il piano di query può essere ottimizzato in modo tale da restituire comunque tutti i record della tabella, ignorando l'ordinamento richiesto nella query. Dunque, i trucchi sono inutili: una vista non può avere una ORDER BY di cui sia garantito il funzionamento.
Una spiegazione più dettagliata è fornita in questo post nel blog del team di ottimizzazione delle query di SQL Server segnalato da Davide Mauri.
Non è un post da week-end ma quasi: Dell ha annunciato un accordo per l'acquisizione di Alienware. Per chi non lo sapesse, Alienware fa PC e notebook assolutamente privi di qualsiasi compromesso (prezzo compreso, purtroppo).
Qualche settimana fa ho considerato l'acquisto di un loro notebook, ma a parte i costi (a cui comunque corrispondono caratteristiche introvabili in notebook "normali") e il problema della tastiera (quella che assomiglia di più alla italiana è la spagnola, l'italiana non è a listino), il vero blocco è stato la mancanza di un supporto diretto in Italia, in caso di guasto il notebook comincia a fare su e giù con l'Irlanda.
Questa acquisizione forse renderà molto più accessibile (almeno per assistenza e tastiera) un notebook Alienware. Per i prezzi, non credo che Fiat comprerebbe Ferrari per abbassarne i prezzi (anzi, forse da allora i prezzi sono addirittura saliti).
Leggendo quest'intervista a Michael Dell viene però malignamente da pensare che il vero motivo sia quello di eliminare un possibile concorrente prima, molto ma molto prima che diventi anche solo un piccolo fastidio. Nessun antitrust che rompe le scatole e l'unica realtà significativa che ha un modello di business accomunabile a Dell (solo vendite dirette, nessuna rete commerciale) è sotto controllo. Se è veramente così, si tratta di un'ammirevole caso di lungimiranza imprenditoriale.
Un consiglio ai maniaci della tecnologia più spinta: non visitate siti come questo con una carta di credito a portata di mano...
Lavorando sul materiale per il prossimo Technet-MSDN Security Roadshow (farò da speaker a Brescia, Verona e Padova, per i dettagli seguite il link) ho rivisto la biografia di Dave Cutler (al secolo David Neil Cutler) e ho scoperto che fino a qualche anno fa correva anche in auto, senza primeggiare ma senza neanche arrivare ultimo.
Per restare sul tecnico, il PDP-11 nel curriculum di Cutler era un altro tassello che mi mancava, o meglio che mi ero dimenticato, visto che è tutto scritto nell'introduzione alla prima edizione di Inside Windows NT di Helen Custer.
In questi giorni è capitato di discutere di questo articolo di Richard Grimes che fa un'analisi un po' spietata della relazione che c'è tra Windows Vista e il .NET Framework.
Nell'articolo sono elencati una serie di dati oggettivi: .NET non è praticamente utilizzati in Windows Vista e Microsoft si è silenziosamente rimangiata la promessa di fare di WinFX la nuova API per le nuove funzionalità del sistema operativo. Credo ci siano poche discussioni su questo fatto, i numeri parlano da soli, praticamente nessun componente del sistema operativo usa .NET.
Quello che personalmente non condivido del tutto sono le conclusioni. Dire che Microsoft non si fida di .NET non mi sembra corretto, esistono dei prodotto sviluppati da Microsoft con questa tecnologia (Reporting Services credo sia il più diffuso) e altri ne sta sviluppando (l'editor di WPF). Il sistema operativo e i servizi di base hanno requisiti di scalabilità molto diversi da quelli di una normale "applicazione", anche considerando un servizio del sistema operativo.
Come ho detto già pochi giorni fa, dal punto di vista della stabilità è molto meglio fare un componente e poi costruirci sopra qualcosa. Tanto per fare un esempio, anche quando è arrivato COM non lo abbiamo visto usare da quasi nessun componente del sistema operativo, almeno nelle prime versioni, e tutto continuava a essere connesso attraverso DLL e chiamate "C-like". Oggi ci sono alcune API che esistono esclusivamente come interfacce COM e non esiste il corrispondente "C". Questa migrazione graduale (che non ha sostituito le API esistenti!) ha garantito un certo livello di stabilità, almeno nei componenti del sistema operativo (il versioning dei componenti di base di COM rispetto agli applicativi è sempre stato un mal di testa molto diverso e più pesante).
Trovo quindi naturale pensare che ci vorrà ancora qualche anno per avere un vero Windows .NET, che sfrutterà WPF molto più a fondo di quanto non faccia l'interfaccia Shell delle attuali Beta di Vista. Quel che è certo, a questo punto, è che la rivoluzione che Microsoft ha promesso nel 2003 con Longhorn non sarà così "rivoluzionaria", ma molto più diluita nel tempo (più un'evoluzione, insomma).
In poche parole, questo è il prezzo della compatibilità.
Ho appena letto che Excel 2007 supererà il limite di 65535 righe: il nuovo limite sarà di 1.048.576 righe.
Non so se essere felice di questa notizia: già immagino tutti gli usi impropri di questa funzionalità... ma si sa, sono rischi da correre.
Post da week-end: provando l'ultima CTP di Vista ho trovato un caro vecchio ricordo, il Minewseeper. Finalmente hanno tolto l'ipocrisia della traduzione "pacifista" (credo di aver visto "campo fiorito" in una qualche versione di Windows), tanto che quando si perde le mine "esplodono" con tanto di animazione.
La grafica è stata aggiornata ed è aderente all'interfaccia di Aero (per i curiosi, c'è già chi ha pubblicato dei bitmap).
Curiosando ho constatato che anche Minesweeper non usa WPF (ex-Avalon) ma agisce direttamente con il nuovo set di Common Controls di Windows Vista. Insomma, è e resta un'applicazione unmanaged, forse scritta ancora in C e non in C++.
Insomma, il sistema operativo per ora si guarda bene dal considerare WinFX una parte di sé. Le promesse del 2003 non saranno completamente completamente mantenute, ma forse la lezione di SQL 2005 e Visual Studio 2005, così legati e interdipendenti da ritardare il lancio di entrambi di mesi, è servita. La priorità ora è uscire con Windows Vista, che di novità ne ha già abbastanza, con il tempo vedremo come le nuove API (basate su .NET) saranno usate da tool e applicazioni Microsoft.
In questi giorni ho avuto modo di vedere un caso "da manuale" di come SQL Server 2005 sia migliorato rispetto a SQL Server 2000, specialmente in quei casi dove manca un efficace piano di manutenzione di indici e statistiche del database.
Tra le tante novità che sono descritte in questo whitepaper una di quelle che può avere un impatto significativo è questa:
Special case 1: Statistics created on an empty table or indexed view
SQL Server 2005 handles the following scenario differently from SQL Server 2000. A user creates an empty table T. She then creates a statistic S on one or more columns of T. Because T is empty, the stats-blob (histogram) is NULL, but the statistic has been created on T. Suppose that S has been found "interesting" during a query compilation. As per the "500 row" rule for recompilation threshold, T will cause recompilations on SQL Server 2000 only after T contains at least 500 rows. Therefore, a user may suffer from sub-optimal plans until T contains at least 500 rows.
SQL Server 2005 detects this special case, and handles it differently. In SQL Server 2005, recompilation threshold for such a table or indexed view is 1. In other words, even the insertion of one row in T can cause a recompilation. When such a recompilation happens, S is updated, and the histogram for S is no longer NULL. After this recompilation, however, the usual rule for recompilation threshold (500 + 0.20 * n) is followed.
In SQL Server 2005, the recompilation threshold is 1 even when: (1) T has no statistics; or (2) T has no statistics that are considered "interesting" during a query compilation.
In pratica, facendo il backup di un certo database da SQL Server 2000 e il restore dello stesso database su SQL Server 2005 si osservavano prestazioni completamente differenti (più veloci su SQL 2005) per alcune query. L'esecuzione di sp_updatestats ristabiliva però la parità tra le versioni.
Per quanto detta così possa sembrare ovvia, non è intuitivo che la sola query su SQL 2005 faccia l'aggiornamento di alcune statistiche ottenendo così tempi migliori (che poi si mantengono tali anche per altre query, la prima migliora ma di poco visto che l'aggiornamento delle statistiche porta via tempo). Ecco quindi che un apparente miracolo di SQL Server 2005 nasconde in realtà una dimenticanza di chi amministra SQL Server 2000.
Comunque, la morale di questa storia è che prima di fare una qualsiasi valutazione sulle case di prestazioni inadeguate fornite da una query, bisogna verificare che esistano indici adeguati e che le statistiche siano aggiornate.
Ma è inutile dirlo ai lettori di questo blog, visto che i vostri database in produzione hanno tutti un piano di manutenzione che aggiorna periodicamente indici e statistiche, no?
Titolo provocatorio: il momento non è ancora arrivato, ma se leggete questo articolo scoprirete come in realtà con Windows Vista si aprano veramente le porte a un mondo nuovo che potrà essere usato molto presto (credo) anche da .NET.
Non che scrivere un driver sia il bisogno indispensabile dei più, ma l'architettura UMDF (User Mode Driver Framework) consente di avere un driver scrivendo una "semplice" DLL, con tante belle interfacce COM (altro articolo...), quindi in teoria qualcosa si dovrebbe già poter fare anche in C#, VB.NET e, perché no, in COBOL.NET :-)
Più seriamente, questa architettura è fondamentale dal punto di vista della sicurezza: ogni volta che installo un software che richiede l'installazione di un driver, la cosa mi piace poco. Molti device, fondamentalmente, non avranno più bisogno di essere così "intimi" con il kernel del sistema operativo...
Ieri, al termine di una lunga telefonata di lavoro, il discorso è caduto sul tipo di assistenza fornita a dei clienti attraverso varie forme di accesso remoto. Spesso si parla di "tele-lavoro" pensando ai dipendenti di un'azienda, ma il ragionamento che si faceva era invece rivolto alle attività professionali che intercorrono tra aziende diverse.
Molti lettori di questo blog avranno constatato che, grazie al modem prima e a Internet poi, sono riusciti a ridurre i loro viaggi per operazioni meramente "pratiche", come fare l'installazione e il debug di un software prodotto da loro. In realtà, da un'altro punto di vista, questa minore dipendenza da vincoli geografici ha consentito a molte aziende e professionisti di allargare il loro "territorio di caccia", senza essere eccessivamente penalizzati dai costi di trasferta che, rivolgendosi a una realtà locale, non ci sarebbero.
In realtà non tutte le aziende sono correttamente strutturate per lavorare in queste modalità. Sicurezza a parte (che meriterebbe un discorso a parte), ci sono degli aspetti organizzativi che penalizzano (in genere) le realtà più grandi e strutturate, dove è più difficile consentire a un lavoratore "remoto" di operare con le stesse modalità che gli sarebbero consentite lavorando all'interno dell'azienda.
Bisogna però ammettere che negli ultimi anni anche questo gap si sta superando, seppur con molte differenze da una realtà all'altra.
Perché sto scrivendo? Semplice, il ragionamento (che faccio spesso, anche se forse non in questo spazio) è che da una parte la domanda può cercare una specializzazione maggiore senza grandi vincoli geografici; dall'altra, l'offerta può specializzarsi di più senza per questo essere eccessivamente penalizzata da una mancanza di clienti interessati in ambito locale.
Conseguenza in prospettiva (estremizzando il concetto): per l'azienda informatica con connotazione prettamente locale vengono meno le condizioni che ne giustificano l'esistenza, mentre la realtà che opera su un territorio più allargato ha più opportunità di vendere servizi più specializzati.
Risultato: aumentando il fatturato con realtà poste al di fuori del territorio locale, le persone aumentano i propri viaggi per effettuare quelle operazioni (dimostrazioni, relazioni sociali, analisi, feedback sul campo) il cui il contatto diretto dà ancora un vantaggio incolmabile da altri media.
Sembra una contraddizione, in realtà non lo è (almeno dal mio punto di vista).
Riprendendo una tradizione un po' persa negli ultimi tempi, ecco un post semi-serio da week-end, sperando che venga interpretato con il giusto spirito goliardico...
Certe decisioni richiedono tempo. Io e Sergio ci abbiamo messo cinque mesi per decidere, una sera durante una maratona di lavoro (iniziata ore prima), che non potevamo fare a meno di ordinare due DasKeyboard (di cui avevo parlato il 10 settembre scorso).
Qualche giorno per riceverle e da circa due settimane non ho più le lettere sui tasti. Qualcuno potrebbe pensare che io scriva questo post per narcisismo (e magari qualche ragione ce l'ha), ma la realtà è di dare le impressioni dopo 2 settimane di tempo.
Il primo giorno è stato magnifico. Avevo paura di non farcela, invece pochi errori e tanta soddisfazione (la meccanica della tastiera è molto buona, niente a che vedere con le tastiere che invadono gli scaffali di supermercati e negozi).
Chiaramente ogni rosa ha le sue spine: come mi aveva anticipato Alessandro, talvolta scrivere certe password sicure (quelle con tanti caratteri strani) non è molto agevole. Un altro effetto imprevisto è che questa tastiera obbliga a una postura più o meno regolare. Provare a digitare con il corpo un po' spostato rispetto al baricentro normale porta a spostarsi di uno o due caratteri a destra o a sinistra, con risultati degni di un algoritmo di cifratura già di un certo livello...
In definitiva, la tastiera "all black" fa la sua figura, estetica e come "status symbol". Spesso è difficile spiegare in cosa consista esattamente il proprio lavoro (ammesso che uno lo sappia), ma è indiscutibilmente "cool" dimostrare la propria indifferenza nell'usare una tastiera priva di serigrafie.
Eccoci quindi pronti a lanciare la nuova moda: dopo aver proclamato l'obsolescenza del programmatore amministratore, dopo aver fatto vendere decine di JasJar (insomma, almeno due di sicuro...) eccoci pronti a lanciare la nuova moda del 2006: dotarsi di una tastiera "all black". Sappiamo di essere almeno in 3 in Italia, vediamo chi si unisce al gruppo.
Chiaramente è possibile partecipare al club anche eliminando le serigrafie dalla propria, senza buttare 80€ per un oggetto che è difficile spiegare alla propria mamma essere un bene privo di difetti, ma si è ammessi al club solo dimostrando di aver eliminato qualsiasi segno di riconoscimento da tutti i tasti. Eventuali fotografie per l'adesione saranno attentamente analizzate da esperti in fotoritocco, quindi occhio alle truffe.
Di tanto in tanto leggo critiche alle novità introdotte da C# 3.0 e da Linq. Si trovano attacchi di vario genere, alcuni basati sulla non conoscenza delle nuove specifiche, altre su elementi più specifici e oggettivi, con un fondamento insomma.
A mio modo di vedere, queste critiche hanno due limiti: a volte sono pregiudiziali (basate da un netto conservatorismo, senza che io consideri questo un fatto negativo a priori, peraltro), quasi sempre non colgono l'aspetto più di prospettiva.
Se osserviamo l'evoluzione e l'adozione dei linguaggi di programmazione neglio ultimi 20 anni, possiamo notare che ci sono fondamentalmente 3 linee di sviluppo principali, escludendo le varie nicchie che, come dicono nel marketing, "non fanno numero".
Le 3 linee che vedo:
- linguaggi procedurali di alto livello: Cobol, Basic e tutti i suoi derivati (ci metto anche VB che pure non sarebbe classificabile qua, anche se lo diventa per l'uso che ne fanno molti programmatori)
- linguaggi di basso livello: C e Assembler, oggi relegati a servizi tanto fondamentali quanto nella cura di pochissimi eletti che si appassionano per accendere e spegnere poche manciate di bit e comprendono ancora la differenza tra byte, Kb, Mb e Gb
- linguaggi object-oriented: C++ e Java, che hanno ereditato tanto da altri mondi ma sono, nei numeri, i due modelli più diffusi
In realtà si dovrebbe aggiungere una nuova categoria, i vari linguaggi di scripting che vanno per la maggiore, anche se mi sembra ancora difficile catalogarli in modo preciso (ve ne sono di molto diversi fra loro).
Il punto centrale del mio ragionamento è il seguente: i linguaggi "fermi" inevitabilmente nel tempo si estinguono; restano per motivi di compatibilità, ma diventano insignificanti nel gioco dei "grandi numeri". Mode a parte, il punto è che i linguaggi evolvono, e lo fanno in maniera tale da aumentare il livello di astrazione del codice rispetto agli strati sottostanti.
Nell'immaginario comune di un programmatore (e di qualche scrittore di fantascienza) c'è la possibilità di "dialogare" con il proprio computer come si farebbe con una persona (possibilmente sveglia). Questo aumento della capacità di astrazione è indispensabile per riuscire a descrivere in meno tempo un problema complesso. Quest'ultima affermazione dovrebbe definire una linea di confine tra l'aumento di produttività dato dalla disponibilità di framework sempre più ricchi e l'aumento di espressività del linguaggio, che consente di descrivere il dominio del problema (in termini di strutture dati e algoritmi) in maniera più concisa ma altrettanto efficace.
Dunque, la considerazione che facevo è che linguaggi come C# 3.0, estensioni (o framework? difficile classificarlo) come LINQ sono tentativi di aumentare il livello di astrazione del linguaggio, provando a fare un salto generazionale. Non si può avere HAL 9000 partendo da un Apple II: qualcosa nel mezzo ci dev'essere e così come sono cambiate le interfacce utente, così sono cambiati i linguaggi (ma ammetto che programmare direttamente in Z80 e 6502 aveva un gran fascino).
Credo che un approccio alle novità più aperto e meno pregiudizievole, seppur dotato di un giusto spirito critico, consenta di valutarne meglio pro e contro. Vale per qualsiasi cosa, anche per un linguaggio di programmazione.
More Posts
Next page »