Tra le varie tappe internazionali, il “RAD Studio XE2 World Tour” ha toccato anche l'Italia, precisamente Milano il 21 settembre e Roma il giorno successivo.
Le novità introdotte in questa versione del tool di sviluppo sono davvero tante, motivo per cui ho pensato di redigere questo reportage per
elencare quelle che – a livello personale e soggettivo – ritengo le innovazioni più interessanti e degne di nota, e magari sciogliere qualche dubbio a coloro che non hanno potuto partecipare, raccontando gli avvenimenti della giornata di presentazione.
2. Introduzione
Al momento in cui scrivo, Embarcadero ha concluso da alcuni giorni il suo tour per mostrare in
giro il mondo la nuova versione di Delphi, o meglio di RAD Studio: XE2.
Tra le varie tappe internazionali, il “RAD Studio XE2 World Tour” ha toccato anche l'Italia,
precisamente Milano il 21 settembre e Roma il giorno successivo.
Le novità introdotte in questa versione del tool di
sviluppo sono davvero tante, motivo per cui ho
pensato di redigere questo reportage per
elencare quelle che – a livello personale e
soggettivo – ritengo le innovazioni più
interessanti e degne di nota, e magari sciogliere
qualche dubbio a coloro che non hanno potuto
partecipare, raccontando gli avvenimenti della
giornata di presentazione.
Il rilascio di XE2 ha senz'altro ravvivato l'interesse di molti sviluppatori: la presentazione a cui
ho assistito è quella tenutasi a Milano, che ha visto la presenza di oltre 200 persone, a cui si
aggiungono circa altri 100 sviluppatori che hanno partecipato all'appuntamento di Roma
previsto per il giorno dopo.
Opening
La presentazione di Milano si è aperta con il benvenuto di Fabrizio
Bitti (bitTime Software, rappresentanza italiana di Embarcadero), che
ha introdotto la numerosa platea ai contenuti della giornata e ha
preannunciato alcuni eventi imminenti rivolti in modo particolare agli
sviluppatori Delphi.
In una battuta ironica, ma reale, Fabrizio ha definito XE2 come «la
migliore versione di sempre», grazie a tutte le nuove feature
presentate di lì a breve.
Fabrizio ha ricordato inoltre la possibilità, introdotta di recente da
Embarcadero, di conseguire la Delphi Certification, disponibile nei
livelli Developer (che può essere ottenuta online ed è in offerta
gratuitamente per chi acquista una licenza) e Master (che invece
richiede la propria presenza fisica presso un centro di formazione
autorizzato). Maggiori informazioni a riguardo si possono trovare alla
pagina ufficiale sul sito Embarcadero
(http://www.embarcadero.com/certification).
A fine ottobre si terrà inoltre ITDevCon, la terza edizione della
European Delphi Conference italiana, con diverse sessioni (di durata
più lunga rispetto al passato) organizzati in più “track” tematiche, e
senz'altro XE2 sarà uno dei protagonisti principali. Tutte le
informazioni sull'evento, che avrà luogo a Verona il 27/28 ottobre, si trovano sul sito ufficiale
(http://www.itdevcon.it).
Pubblicato il 07/10/11
3. Dopo aver preannunciato la disponibilità in palio di una licenza premio di RAD Studio Architect
sorteggiata tra i partecipanti al termine della giornata, Fabrizio ha “passato la palla” a Jason
Vokes, Director of Technologies and Marketing presso Embarcadero, per il “keynote” iniziale.
Jason Vokes: Keynote
Jason Vokes ha iniziato il “keynote” illustrando gli obiettivi
prefissati nella realizzazione di XE2: portare RAD Studio a
raggiungere la maggior parte delle piattaforme attive ad oggi.
Con XE2 è possibile produrre veloci applicazioni native non solo
per Windows, ma anche per Mac OSX, per il Web e per le
piattaforme Mobile, con l'opportunità di scrivere la propria
applicazione una sola volta e compilarla su diverse piattaforme
e su più dispositivi (come smartphone e tablet) di uso
quotidiano.
Esistono parecchi linguaggi che consentono di sviluppare
applicazioni crossplatform, ma pochi possono contare su una gamma di funzionalità RAD pari a
quelle fornite dall'ambiente Delphi, data rich e component based.
Nonostante l'ambiente fornisca tool per lo sviluppo rapido di applicazioni, come per le versioni
precedenti, anche XE2 consente di scendere nei dettagli architetturali della piattaforma (come
avviene con l'uso delle API, delle strutture, dei tipi di dati dei messaggi Windows nella VCL) pur
senza rimanere necessariamente legati ad essi. Per dirla con le parole di Jason, «you can get
down to the metal, without being tied to it».
I programmi ottenuti con XE2 hanno sempre le eccellenti performance tipiche che ci si aspetta
dalle applicazioni native prodotte dai compilatori Delphi e C++.
A proposito della VCL, è stata introdotta la possibilità di compilare applicazioni a 64 bit per
Windows e il supporto ai VCL Styles, un sistema che consente di gestire diversi stili grafici per i
principali controlli visuali delle applicazioni, rendendole più moderne e accattivanti. Di queste
nuove caratteristiche della libreria VCL si parlerà in dettaglio, con dimostrazioni ed esempi
pratici, nelle sessioni successive.
La novità più interessante, che ha suscitato un discreto
“rumore” sin da prima dell'inizio del “world tour” di
Embarcader, è l'avvento di FireMonkey, definita come la
piattaforma per applicazioni business della prossima
generazione. Si tratta di una libreria grafica vettoriale che permette di creare applicazioni 2D
(dette anche “HD”, da High Definition) e 3D.
Le applicazioni realizzate con FireMonkey (spesso abbreviato con FMX) sono native e sfruttano
la potenza e le prestazioni messe a disposizione delle attuali GPU.
La libreria mette a disposizione una suite completa di controlli visuali per lo sviluppo delle
applicazioni. I controlli visuali della libreria sono inoltre componibili: ciascun controllo può
essere inserito all'interno di un altro, realizzando architetture UI difficili e complesse da
ottenere con l'attuale VCL, ad esempio introducendo elementi di tipo eterogeneo, come
pulsanti e caselle di testo, all'interno di una ListBox. La gamma dei controlli a disposizione è
particolarmente ricca se confrontata con la dotazione di base di altre librerie simili, come WPF
(Windows Presentation Foundation), ma tramite la loro composizione è possibile ottenere una
serie pressoché infinita di combinazioni di controlli più avanzati.
4. Qualsiasi elemento grafico di FireMonkey, la cui gestione viene affidata alla GPU lasciando
molto più scarica e disimpegnata la CPU, è vettoriale: le dimensioni, le posizioni e gli effetti
applicati scalano correttamente applicando uno zoom e hanno bordi sempre definiti. A
proposito di effetti, la libreria FireMonkey include una pletora di componenti pronti all'uso in
grado di fornire animazioni, trasformazioni, filtri, applicabili a qualsiasi controllo grafico
relativamente a proprietà quali posizione, dimensioni e contenuti a seconda dei casi, senza la
necessità di scrivere nemmeno una riga di codice. Con FireMonkey, usando le parole di Jason,
«you can build the app of your dreams».
Ma le novità introdotte da XE2 non si fermano alla sfera grafica: grazie al potenziamento della
libreria dbExpress (che ora include anche un driver ODBC), dell'architettura DataSnap ancora
più funzionale, all'introduzione della tecnologia LiveBindings (di cui si parlerà in seguito), XE2
garantisce possibilità illimitate di connettività a qualsiasi database e data service, anche di
propria produzione, non solo per la VCL ma anche per FireMonkey, approdando su altre
piattaforme e consentendo quindi di creare applicazioni che si connettono sempre e ovunque a
qualsiasi origine dati. XE2 include inoltre nuovi strumenti per lo sviluppo di applicazioni
multitier e consente di generare proxy nativi (detti “connector”) dei vostri server DataSnap
per la maggior parte dei linguaggi esistenti (Delphi, C++, JavaScript, Java, Android, Objective-C),
pronti per essere importati all'interno dei progetti realizzati con questi linguaggi, da voi o da
altri collaboratori.
Infine, Jason ha presentato le nuove caratteristiche di RadPHP, il tool per lo sviluppo di
applicazioni Web in RAD Studio XE2, che include nuovi componenti dedicati al mondo mobile e
l'integrazione con PhoneGap, uno strumento che consente di portare applicazioni Web (basate
quindi sugli standard HTML, JavaScript e CSS) all'interno di dispositivi mobili come iPhone e
Android ed eseguire - come se fossero native – le applicazioni con pieno accesso all'API e alle
risorse del dispositivo, come il GPS o la fotocamera, per intenderci.
Infine, Jason ha sottolineato anche il valore aggiunto dai numerosi componenti di terze parti,
che arricchiscono ulteriormente le opportunità offerte dai tool e dalle librerie della suite.
Marco Cantù: FireMonkey
Nella sessione successiva, Marco Cantù ha
approfondito dal punto di vista tecnico,
aiutandosi con alcuni demo autoprodotti, le
caratteristiche della nuova libreria
“FireMonkey”.
Come già detto, FireMonkey è una nuova libreria
per lo sviluppo di applicazioni che, a differenza
della VCL, non è simbiotica con Windows; ha
parecchie somiglianze con altre librerie anch'esse
conosciute quali WPF (Windows Presentation
Framework) e il fratello minore Silverlight, oppure
Adobe Flex, ma FireMonkey è nativa e compilata,
è crossplatform e viene fornita con sorgenti, a differenza della concorrenza.
La libreria è “GPU powered”: tutta la gestione grafica avviene senza consumare CPU (e questo
è facilmente riscontrabile scaricando i numerosi demo a disposizione, compilandoli e
lanciandone più istanze contemporaneamente, monitorando l'uso della CPU con il Task
Manager).
5. I wizard disponibili consentono di creare nuovi progetti di applicazioni 2D (o HD) e 3D, ma le
due modalità grafiche non sono in mutua esclusione: è possibile integrare contenuti 2D in
applicazioni 3D, e viceversa, utilizzando appositi pannelli.
FireMonkey è una libreria astratta: gli elementi visuali non sono wrapper dei controlli di
Windows, non fanno riferimento a handle di alcun tipo, ma vengono completamente disegnati
nelle loro parti costituenti, e quindi sono indipendenti da qualsiasi piattaforma specifica, pur
consentendo – grazie al supporto degli stili – di adottare il “look & feel” del sistema di
riferimento.
FireMonkey è una libreria nativa e compilata: le applicazioni sono eseguibili senza bisogno di
runtime di supporto, senza dipendenze e senza vincoli sulla piattaforma di destinazione scelta
(caratteristiche che la rendono ottimale soprattutto sui dispositivi mobili), e sono in grado di
adattarsi e sfruttare le risorse grafiche messe a disposizione dalla libreria GPU presente
(OpenGL, DirectX, Quartz e altre).
Cantù ha successivamente creato un'applicazione dimostrativa usando l'apposito wizard per
mostrare alla platea alcune delle peculiarità di Firemonkey, soprattutto laddove vi sono
diversità rispetto alla libreria VCL che tutti conosciamo.
Innanzitutto, ciascun controllo – partendo dal più banale e semplice dei pulsanti, ad esempio –
in realtà è composto da diversi elementi grafici, quali il rettangolo che ne costituisce il bordo, il
testo contenuto al suo interno, la sfumatura del colore di riempimento e gli effetti applicati al
passaggio del mouse sull'area del controllo; da qui si comprende la vera potenza della libreria in
termini di manipolazione e complessità delle interfacce utente che si possono costruire,
potendo comporre liberamente tra di loro tutti gli elementi grafici, partendo da quelli primitivi
sino ad arrivare a quelli più complessi forniti “di serie”, in modi assolutamente inarrivabili - se
non con pratiche complicatissime di subclassing e custom drawing estremo – con la libreria VCL.
In FireMonkey, le proprietà che determinano la posizione e la dimensione dei controlli sono
espresse con valori in virgola mobile, e non interi, a cui si aggiungono ulteriori proprietà quali la
rotazione e, nel caso del 3D, la profondità. Tutti i controlli che compongono l'interfaccia utente,
inoltre, sono perfettamente scalabili e “zoomabili” senza perdere minimamente qualità visiva,
mantenendo eccezionali effetti di antialiasing nei bordi e sfumature all'interno dei controlli,
senza alcuno sforzo (da qui la definizione di applicazioni HD, da High Definition).
Rispetto allo sviluppo con la libreria VCL, viene mantenuta la “logica Delphi” a cui siamo
abituati con l'utilizzo dei tipi e delle funzioni della RTL (Run Time Library) e gran parte dei
componenti, tra cui quelli per l'accesso ai dati; ciò che cambia completamente è la famiglia dei
controlli visuali adottata per creare l'interfaccia utente (UI).
Qualsiasi elemento di FireMonkey, che sia separato o incluso in una composizione, può essere
“stilizzato”: esiste una finestra integrata nell'IDE che consente di personalizzare tutti gli stili
della propria applicazione e di crearne di nuovi, applicandoli agli elementi dell'interfaccia
utente.
Per quanto riguarda l'accesso ai dati, è LiveBindings a venire in soccorso dello sviluppatore: si
tratta di un sistema basato su espressioni che permette di correlare due oggetti tra loro, o
meglio le loro proprietà. Di questa nuova risorsa, fruibile anche nelle applicazioni VCL, si parlerà
in modo approfondito nella sessione seguente. Per il momento, è sufficiente sottolineare che,
attraverso l'uso di componenti dedicati che semplificano il lavoro, il collegamento ai dati (data
binding) all'interno di un'applicazione FireMonkey è facile tanto quanto quello tradizionale, se
non di più.
Infine, è stato mostrato il demo di un'applicazione 3D realizzata con FireMonkey. Anche se
6. l'uso del 3D può apparire come adatto esclusivamente a tipi molto particolari e settoriali di
applicazioni, in realtà il suo utilizzo permette di ottenere effetti ben difficilmente riproducibili
in 2D. Si pensi alla visualizzazione consecutiva di immagini differenti e al diverso effetto che si
può ottenere passando da un'immagine all'altra con una rotazione rispetto al cambio repentino
che si ottiene con un normale controllo TImage della VCL.
Per concludere, una precisazione doverosa fatta da Marco e Jason in merito al “destino” della
libreria VCL. Come ha detto Jason, «VCL is here to stay»: la libreria FireMonkey non va intesa
come un rimpiazzo della VCL, né come l'intenzione di abbandonare quest'ultima, che
continuerà ad essere supportata fino a quando esisterà la piattaforma nativa Windows su cui si
basa, tant'è vero che in XE2 sono state aggiunte interessanti feature alla VCL, anch'esse tra i
temi della giornata. Ciò che si può effettivamente dire è che con FireMonkey si aprono nuovi
scenari, l'approdo a nuovi tipi di piattaforme e dispositivi, sia nel presente che nel futuro e la
possibilità di concepire e realizzare interfacce utente di nuova generazione.
Daniele Teti: supporto a 64 bit e “VCL Styles”
La sessione successiva, tenuta da Daniele Teti, si è
concentrata su quella che fino a pochi giorni prima era
considerata la feature principale, la più annunciata e la
più attesa da molti sviluppatori, anche se l'arrivo di
FireMonkey le ha lecitamente sottratto un po' di
curiosità: il supporto a Windows 64 bit.
Nella maggior parte dei casi, attivare il supporto alla
piattaforma 64 bit in un progetto Delphi è
un'operazione semplicissima: è sufficiente fare clic
con il tasto destro su Target Platforms nella finestra
del Project Manager, scegliere “64-bit Windows” nella
finestra di dialogo che viene mostrata e ricompilare
l'applicazione.
Tuttavia, come è avvenuto nel precedente passaggio a Unicode con Delphi 2009, vi sono
trabocchetti e situazioni dove è necessario un intervento di modifica del codice affinché il
codice sorgente si compili e funzioni correttamente.
Non ripetero qui tutti i dettagli delle operazioni da seguire, delle cose che cambiano e di quelle
che rimangono uguali nel passaggio da Win32 a Win64, per cui mi limito ad alcune osservazioni
della presentazione degne di nota, rimandando al sito ufficiale di Embarcadero per
l'approfondimento dei dettagli, nella sezione appositamente dedicata ai 64 bit
(http://www.embarcadero.com/products/delphi/64-bit).
Il supporto a Windows 64 bit è stato introdotto per la VCL ma è disponibile – ovviamente –
anche per FireMonkey, assieme al supporto per Win32 e a quello per Mac OSX e iOS.
Per la libreria VCL, XE2 propone un'altra nuova e interessante feature. Sino a ieri, applicare stili
grafici a un'applicazione VCL era possibile esclusivamente tramite componenti di terze parti
oppure attraverso complicati “workaround”. Oggi questo non è più necessario, poiché la
libreria VCL dispone di un supporto standard a stili personalizzati (custom), denominato VCL
Styles.
Il nuovo sistema di supporto ai temi sostituisce il precedente sistema (incentrato solo sul “look
& feel” di Windows) introducendo un engine configurabile che permette di applicare stili ai
controlli visuali (nella gerarchia VCL, a partire dalla classe TGraphicControl), con sole
7. poche eccezioni, come i menu di popup, i “Ribbon Controls” e le finestre di dialogo fornite dal
sistema operativo.
Nella finestra delle opzioni del progetto è disponibile una nuova voce, “Appearance”, che
consente di selezionare un tema fra quelli disponibili e forniti assieme al prodotto, a cui se ne
possono aggiungere altri creati ex novo.
Tramite un tool integrato nell'IDE, VCL Style Designer, è possibile andare a definire l'aspetto dei
controlli con una precisione chirurgica, con l'opportunità di esportare una immagine pronta
all'uso che contiene la rappresentazione grafica dei controlli e che può essere modificata
attraverso un programma grafico esterno (es. Photoshop) e reimportata per creare una gamma
infinita di nuovi stili, in grado di dare un aspetto del tutto rinnovato e accattivante
all'applicazione.
Esistono poi classi specifiche che consentono di accedere e caricare a runtime diversi temi; in
questo modo, all'occorrenza, si può decidere di creare e distribuire un'applicazione che
supporta diversi stili grafici selezionabili a piacimento da parte dell'utente finale.
Anche la libreria RTL ha visto l'introduzione di novità in XE: sono presenti nuove classi, come
TOSVersion (che fornisce informazioni dettagliate sull'ambiente operativo in cui viene eseguita
l'applicazione, molto utile nell'ambito crossplatform), TLoginCredentialService (un sistema
astratto di gestione delle credenziali), TZipFile (una classe per la gestione di file ZIP, che ha la
peculiarità di essere anch'essa crossplatform) e altre ancora.
Daniele Teti: LiveBindings
A seguire, la presentazione di Daniele Teti
dedicata interamente a una delle novità più
interessanti di XE2: LiveBindings.
LiveBindings è una tecnologia fruibile sia nelle
applicazioni VCL sia in quelle basate su
FireMonkey.
Ma che cos'è esattamente? Si tratta di una
feature che si basa su espressioni relazionali,
chiamate binding expression, che mettono in
comunicazione tra loro oggetti, oppure
componenti.
Ad esempio, tramite LiveBindings è possibile definire un'espressione che collega due controlli
visuali, una casella di testo (TEdit) a un'etichetta (TLabel), in modo che al variare del testo
inserito nella casella l'etichetta venga automaticamente aggiornata con il valore presente nella
casella. Ciò avviene aggiungendo la chiamata a un semplice metodo, Notify(), quando varia
il contenuto nella casella di testo, affinché Delphi possa ricalcolare il valore dell'espressione e
aggiornare il controllo di destinazione, cioè l'etichetta.
Ovviamente, questo è solo un esempio – forse il più semplice – del meccanismo di
funzionamento di LiveBindings, ma le possibilità offerte da questo nuovo sistema integrato in
Delphi sono ben più ampie. E' possibile collegare controlli a un database o a un'altra origine
dati, utilizzando i componenti preposti a questo scopo.
In generale, LiveBindings mette a disposizione diversi componenti che consentono nella
sostanza di definire espressioni a designtime affinché vengano valutate a runtime.
8. L'impossibilità di risolvere un'espressione a runtime da luogo a un'eccezione.
L'introduzione di LiveBindings, oltre a rappresentare un efficace meccanismo di data binding in
FireMonkey (dove non sono presenti controlli specificatamente data aware), apre nuovi scenari
alle nostre applicazioni, poiché le espressioni possono rappresentare una parte consistente di
business logic. Si pensi ad esempio a una maschera che effettua il calcolo del prezzo di più
prodotti moltiplicato per la loro quantità e il totale complessivo: con LiveBindings si potrebbero
introdurre tutte le espressioni che correlano i valori mostrati e sarebbe sufficiente informare il
sistema del cambiamento di uno o più valori per calcolare e aggiornare automaticamente gli
altri e mostrarli a video, analogamente a quanto avviene in un foglio elettronico. Oppure
ancora, tali espressioni potrebbero essere caricate a runtime da un file esterno, offrendo
opportunità di personalizzazione interessanti alle applicazioni di tipo gestionale e affini,
personalizzabili anche dall'utente finale, o in strumenti dedicati al test.
Marco Cantù: RAD Cloud API e novità di DataSnap
Come nell'edizione precedente, XE2 include i
componenti per l'accesso ai servizi cloud,
che forniscono applicazioni e dati on demand
(al consumo), come Microsoft Azure
(http://www.microsoft.com/windowsazure)
o Amazon Web Services
(http://aws.amazon.com).
La novità in termini di connettività al cloud,
presentata da Cantù, risiede
nell'introduzione di una serie di classi comuni
che consentono di astrarre le operazioni che
possono essere eseguite sul cloud,
indipendentemente dal tipo di service
effettivo a cui ci si collega: tali classi costituiscono la nuova “RAD Cloud API”.
Attraverso questa API, è possibile creare applicazioni basate sul cloud rimandando la scelta
dello “storage” effettivo a un secondo momento, quindi astraendolo nel corso dello sviluppo.
Embarcadero ha introdotto inoltre un tool per il debug su cloud e per il deploy remotizzato
delle applicazioni, che consente di gestire anche il rilascio di risorse e dei driver utilizzati.
Queste feature, non presenti in altri ambienti di sviluppo, rendono XE2 un tool particolarmente
innovativo dal punto di vista del supporto al
cloud, per estensione delle piattaforme
supportate, delle librerie e più in generale degli
strumenti a disposizione.
Nell'ambito delle architetture multitier, anche
DataSnap è stato potenziato con l'introduzione
del supporto al monitoraggio e controllo delle
connessioni TCP, molto utili in fase di
diagnostica di possibili problemi e di amministrazione del server, che sfrutta una nuova
gestione irrobustita delle connessioni, a cui si aggiunge la possibilità di attivare un meccanismo
keep-alive, di sfruttare nuovi filtri per encryption e security, di sfruttare un Session Manager più
evoluto e un supporto a JSON migliorato rispetto alla versione precedente. DataSnap
introduce inoltre i DataSnap Mobile Connectors, trattati ampiamente nella sessione successiva.
9. Daniele Teti: DataSnap Mobile Connectors
Alle funzionalità migliorate ed estese di DataSnap è stato affiancato un insieme di generatori di
proxy, specificatamente rivolto alle piattaforme mobile, in grado di produrre il codice di una
classe proxy del proprio server DataSnap personalizzato nei linguaggi più diffusi (ad esempio,
Objective-C per iOS, C# per Windows Phone 7 Silverlight, Java per Android e Blackberry).
Con il supporto del componente DSProxyDispatcher e del
tool “Win32ProxyDownloader”, richiamato con parametri
specifici (che definiscono le “coordinate” per l'accesso al
server DataSnap e il linguaggio di destinazione), è
possibile creare una cartella che conterrà i file sorgenti ed
eventuali runtime pronti ad essere utilizzati direttamente
nello sviluppo dell'applicazione con uno degli ambienti e
dei linguaggi di programmazione elencati sopra.
A mio parere, si tratta di una feature di estrema utilità per chi sviluppa tradizionalmente logiche
server in Delphi ma adotta anche altri ambienti e linguaggi per la creazione di applicazioni su
dispositivi mobili (ad esempio, per coloro che utilizzano Eclipse con Android SDK per lo sviluppo
di programmi sui dispositivi che montano il noto e sempre più diffuso sistema operativo
Google), facilitando ulteriormente l'integrazione di Delphi con altre tecnologie, prodotti,
librerie e framework esistenti, quindi valorizzando ancora di più il proprio server nativo
DataSnap.
Per illustrare il funzionamento dei proxy generator, i presenti dotati di smartphone Android
hanno partecipato alla dimostrazione scaricando “CompanyTweet”, un'applicazione che invia
messaggi brevi, simili a “tweet”, a un server DataSnap in grado di raccoglierli e mostrarli su
grande schermo. La presentazione si è conclusa con un “feedback vibrante” inviato dal server
DataSnap a tutti i cellulari connessi.
Conclusione
La giornata di presentazione, davvero
ricca di contenuti, si è conclusa con il
consueto “giro” di domande e risposte
finali, premiate con simpatici gadget
(una maglietta e un portachiavi targate
“FireMonkey”). Molti quesiti sono stati
particolarmente specifici e riferiti a
esigenze estremamente soggettive,
quindi riporto solamente quelli che, a
mio avviso, hanno riguardato interessi
di carattere più generale.
Un paio di domande hanno sondato le tempistiche previste per il rilascio di compilatori per
Linux e Android: Jason Vokes ha risposto che l'intenzione di abbracciare queste piattaforme
c'è, con particolare riferimento ad Android, ma al momento non vi sono date certe della loro
disponibilità.
Altri partecipanti hanno espresso preoccupazioni in merito al destino della VCL a fronte
dell'avvento di FireMonkey, senza usare mezze parole: «la VCL farà una brutta fine?». La risposta
di Jason è stata negativa, in quanto la piattaforma a cui fa riferimento la libreria VCL (cioè la
Windows API in generale, a 32 e 64 bit) esiste e continuerà ad esistere ancora per parecchi anni.
10. FireMonkey è semplicemente la proposta a disposizione di coloro che vogliono espandere il
business delle proprie applicazioni.
Altri sviluppatori hanno chiesto chiarimento in merito allo stato dei tool di reportistica presenti
in XE2. In questo senso, ci sono delle interessanti novità: oltre alla presenza del classico RAVE
Reports, che rimpiazza da anni il precedente QuickReport, all'interno del tool di sviluppo è
inclusa anche una versione di FastReport VCL, assieme a tutti gli altri tool di terze parti già
introdotti nella linea XE, come AQTime, Beyond Compare, CodeSite, FinalBuilder, per citarne
alcuni tra quelli più coinvolti nell'uso quotidiano dell'ambiente di sviluppo.
Considerazioni finali
Aggiungo alcune considerazioni del tutto personali alla giornata di presentazione e ai suoi
contenuti.
Innanzitutto, ritengo un fatto assolutamente positivo, sia per il prodotto sia per la sua
community di sviluppatori, tutte le novità che Embarcadero ha inserito in questa nuova release:
finalmente Delphi torna a far parlare di sé e fornisce agli sviluppatori che decidono di utilizzarlo
nuove e importanti argomentazioni per giustificare la propria scelta, aumentando le
caratteristiche già peculiari del prodotto e “strizzando l'occhio” (in modo abbastanza
energico, per la verità) a nuove piattaforme a cui è possibile espandere il proprio mercato.
Dopo alcuni anni di (relativa) stagnazione, intesa come mancanza di novità eclatanti
(probabilmente causata dalla migrazione faticosa da Borland a CodeGear, poi a Embarcadero)
finalmente si inizia a vedere e toccare con mano il frutto degli investimenti dichiarati in ogni
sede.
Il rilascio di questa versione ha prodotto inoltre parecchio fermento tra i blogger abituali che
espongono quotidianamente le proprie esperienze di sviluppo con Delphi, a cui se ne sono
aggiunti tanti altri che hanno iniziato a produrre articoli di sicuro interesse raccontando i
risultati delle proprie ricerche sulle nuove caratteristiche di XE2, o per avanzare le prime critiche
costruttive a difetti riscontrati o a integrazioni che ritengono indispensabili. Nuovi gruppi si
sono poi formati su vari social network, ad esempio su Facebook, per discutere delle novità o
per cercare aiuto immediato, in attesa di vedere pubblicata nuova manualistica e
documentazione per poter apprendere in modo più “accademico” il funzionamento dei tool
messi a disposizione dalla nuova release. Persino i vetusti “newsgroup” hanno ripreso a
discutere maggiormente rispetto al passato.
In conclusione, XE2 si rileva un'ottima release in grado di risvegliare l'interesse di coloro che
lavorano con Delphi, e magari “costringere” qualcuno a migrare finalmente dal proprio Delphi
7; oltre a questo, XE2 ha senz'altro tutte le carte in regola per cominciare a incuriosire e
attrarre anche quelli che utilizzano abitualmente altri tool di sviluppo, soprattutto laddove
questo avviene per una sorta di “pregiudizio disinformato” nei confronti di Delphi, del suo
linguaggio e delle potenzialità di tutto rispetto che invece è in grado di offrire.
Lunga vita a Delphi! (da oggi, non più solo su Windows)
11. Informazioni sull'autore
Marco Breveglieri
Software & Web Developer
Sono responsabile legale di ABLS Team, un’azienda di consulenza
informatica che si occupa di sviluppo software, realizzazione di siti
Web, corsi su linguaggi di programmazione e tecnologie correlate,
installazione e configurazione di reti aziendali, networking, Office
Automation e altri servizi informatici rivolti ad aziende e utenti
finali.
Io mi occupo in modo particolare dello sviluppo di software per
Microsoft Windows e .NET Framework, della creazione e design di siti Web e
dell’organizzazione di corsi di programmazione (principalmente su Delphi e C#/VB.NET).
Per contattarmi,
www.marco.breveglieri.name
Ringraziamenti
Si ringrazia Paolo Rossi per le fotografie.