Firemonkey dal semplice al complesso. Cos'è FireMonkey? mancanza di supporto per la personalizzazione delle classi native

Cos'è FireMonkey?


FireMonkey (FMX) è un framework per lo sviluppo multipiattaforma sia per sistemi desktop (Windows, Mac OS + supporto server su Linux è previsto nel prossimo futuro) che mobili (iOS e Android) utilizzando il linguaggio Delphi/C++.

Peculiarità:

  • base di codice unica per tutte le piattaforme;

  • qualsiasi controllo (componente visivo) può essere un contenitore (genitore) per altri componenti;

  • la presenza di una disposizione relativa molto avanzata (20 tipologie) dei componenti sul form;

  • LiveBinding permette di collegare qualsiasi tipo di dato o informazione a qualsiasi interfaccia utente o oggetto grafico;

  • presenza di stili di forma/componente;

  • L'anteprima multi-dispositivo ti consente di personalizzare la presentazione visiva per ciascuna piattaforma;

  • FireUI Live Preview: mostra l'aspetto dell'applicazione su dispositivi reali in tempo reale.

Possibilità:

  • utilizzo delle API native di ciascuna piattaforma, nonché la possibilità di richiamare librerie native di terze parti;

  • interazione con tutti i sensori (GPS, Accelerometro, Bussola, Bluetooth (incluso LE) e altri);

  • supporto per notifiche push, IoT;

  • supporto per richieste HTTP asincrone;

  • supporto per la maggior parte dei database (MsSQL, MySql, Oracle, PostgreSQL, MongoDB, ecc.);

  • lavorare con il servizio cloud (Amazon, Azure);

  • Supporto del servizio Android.

Contro (attualmente):

  • mancanza di supporto per la personalizzazione delle classi native;

  • l'implementazione di cose specifiche è impossibile (widget, estensioni (iOS), ecc.) oppure è necessaria una danza con un tamburello (servizio in background, messaggio trasmesso, ecc.);

  • La personalizzazione della schermata iniziale (schermata iniziale) è, per usare un eufemismo, carente;

  • I controlli FMX utilizzano il proprio rendering (visualizzazione, disegno), che è puramente visivamente simile a quello nativo;

  • l'uso di controlli nativi comporta ampi movimenti del corpo;

  • quando c'è molto annidamento di componenti, accadono cose incredibili: l'applicazione si blocca in vari punti, perde il focus, si blocca, ecc.;

  • il contenuto informativo del debug di un'applicazione su piattaforme mobili è pari a zero;

  • le descrizioni degli errori su piattaforme mobile si riducono all'inutile “Errore 0x00000X”;

  • il tempo di compilazione vuole essere il migliore per progetti di medie e grandi dimensioni;

  • la necessità di utilizzare un file per perfezionare le applicazioni mobili per ciascuna piattaforma;

  • nessun supporto per l'architettura Intel Atom;

  • prezzo inadeguato rispetto ai concorrenti.

Professionisti:

  • sviluppo molto attivo sia del prodotto che della comunità ultimamente, supporto per sempre più nuove tecnologie;

  • la presenza di un numero enorme di componenti gratuiti e commerciali;

  • La velocità dell'applicazione è molto vicina a quella nativa;

  • editor visivo e ambiente in generale molto avanzati, presenza di stili;

  • la possibilità di testare un'applicazione su Win e solo successivamente distribuirla sui dispositivi, il che accelera notevolmente lo sviluppo;

  • cambiare modalità/piattaforma con un semplice movimento del polso;

  • PAServer fornisce una facile interazione con MacO durante lo sviluppo per il sistema operativo Apple;

  • Supporto grafico 3D pronto all'uso.

In conclusione, voglio dire che negli ultimi due anni FireMonkey è diventato uno strumento professionale per lo sviluppo multipiattaforma di applicazioni aziendali e altro ancora. Molte carenze vengono gradualmente risolte e con ogni rilascio il prodotto diventa più moderno e autosufficiente, e scompare anche lo scetticismo esistente nei confronti del linguaggio Delphi stesso, associato a molti anni di stagnazione. Scrivere nuovi progetti in FireMonkey è "sicuro" e promettente.

Rilasciato nel settembre dello scorso anno, Delphi XE2 contiene un numero record di innovazioni.
Brevi panoramiche delle capacità di Delphi XE2 sono già state pubblicate su Habré. Ma, ovviamente, l'innovazione più sorprendente è la piattaforma FireMonkey, e qui vorrei prestarvi un po' di attenzione.
Ho fatto una piccola selezione di link a materiali che, spero, ti aiuteranno a farti un'idea più o meno adeguata di questa piattaforma. Ma prima, per chi non lo sapesse, vi dirò brevemente cos'è FireMonkey.
Embarcadero Technologies posiziona FireMonkey come piattaforma per la creazione di ricche applicazioni aziendali per Windows, Mac e iOS. Inoltre, questa piattaforma è nativa per ciascun sistema operativo, ad es. Quando si esegue un'applicazione creata utilizzando FireMonkey, non vengono utilizzati componenti aggiuntivi aggiuntivi.
FireMonkey si collega direttamente a una libreria grafica nativa (dal punto di vista del sistema operativo) come OpenGL o DirectX. Pertanto, viene proposta la soluzione migliore dal punto di vista della GPU.
Il nucleo dell'architettura FireMonkey è una potente libreria di classi (inclusi componenti visivi).
La piattaforma di destinazione viene selezionata durante il processo di compilazione.
La prima versione di FireMonkey supportava solo Win32, Win64, MacOSX e iOS, ma Embarcadero prevede di portarlo su molte altre piattaforme in futuro.

Cosa dovresti considerare?

Sebbene la piattaforma FireMonkey fornisca strumenti estesi per lo sviluppo di applicazioni 3D, non dovrebbe essere considerata un motore di gioco. FireMonkey è posizionato specificamente come piattaforma per lo sviluppo di applicazioni aziendali.
Il prodotto è attualmente nelle fasi iniziali della sua evoluzione. E molti funzionalità FireMonkey sta subendo cambiamenti, sia qualitativi che quantitativi.

Spero che i link sottostanti ti aiutino a comprendere le principali caratteristiche della nuova piattaforma.
Pagina ufficiale del prodotto sul sito web di Embarcadero (russo)

Tra il materiale in lingua inglese vorrei evidenziare la serie (inglese)

Cosa guardare?

Riguardo ultima versione Delphi, c'è più materiale video dedicato alle funzionalità del prodotto e a come lavorarci che mai. Entrambi ufficiali, di Embarcadero e di sviluppatori indipendenti. Ci sono molti video su FireMonkey su YouTube, puoi semplicemente usare la ricerca. Tra questa abbondanza di materiale, metterò in evidenza una serie di tre video dalla landing page di Marco Cantu - RAD in Action, dando così alla mia ricerca un vettore di utilità.

Probabilmente sei consapevole che Embarcadero sta promuovendo attivamente la sua nuova visione di creare una GUI multipiattaforma: FireMonkey ( lo chiamano framework, ma per il suo stato attuale sembra troppo bello). Su RuNet vengono annunciati un concorso dopo l'altro, si tengono webinar e, sebbene la qualità di questi ultimi lasci molto a desiderare, l'attività è incoraggiante. Ora, in realtà, veniamo all'argomento. Nell'ambito dell'ultimo concorso, è stato proposto di sviluppare una sorta di applicazione per l'apprendimento. E ieri è apparsa un'altra opera scritta da Evgeniy Chmel ( Non so se questo cognome sia propenso o meno). A differenza di quelli semplici “one-form” visti prima, qui si è tentato di tirare la scimmia per tutti gli arti: stilizzazione, 3D, effetti shader ( Gli evangelisti di Embarcadero adorano parlare di grafica accelerata dalla GPU :))). Vediamo cosa ne è venuto fuori. Per chi non ha seguito i webinar farò una piccola digressione. In uno dei webinar, l'evangelista dell'Embarcadero Vsevolod Leonov ha raccontato una storia straziante su come ha dovuto "riavviare il computer, in particolare, con forza" (questa è una citazione) a causa del fatto che Silverlight SDK e Emulatore di Windows Il telefono 7 “non funzionava” (questa è una citazione) sul suo computer perché... Non gli piaceva l'adattatore video o le impostazioni della GPU. Ma le applicazioni sviluppate con FireMokey, continua Vsevolod, non sono affatto impegnative hardware. Vediamo come ci ha mentito. Process Explorer v15.05 di Mark Rusinovich sarà il nostro testimone imparziale. Quindi, scarica l'applicazione di Evgeniy e avvia ( Non fornisco screenshot dell'applicazione di Evgeniy, sono disponibili al collegamento al suo lavoro. Nota i caratteri sfocati).

Avviata l'applicazione. Consideriamo i consumi:

Immodesto, ma puoi perdonare” tecnologia avanzata" Vai alla sezione “Lezioni” e seleziona “Lezione 5”. Inizia la preparazione della scena. Questo processo è lungo ( Mi ci è voluto poco più di un minuto, su un Phenom II quad-core con una frequenza di 3,3GHz), essere pazientare. Il palco è costruito. Consideriamo i consumi:

La scimmia era ben nutrita. Ottimo. Ora prova a spostare il mouse sui pulsanti delle opzioni di risposta. Sembra che la GUI reagisca molto lentamente, non è vero? Guarda il grafico sull'utilizzo della CPU ( Voglio dire, dovresti provarlo tu stesso, sul tuo computer) – in questi momenti il ​​suo carico si avvicina al 100% ( Avevo circa il 21,5% per un processore quad-core, che equivale all'86% per un processore single-core). Ma qualcuno ci ha parlato della grafica accelerata dalla GPU. Ok, andiamo avanti. Rispondiamo a tutte le domande della lezione. Consideriamo i consumi:

I tuoi occhi sono spalancati? Ora guarda, per confronto, quanto consuma lo sparatutto 3D FarCry con il gameplay attivo ( il livello si chiama Factory, se a qualcuno interessa) in esecuzione in modalità a schermo intero 1440x900:

Trai le tue conclusioni.

Sono passati più di tre anni da quando la divisione CodeGear, responsabile della creazione di strumenti di fama mondiale come Delphi, C++Builder e JBuilder, nonché del sistema di gestione di database Interbase, è entrata a far parte di Embarcadero Technologies, nota per i suoi strumenti per la progettazione e l'amministrazione di database, e due anni da quando abbiamo discusso sulle pagine della nostra rivista cosa aspettarci nello sviluppo di strumenti così apprezzati Sviluppatori russi. Abbiamo chiesto a David Intersimone, vicepresidente delle relazioni con gli sviluppatori e capo evangelista di Embarcadero Technologies, e Kirill Rannev, capo dell'ufficio di rappresentanza di Embarcadero Technologies, di parlare di cosa è stato fatto di nuovo in quest'area negli ultimi due anni e cosa aspettarci in futuro. il prossimo futuro Russia. Per i nostri lettori più giovani, vi informiamo che questa non è la prima intervista che David e Kirill rilasciano a ComputerPress: la nostra collaborazione dura dal secondo decennio. E per circa lo stesso numero di anni pubblichiamo periodicamente recensioni di strumenti di gestione di database, in cui viene prestata molta attenzione ai prodotti Embarcadero.

ComputerPress: David, la tua divisione fa parte dell'Embarcadero da tre anni. Due anni fa eri entusiasta di entrare a far parte di un'azienda vicina ai tuoi obiettivi e al tuo spirito. È cambiato qualcosa in questo periodo? Tu e i tuoi colleghi avete ancora lo stesso entusiasmo?

Sì, sono ancora molto entusiasta. Il cambiamento principale che si è verificato da quando siamo entrati a far parte della società Embarcadero è che sono stati fatti molti investimenti nello sviluppo di Delphi. È aumentato il numero di persone che lavorano sugli strumenti di sviluppo ed è aumentato il numero di tecnologie che possiamo sviluppare o, se necessario, acquisire.

Il rilascio di RAD Studio XE 2, che intendiamo presentare a Mosca, è il rilascio più grande di questo prodotto con enormi capacità e un gran numero di piattaforme supportate dalla prima versione di Delphi, creata per la versione a 16 bit di Windows e che era un prodotto innovativo che combinava l'approccio dei componenti e la compilazione nel codice macchina. Ora supportiamo lo sviluppo non solo per Windows, ma anche per Macintosh, per non parlare dello sviluppo web e della creazione di applicazioni per dispositivi mobili e queste applicazioni per piattaforme diverse possono avere un unico codice.

La nuova piattaforma di sviluppo - FireMonkey - è uno sforzo congiunto tra Embarcadero e la società russa KSDev di UlanUde, recentemente acquisita, un produttore di componenti per grafica vettoriale, DirectX e OpenGL, tecnologie per la creazione di effetti grafici e Componenti Delphi utilizzando GPU con PixelShader 2.0. Abbiamo acquisito la società KSDev (vedi ksdev.ru) un anno fa e abbiamo iniziato collaborazioni per creare uno strumento di sviluppo multipiattaforma che includa la piattaforma di sviluppo di applicazioni FireMonkey con componenti Delphi e C++Buider per la creazione dell'interfaccia utente dell'applicazione, l'integrazione del database, l'elaborazione grafica della GPU e l'integrazione del sistema operativo.

Utilizzando FireMonkey, puoi creare un'applicazione che viene eseguita insieme su CPU e GPU, quindi utilizzare diversi compilatori e librerie run-time (RTL) per compilarla per Windows, Mac OS o iOS. Invece di imparare a programmare utilizzando diverse librerie grafiche, imparando le API di diverse piattaforme che hanno diversi sistemi di coordinate e diverse capacità, gli sviluppatori che utilizzano Delphi e C++Builder possono utilizzare lo stesso approccio basato sui componenti, modificando visivamente i moduli e collegandosi ai database tramite spostando il componente con il mouse. Questo è un modo fondamentalmente nuovo di creare applicazioni che girano su piattaforme diverse, ed è il futuro. Se desideri aggiungere il supporto per altri sistemi operativi e piattaforme alla tua applicazione, non è necessario progettarla e svilupparla di nuovo: devi solo ricompilarla.

Creiamo nuovi compilatori che generano codice nativo. Oggi esistono compilatori Delphi per 32 e 64 bit Versioni di Windows, versioni a 32 bit di Mac OS 10. E stiamo lavorando alla prossima generazione di compilatori Delphi e C++Builder che vi permetteranno di creare codice macchina ad alte prestazioni sia per queste che per altre piattaforme come Android o Linux, e mantenere lo stesso design, gli stessi componenti, lo stesso codice utilizzando compilatori e librerie runtime diversi.

Come puoi vedere, ho abbastanza ragioni per essere entusiasta. E gli sviluppatori che incontro in tutto il mondo sanno che Embarcadero sta investendo molto in Delphi e C++Builder, nonché negli strumenti di sviluppo PHP.

KP: Quali successi avete ottenuto integrando gli strumenti delle due aziende negli ultimi due anni? Quali sono i progetti di Embarcadero per il futuro in questo settore?

DI.: All'epoca in cui CodeGear entrò a far parte di Embarcadero, la società aveva team di sviluppo a Toronto, Monterrey e in Romania, eravamo e abbiamo tuttora sede nella Scotts Valley e in Russia, a San Pietroburgo. Embarcadero aveva strumenti per sviluppatori e amministratori di database, CodeGear aveva strumenti per lo sviluppo di applicazioni, ma questi ultimi utilizzano anche database. La fusione di aziende è una combinazione di competenze, conoscenze nel campo dei database, dell'ottimizzazione del codice, compreso il codice del server. L'unione delle aziende ha portato anche alla creazione di un nuovo prodotto, AppWave, una tecnologia speciale per trasformare una normale applicazione Windows in qualcosa di molto facile da usare (come le applicazioni per iPhone o altri dispositivi). AppWave ti consente di non installare un'applicazione, ma semplicemente di selezionarla e avviarla dal server di archiviazione dell'applicazione predisposto (app), e verrà eseguita sul computer dell'utente senza apportare modifiche al suo registro e all'area di sistema file system. A proposito, il browser dell'applicazione AppWave è scritto in Delphi. Embarcadero utilizza Dephi per il proprio sviluppo e per la nostra esperienza nello sviluppo di applicazioni.

Applicazione per iPhone (iOS) creata da
utilizzando la piattaforma FireMonkey

Puoi anche utilizzare l'integrazione dei nostri strumenti di sviluppo e DB Optimizer per ottimizzare le query SQL durante la creazione di applicazioni. Passando il codice SQL direttamente a DB Optimizer, puoi profilarlo, testarlo e restituire una versione ottimizzata al tuo ambiente di sviluppo. La competenza nei database di Embarcadero ha inoltre migliorato la tecnologia DataSnap. Grazie agli sviluppatori di Toronto, abbiamo acquisito molte conoscenze sull'architettura dei sistemi e dei database multilivello. Ora abbiamo competenze congiunte nella creazione di codice server e procedure memorizzate in entrambe le società. Disponiamo di strumenti come RapidSQL e DB Change Manager, nonché ambienti di sviluppo che semplificano la creazione del codice server: ad esempio, le tecnologie Code Insight e Code Completion hanno consentito la creazione di tecnologie SQL insight e SQL Completion. I nostri approcci comuni alla creazione di codice client e server, la nostra filosofia comune, ci consentono di fornire caratteristiche comuni agli strumenti di gestione del database e agli strumenti di sviluppo di applicazioni.

Kirill Rannev: Voglio aggiungere una cosa importante. Da un punto di vista commerciale, il modo in cui forniamo i nostri strumenti è molto importante. Per esempio, nuova versione RAD Studio XE 2 Ultimate include la suite completa di strumenti DB Power Studio. Si tratta di un set di strumenti molto potente, tra cui l'ambiente di sviluppo delle query RapidSQL, lo strumento di gestione delle modifiche DB Change Manager e lo strumento di ottimizzazione delle query DB Optimizer, che consente di eseguire una parte importante del processo di sviluppo e distribuzione gestendo le modifiche a il modello di dati, il database, il codice e così via. Questa è una combinazione molto buona e corretta di tecnologie.

DI.: Ma, se necessario, gli sviluppatori possono utilizzare Subversion per il controllo della versione codice sorgente e DB Change Manager per il controllo delle versioni dei metadati. Puoi utilizzare la profilazione del codice e DB Optimizer per ottimizzare il codice del server, RapidSQL per creare ed eseguire il debug del codice del server e i nostri ambienti di sviluppo per creare ed eseguire il debug delle applicazioni. Questa combinazione di tecnologie in RAD Studio XE Ultimate Edition dimostra il parallelismo tra i modelli di sviluppo di database e applicazioni. La maggior parte degli sviluppatori che creano applicazioni aziendali con Delphi e C++Builder lavorano con database e necessitano di questi strumenti e RAD Studio XE Ultimate Edition è un'ottima combinazione per tali sviluppatori.

KP: L'utente moderno non è più un utente della sola piattaforma Windows. Utilizziamo dispositivi mobili, iPhone, iPad, dispositivi basati sulla piattaforma Android. Ciò significa che gli sviluppatori devono iniziare a prendere di mira piattaforme diverse senza aumentare in modo significativo gli investimenti nella formazione: sono cioè necessari strumenti universali. Ovviamente non è realistico aspettarsi strumenti universali dai produttori di piattaforme, e in questa materia possiamo contare solo su produttori di strumenti indipendenti. Come possiamo contare su Embarcadero?

DI.: Abbiamo ancora molto da fare in termini di supporto della piattaforma. Oggi introduciamo il supporto alla piattaforma iOS per iPhone e iPad, poi gli smartphone basati sulla piattaforma Android, Windows 7 e Blackberry riceveranno il nostro supporto. In RAD Studio XE 2 abbiamo iniziato creando la piattaforma FireMonkey per iOS e poi porteremo FireMonkey su altre piattaforme.

Allo stesso tempo, esiste un gran numero di sistemi operativi che supportano i touch screen per telefoni, tablet e dispositivi desktop e continueremo ad aggiungere il supporto per loro. Inoltre ci sono la voce, il movimento, sistemi biometrici, accelerometri, quindi dobbiamo continuare ad espandere FireMonkey in modo che tutti gli sviluppatori possano trarre vantaggio dalle nuove piattaforme. Ad esempio, il dispositivo Microsoft Kinect è stato progettato per Xbox 360 e ora esiste un corrispondente SDK (Software Development Kit) per Windows. E abbiamo già esempi in cui utilizziamo il movimento per controllare un'applicazione più o meno nello stesso modo in cui verrebbero normalmente utilizzati un mouse o una tastiera.

Quando crei applicazioni con molta grafica complessa, generi un intero mondo di nuove interfacce utente. Se abbiamo a che fare con una sala operatoria Sistema Windows, incapsuliamo la sua applicazione interfaccia software API Windows nella libreria VCL (Visual Component Library - una libreria di componenti visivi che fa parte degli strumenti di sviluppo Delphi e C++Builder. - Nota ed.), che, tra l'altro, può essere utilizzato ulteriormente. E in FireMonkey incapsuliamo l'API del sistema operativo. Ma oggi manipoliamo forme e grafica in modo molto più ampio. Puoi anche aggiungere proprietà fisiche allo spazio per animazioni ed effetti speciali. Inoltre, ci sono moltissime altre funzionalità aggiuntive per la creazione di interfacce utente che implementeremo nei prossimi anni per diverse piattaforme, dispositivi mobili e tablet.

Microsoft ha recentemente annunciato informazioni dettagliate su Windows 8, che uscirà tra un anno. Supporteremo queste innovazioni nella libreria VCL e nella piattaforma FireMonkey. Ma Delphi è uno strumento di sviluppo pensato non solo per Windows, ma anche per Macintosh, iPhone e iPad. Sviluppiamo inoltre i nostri prodotti PHP, supportiamo jQuery Mobile, utilizziamo l'API iOS per sviluppare applicazioni client mobili e creiamo applicazioni PHP lato server utilizzando procedure guidate e strumenti per generare JavaScript, HTML e fogli di stile a cascata lato client. Possiamo creare pacchetti da applicazioni PHP e applicazioni client con codice nativo per iPhone iOS e con tale cliente comunicherà server PHP. E lui, a sua volta, comunicherà con il server del database e con i servizi web, con tutto ciò che è necessario per il business.

Ambiente di sviluppo RadPHP XE2. Creazione di un'applicazione web mobile
utilizzando i componenti jQuery Mobile per iPhone 3G

In altre parole, prevediamo di espandere le capacità di FireMonkey e VCL, incluso il supporto per le piattaforme mobili.

KP: Potresti dirci di più sulla piattaforma FireMonkey?

DI.: Come ho già notato, la libreria VCL creata per Windows continuerà a svilupparsi e migliorare. Ma oggi, se vuoi sviluppare applicazioni aziendali reali, devi crearle per piattaforme diverse. Questo è lo scopo per cui è stata progettata la piattaforma FireMonkey. Supporta la creazione di interfacce utente ad alta risoluzione, grafica 3D ad alte prestazioni, frame rate elevati e, soprattutto, utilizza il processore grafico per questo.

È possibile utilizzare tali funzionalità durante la creazione di applicazioni scientifiche, ingegneristiche e aziendali. Tali applicazioni possono connettersi ai database utilizzando la tecnologia dbExpress, utilizzando comunque componenti non visivi familiari agli sviluppatori, come ClientDataSet o DataSource, utilizzare la tecnologia DataSnap, connettersi a qualsiasi database, server SOAP e REST. Puoi creare controlli attraenti, pulsanti con riquadri, tabelle insolite e altri elementi dell'interfaccia, sia in due che in tre dimensioni. Puoi caricare un modello 3D finito nell'app e collegarlo a una forma 2D in cui puoi ruotarlo e visualizzarlo da diverse angolazioni. Puoi creare un cubo di dati o un grafico aziendale 3D e ruotarlo utilizzando il mouse, la tastiera o anche un dispositivo Kinect, oppure puoi entrare nel cubo e osservare le sue diverse superfici dall'interno. E tutto questo può essere fatto utilizzando una GPU ad alta velocità. La stessa applicazione può poi essere compilata per un'altra piattaforma, ad esempio Mac OS.

Un'applicazione contenente un cubo dati rotante,
posto sui suoi bordi

Oppure puoi creare una forma 3D da zero e utilizzare fotocamere e luci per illuminare e ruotare parti dell'interfaccia utente. Il progettista del modulo dispone già di un ambiente integrato per supportare un'interfaccia utente 3D durante la progettazione.

Su Windows per lavorare con grafica bidimensionale alta risoluzione puoi utilizzare le librerie Direct2D e per Grafica 3D-Diretto3D. Su Mac OS, le librerie Quartz e OpenGL vengono utilizzate per gli stessi scopi. Per iOS vengono utilizzate le librerie Quartz e OpenGL ES. Ma tutto questo è nascosto allo sviluppatore: utilizza la piattaforma FireMonkey, il suo sistema di coordinate e l'interfaccia di programmazione dell'applicazione, senza pensare a queste librerie, e può compilare la stessa applicazione per piattaforme diverse.

Ricordiamo cos'è la VCL. VCL è un componente wrapper attorno all'API di Windows. Ci occupiamo di risorse, menu, finestre di dialogo, colori, stili, messaggi di Windows. Essendo un wrapper multipiattaforma, a differenza di VCL, FireMonkey mantiene gli stessi modelli di eventi e componenti, consentendoti di pensare in termini di eventi (ad esempio, eventi OnClick, OnHasFocus, onMouseDown e onKeyDown), ma gestisce eventi Macintosh o iPhone.

Viene fornita anche la piattaforma FireMonkey sistema completo animazione degli elementi dell'interfaccia utente. Non è certamente un sistema di animazione completo in stile Pixar, ma consente effetti come animazione bitmap, evidenziazione del focus degli elementi dell'interfaccia utente e grafica vettoriale. Lo sviluppatore ha a disposizione più di 50 effetti visivi: sfocatura, trasformazione dell'immagine in bianco e nero, dissolvenza, transizioni, riflessione, creazione di ombre: tutti i tipi di effetti disponibili nei moderni processori grafici, che ora si trovano in quasi tutti i computer. Un'applicazione creata utilizzando la piattaforma FireMonkey invia comandi alla GPU, che svolge tutto il lavoro di visualizzazione della grafica e creazione dell'interfaccia utente. In cui processore gratuito per calcoli e chiamate al sistema operativo. Lo sviluppatore può solo posizionare correttamente i componenti.

La cosa più fondamentale della piattaforma FireMonkey è il modo in cui costruisce l'interfaccia utente. Sono presenti strutture ricettive grafica raster sugli elementi dell'interfaccia quali menu, pulsanti e barre di scorrimento. In FireMonkey utilizziamo la grafica vettoriale basata su GPU per questo scopo. Dal punto di vista della programmazione, questi sono sempre gli stessi controlli, ma tutto il lavoro di visualizzazione viene svolto dal processore grafico. Possiamo applicare stili ai controlli, far sembrare l'applicazione un'applicazione per Mac OS o Windows, creare il nostro stile, applicare i nostri stili agli elementi dell'interfaccia (ad esempio, rendere un pulsante rettangolare o rotondo modificandone lo stile nell'editor dei moduli ) - per questo c'è un editor di stile nell'ambiente di sviluppo. Puoi creare il tuo stile oppure modificare lo stile di un'applicazione già completata.

Piattaforma FireMonkey - Strumenti di sviluppo
e piattaforme supportate

Se ricordi, la libreria VCL aveva un numero limitato di controlli: contenitori (ovvero, ti consentivano di inserire altri elementi al loro interno) e in FireMonkey ogni controllo è un contenitore. Ciò significa che ogni controllo può contenere qualsiasi altro controllo. Ad esempio, gli elementi dell'elenco a discesa possono contenere immagini, pulsanti, campi di modifica e altri controlli. È inoltre possibile posizionare i componenti su livelli.

Il sistema di rendering FireMonkey è abbastanza flessibile: può utilizzare le librerie Direct2D, Direct3D e OpenGL, inviando comandi alla GPU. Per ottenere lo stesso risultato in VCL, dovevi generare un buffer fuori schermo separato, creare un'immagine al suo interno chiamando le funzioni della libreria grafica appropriata e quindi visualizzarla sul modulo.

Esempi di effetti grafici supportati da FireMonkey

Se non disponi di una GPU, puoi comunque applicare forme 2D o 3D e utilizzare i controlli FireMonkey. In questo caso, la piattaforma FireMonkey utilizzerà le librerie GDI+ o altre librerie simili ed eseguirà gli stessi effetti e animazioni o la manipolazione di oggetti 3D.

Un'altra caratteristica di FireMonkey è nuovo sistema collegamento degli elementi dell'interfaccia con i dati, aperto e flessibile. Esistono due tipi di elementi di interfaccia nella VCL: associati a dati e non associati a dati (ad esempio, TDBEdit e TEdit). In FireMonkey, ogni controllo può essere associato a dati di qualsiasi tipo. Potrebbe trattarsi di un'espressione semplice, di un campo di un set di dati, di dati di oggetti creati dallo sviluppatore o dei risultati di chiamate di metodo.

Inoltre, quando si crea un'applicazione, è possibile caricare al suo interno un modello 3D già pronto e utilizzarlo: tali funzionalità sono spesso richieste sia nelle applicazioni aziendali che di ingegneria. Abbiamo un cliente che crea applicazioni per la logistica. Avevano Sistema informativo, realizzato utilizzando Delphi e in esso un'applicazione che tracciava un piano e visualizzava informazioni da fonti di dati. Recentemente hanno fatto qualcosa di interessante: hanno disegnato un magazzino 3D completamente automatizzato in AutoCAD e la loro applicazione consente di vedere come il carrello elevatore automatizzato si muove nel magazzino e posiziona le merci sugli scaffali. E inseriscono i dati dalle fonti nell'immagine corrispondente.

Esempi di modifica degli stili di applicazione

KP: Quali formati di modelli 3D sono attualmente supportati?

DI.: In questa versione supportiamo il caricamento di modelli da AutoCAD, Collada (uno strumento di modellazione 3D open source. - Nota modificare.), Maya, un formato OBJ supportato da molti fornitori di grafica 3D.

KP: Quali altri formati pensi di aggiungere?

DI.: Prevediamo di aggiungere 3DS (3D Studio MAX), SVG (di solito questo formato viene utilizzato per la grafica vettoriale 2D, ma a volte per il 3D), Google SketchUp. Forse supporteremo altri formati.

KP: L'utilizzo di modelli 3D in applicazioni create con FireMonkey richiede una licenza per lo strumento di modellazione 3D appropriato?

DI.: No, non lo richiede. Tutto quello che facciamo è leggere il file del modello. Stiamo importando il modello, ma non lo esportiamo (anche se, ovviamente, potresti scrivere un'applicazione che salvi il modello nel tuo formato). Non pretendiamo di essere un produttore di strumenti di modellazione 3D: per questo puoi utilizzare AutoCAD, 3D Studio Max, Maya o qualsiasi altro strumento di modellazione 3D e importare i modelli creati nelle nostre applicazioni.

KP: Quanto sono performanti le applicazioni create con FireMonkey su piattaforme hardware moderne?

DI.: La produttività è piuttosto elevata. Ad esempio, renderizzando una forma 3D con tre sfere e tre sorgenti luminose accese Macbook Pro può essere eseguito a una velocità di 100 fotogrammi al secondo. Oppure può raggiungere i 600, dipende da cosa stiamo facendo esattamente. Ancora una volta, tutto dipende dalla potenza della GPU.

KP: Questo significa che puoi creare giochi moderni usando FireMonkey?

DI.: Non posizioniamo i nostri strumenti di sviluppo come strumenti per i giochi. Tuttavia, sfruttando le elevate prestazioni delle moderne GPU, puoi creare giochi utilizzando FireMonkey, dopotutto vengono creati utilizzando Direct3D o OpenGL.

KP: Che lavoro stai svolgendo attualmente nell'area del supporto del riconoscimento dei gesti e altre cose nuove? È disponibile tale supporto?

DI.: Non abbiamo ancora il supporto dei gesti in questa versione. I controlli gestuali verranno aggiunti in una versione futura di FireMonkey, ma nel frattempo puoi utilizzare il supporto gestuale integrato nel sistema operativo.

Mikhail Filippenko, direttore di Fast Reports, Inc.

K.R.: Abbiamo già detto che la tecnologia FireMonkey ha radici russe: le sue basi sono state create nel nostro paese, quindi sia la tecnologia stessa che i suoi sviluppatori si sono uniti a Embarcadero. In generale, è gratificante vedere la crescita della componente russa in RAD Studio e Delphi. Ciò include le attività del nostro centro di sviluppo a San Pietroburgo e il contributo di sviluppatori russi indipendenti. Ad esempio, Rad Studio XE2 include il generatore di report FastReport, conosciuto in tutto il mondo e molto popolare nel nostro paese. È originario di Rostov sul Don.

KP: Vorrei parlare dei compilatori. Che tipo di compilatore viene utilizzato durante la creazione di applicazioni iOS?

DI.: Non disponiamo del nostro compilatore Delphi per iPhone o iPad: non abbiamo ancora sviluppato compilatori per i processori ARM utilizzati in tali dispositivi. Per iOS utilizziamo temporaneamente il compilatore Free Pascal e la libreria runtime. Ma stiamo lavorando alla prossima generazione di compilatori, anche per i processori AWP. Ma esistono compilatori per Windows e Mac OS, poiché entrambe le piattaforme hardware si basano su processori Intel.

KP: Cosa è stato fatto nel campo della creazione di compilatori negli ultimi due anni?

DI.: Disponiamo di compilatori Delphi a 32 e 64 bit per Windows e Mac OS. E stiamo lavorando su una nuova generazione di compilatori Delphi e C++. Sono ancora in fase di elaborazione, ma una volta terminati avremo compilatori Delphi per processori ARM, piattaforme Android, Linux e tutto il resto. E avremo compilatori C++ a 64 bit per Windows e altre piattaforme, compatibili con l'ultimo standard del linguaggio C++ appena adottato dall'ISO.

KP: Cosa sta succedendo oggi al supporto del cloud computing negli strumenti di sviluppo di Embarcadero?

DI.: In RAD Studio XE 2, supportiamo lo spostamento delle applicazioni sul cloud Microsoft Azure o Amazon EC2 utilizzando Platform Assistant. E disponiamo di componenti server per Cloud Storage for Azure e Amazon S3 per l'archiviazione di tabelle, dati binari, code di messaggi. IN versione precedente Con RAD Studio XE supportavamo anche la distribuzione di applicazioni su Amazon EC2, ma mancava il supporto per lo storage.

Supporto del cloud computing in RAD Studio XE 2

KP: Due anni fa parlavi della nuova soluzione All-Access. Quanto era popolare? Quali sono i vantaggi per gli integratori di sistemi e gli sviluppatori?

DI.: La soluzione All-Access e lo strumento cloud AppWave sono ampiamente utilizzati in tutto il mondo. Sono progettati per facilitare l'utilizzo delle nostre applicazioni e di quelle di terzi. In effetti, è una soluzione per la gestione delle licenze e dell'utilizzo delle applicazioni ed è conveniente per grandi aziende. Le aziende più piccole che non dispongono di team dedicati di persone responsabili della gestione delle applicazioni possono inserire l'applicazione in un repository, selezionare i nomi utente dal database e rendere tali applicazioni disponibili senza dover ricordare dove. chiave di licenza e quante licenze sono disponibili. All-Access e il browser AppWave sono progettati per gestire sia il controllo delle versioni che il controllo degli accessi.

K.R.: Il mercato è così diversificato e gli utenti sono così diversi che è impossibile coprire tutte le esigenze con un’unica soluzione. Ecco perché puntiamo a soluzioni di imballaggio diversificate. Abbiamo lavorato molto per unificare i metodi di licenza, gestione delle licenze e installazione del prodotto. Questa linea di soluzioni include strumenti di gestione delle licenze e del provisioning non solo per i prodotti Embarcadero, ma anche per qualsiasi altro prodotto, compresi gli sviluppi interni dell'azienda.

Il lavoro per confezionare gli strumenti di sviluppo in kit efficaci per gli utenti è ancora in corso. Abbiamo All-Access, un superset che combina tutti i prodotti Embarcadero. Se un cliente acquista All-Access Platinum, riceve tutti gli strumenti trovati in Embarcadero. Ma a volte questo set risulta ridondante; ad esempio, per gli specialisti di database, abbiamo creato altri due set: DB Power Studio Developer Edition e DB Power Studio DBA Edition. La differenza tra loro è che per lo sviluppatore offriamo RapidSQL, uno strumento per lo sviluppo di codice server, e per l'amministratore c'è DBArtizan integrato, uno strumento di amministrazione del database, un prodotto più ampio di RapidSQL. Per i professionisti, disponiamo delle seguenti suite All-Access: una suite che include tutti i prodotti, DB Power Studio per sviluppatori, DB Power Studio per amministratori, ER Studio Enterprise Edition per architetti e chiunque sia coinvolto nella modellazione. Esistono combinazioni per lo sviluppo di applicazioni e per gli amministratori. Delphi è uno strumento per sviluppatori ed è molto sensato aggiungervi strumenti di sviluppo e ottimizzazione SQL. Infine, DB Change Manager è uno strumento logico per gestire la complessità delle modifiche che si verificano nei database durante il loro ciclo di vita.

Pertanto, All-Access è il capo di una grande famiglia di diversi set di prodotti.

KP: Se non è un segreto, chi in Russia usa All-Access?

K.R.: Abbiamo clienti che hanno acquistato All-Access basato su Delphi. Molti di loro creano complessi sistemi client-server con server SQL e Oracle e hanno subito apprezzato i nostri strumenti di database multipiattaforma. Abbiamo un'azienda cliente che lavora con Delphi sin dalla prima versione e da cui è passata un anno fa utilizzando Delphi al set All-Access. Due strumenti che tutti gli sviluppatori di questa azienda sicuramente utilizzeranno sono Delphi e DBArtisan. E ci sono clienti che sono arrivati ​​​​a All-Access dal lato del database. Il loro compito principale è amministrare i database, ma talvolta sviluppano anche applicazioni. I clienti che utilizzano All-Access includono società di media, società di ingegneria e altri settori.

Separatamente, vorrei concentrarmi sulle piccole imprese. Molto spesso nei piccoli team lo sviluppatore fa tutto e un'azienda del genere a volte acquista grandi set di prodotti All-Access per uno o due sviluppatori. Nei team di grandi dimensioni, non è incoraggiato che uno sviluppatore svolga anche, ad esempio, il ruolo di amministratore di database, quindi piccoli set di prodotti sono generalmente popolari lì, ma nelle piccole aziende una tale combinazione di responsabilità è abbastanza accettabile.

Delphi Architect è un prodotto fortemente commercializzato che include strumenti di modellazione e programmazione. Il numero di copie vendute è, tuttavia, inferiore a quello della versione Delphi Enterprise, ma è comunque elevato. Vorrei sottolineare che nel 2010 ci siamo rivelati il ​​miglior Paese in termini di volume delle vendite, nonostante tutti i paesi abbiano attraversato una crisi. Questa crescita è stata associata non tanto a fattori economici, ma al fatto che la versione di RAD Studio XE, rilasciata alla fine del 2009, si è rivelata molto popolare. E per ora ci aspettiamo un’ulteriore crescita delle vendite.

Abbiamo compiuto un altro passo ragionevole, che è estremamente popolare in Russia. Il grado di legalizzazione delle diverse versioni dei nostri prodotti è diverso: più alta è la versione, più è legalizzata, perché prima Software non acquistato così attivamente. A partire da RAD Studio XE, la licenza copre le versioni 2010, 2009, 2007 e persino Delphi 7, un prodotto ampiamente utilizzato.

Oggi, gli sviluppatori si trovano ad affrontare il fatto di avere sia nuovi progetti che progetti a supporto. Un gran numero di progetti sono stati trasferiti da versioni precedenti Delphi alla versione 7 e rimane all'interno di questa versione, continuando a lavorare su risorse relativamente piccole. Nessuno li sta spostando a versioni più recenti, ma vengono mantenuti in uno stato vitale. E ora ti permettiamo di ottenere sia RAD Studio XE che Delphi 7 per pochi soldi (meno del prezzo di una licenza Delphi 7), ovvero legalizziamo lo sviluppatore sia per l'implementazione di nuovi progetti che per progetti di supporto.

KP: Come valuti lo stato attuale della comunità Embarcadero?

DI.: Questa comunità è grande e molto esigente. Hanno bisogno di tutto immediatamente: sono sviluppatori. Ma a volte ci vuole molto tempo per fare qualcosa di giusto.

Alcuni anni fa, abbiamo preso l'architettura dei componenti Windows e l'abbiamo installata sui desktop Linux. Ora vediamo che questa non è stata la decisione giusta. La soluzione giusta è creare una piattaforma applicativa. Le applicazioni anche su piattaforme diverse dispongono di menu, finestre, grafica, accesso alla rete e accesso al dispositivo. Potrebbero esserci piattaforme diverse modelli diversi controllo del flusso o gestione delle eccezioni, ma nel codice dell'applicazione vediamo gli stessi blocchi try. Il nostro compito è rendere più semplice per gli sviluppatori creare applicazioni aziendali e compilarle per le piattaforme su cui devono essere utilizzate, indipendentemente da come è strutturato il set di istruzioni dei corrispondenti processori e da quali altre caratteristiche di queste piattaforme siano. E FireMonkey è esattamente ciò di cui hai bisogno per risolvere questo problema.

KP: Se un'azienda crea un nuovo dispositivo e desidera che sia supportato in FireMonkey, sarà possibile?

DI.: Con la nuova generazione di compilatori, che avrà un front-end indipendente dalla piattaforma e un back-end dipendente dalla piattaforma, questo sarà del tutto possibile. Nel frattempo, per ogni sistema operativo, creiamo da zero un compilatore e una libreria runtime.

Qualsiasi nuovo dispositivo moderno, di regola, ha una grafica interfaccia utente(molti di loro lo hanno processore dual-core e GPU) e SDK standard per gli sviluppatori. Ciò semplifica la creazione del supporto dei dispositivi in ​​FireMonkey. Se il nuovo dispositivo dispone solo di librerie per grafica bidimensionale come Quartz, saremo in grado di supportare tale dispositivo in FireMonkey, ma ciò richiederà circa diversi mesi. Molto dipende però dalla piattaforma: non tutte le piattaforme supportano tutte le funzionalità, ad esempio iOS non dispone di menu e finestre di dialogo e non sarà possibile inserire i componenti corrispondenti nei moduli di tali applicazioni.

KP:È cambiato qualcosa nella politica di collaborazione con i partner? Cosa si sta facendo per aumentare la quota di utenti dei vostri prodotti? Cosa si sta facendo in Russia?

DI.: Il nostro ecosistema di partner è ampio: ci sono centinaia di produttori di strumenti e componenti non presenti nei nostri prodotti e abbiamo un programma di partnership tecnologica. Pertanto, gli sviluppatori hanno a disposizione un'ampia gamma di componenti, tecnologie e strumenti. E le soluzioni che creano per i loro clienti sono migliori che se utilizzassero solo i nostri prodotti. E per le vendite abbiamo uffici in molti paesi, rivenditori e distributori.

K.R.: Ciò che è importante per noi non è il numero dei partner, ma la qualità del lavoro di ciascun partner specifico. Per ora, vogliamo concentrarci sulla collaborazione con i partner esistenti, anche se il pool di partner rimane aperto. Abbiamo molti partner e dobbiamo aiutarli a livello tecnologico. Lavoriamo con gli sviluppatori e loro sanno cosa vogliono e cosa è disponibile sul mercato e le capacità dei partner devono corrispondere a questo.

Abbiamo partner commerciali che hanno investito seriamente in Embarcadero come linea di business: hanno formato specialisti, commercializzano i nostri prodotti, dipendenti dedicati responsabili di questa linea e monitorano ciò che sta accadendo con i nostri prodotti, listino prezzi, marketing. Naturalmente hanno più successo in termini di vendite dei nostri prodotti rispetto alle aziende che vendono i nostri prodotti occasionalmente.

KP: David, Kirill, grazie mille per l'interessante intervista. Permettimi, a nome della nostra pubblicazione e dei nostri lettori, di augurare alla tua azienda ulteriore successo nella creazione dei tuoi straordinari strumenti di cui gli sviluppatori hanno tanto bisogno!

Domande poste da Natalia Elmanova

FireMonkey è la tecnologia principale del "nuovo Delphi". Per favore, parlaci degli obiettivi, delle capacità e degli aspetti tecnici di questa libreria fondamentalmente nuova. Dopo un po', guardando indietro, quanto è stato difficile e giustificato il tuo rifiuto di sviluppare ulteriormente la super popolare VCL?

È stata scelta come direzione principale per lo sviluppo della tecnologia Delphi per raggiungere un obiettivo specifico: lo sviluppo multipiattaforma da un unico ambiente, basato su un'unica base di codice sorgente, senza la necessità di una radicale riqualificazione degli sviluppatori. Nell’ambito dell’ormai classica e super popolare VCL questo era impossibile; la sua connessione con WinAPI era troppo stretta, si potrebbe dire, “a livello genetico”.

I componenti VCL non avevano uno strato “astratto” tra il livello funzionale in termini di interfaccia e i meccanismi per visualizzarli. Livello funzionale— come si comporta come controllo, a quali eventi reagisce, che tipo di interazione con l'utente fornisce. Schermo— chiamando metodi di visualizzazione orientati alla piattaforma come una certa immagine formata da oggetti raster e primitive vettoriali. FireMonkey inizialmente ha implementato il principio di dividere rigorosamente il controllo in due componenti: “comportamentale” e “visivo”.


Vsevolod Leonov, Embarcadero Technologies

Il primo generalmente non ripeterà nemmeno le basi della VCL, ma l'essenza della programmazione orientata agli oggetti. Un componente è una classe; le classi dei componenti formano una gerarchia in cui è possibile distinguere famiglie e moduli. La classe di un componente è vagamente correlata al modo in cui viene renderizzato.

L'“immagine” visiva si forma dinamicamente e non è scritta rigidamente nella classe del componente. L'immagine o "stile" in FireMonkey viene caricata nel componente all'avvio dell'applicazione. Abbiamo una sorta di struttura funzionale per il componente e la “pelle” o il “rivestimento” possono essere modificati, ma perché? È così che le applicazioni FireMonkey appaiono autentiche su qualsiasi piattaforma: Windows 7, Windows 8, Mac OS, iOS e, nel prossimo futuro, Android. Questo è qualcosa che la tradizionale struttura di classi monolitiche della VCL non potrebbe fornire.

Qui l’approccio tecnologico gioca un ruolo speciale. In linea di principio, puoi prendere la libreria VCL e “riempirla” con WinAPI e tutte le altre possibili chiamate alla piattaforma. Ciò può ancora essere fatto su un sottoinsieme molto limitato di componenti, ma la VCL contiene diverse centinaia di componenti, quindi questo approccio potrebbe semplicemente “uccidere” la VCL. Si è deciso di non toccare VCL, ma di sviluppare nuove funzionalità su una nuova piattaforma: FireMonkey. Questa tecnologia Ha anche una certa eleganza tecnica: al momento dell'assemblaggio del progetto per una piattaforma specifica, l'IDE Delphi collega il compilatore richiesto e i componenti dell'interfaccia ricevono uno stile di piattaforma.

Per l'utente si tratta di un clic del mouse e dello stesso codice sorgente; per Delphi sono necessari molti anni di duro lavoro da parte degli sviluppatori per creare una libreria multipiattaforma di questo tipo.

Quando è diventato chiaro che FireMonkey sarebbe stata introdotta come una nuova piattaforma separata, è stato necessario scegliere la giusta strategia di coesistenza: Embarcadero non voleva avere alcun impatto negativo sugli utenti VCL. Pertanto, abbiamo scelto il seguente piano: VCL rimane ideologicamente e architetturalmente stabile per garantire la massima compatibilità possibile, rendendo più semplice la migrazione dei progetti alle versioni moderne. Lo sviluppo di FireMonkey seguirà un percorso naturale e parallelo, indipendentemente dalla VCL.

Il punto debole di questa soluzione è la migrazione piuttosto problematica da VCL a FireMonkey all'interno dello stesso progetto. Ma per un nuovo progetto, uno sviluppatore può scegliere FireMonkey per garantire la natura multipiattaforma dell'applicazione risultante. Dopo il rilascio di XE4 con supporto iOS, possiamo già parlare dei brillanti vantaggi competitivi di Delphi per cominciare sviluppo mobile in ambito aziendale, che verrà incrementato dopo l'implementazione del previsto supporto Android.

Pertanto, non vi è alcun evidente “rifiuto” dallo sviluppo della VCL in quanto tale. Nelle nuove versioni si sviluppa anche la parte VCL di Delphi. Ciò include il supporto a 64 bit, l'introduzione dello stile per i componenti visivi, l'implementazione di un meccanismo per connessioni dinamiche flessibili o "binding" e l'inclusione della libreria FireDAC per lavorare con i database nei progetti VCL. È solo che, rispetto al gigantesco salto di qualità fatto da FireMonkey, i progressi nella VCL sembrano un po' scialbi. Comunque sia, VCL è parte integrante di Delphi e rimarrà tale per molti anni a venire. Sebbene l'evoluzione delle piattaforme e lo stato attuale delle cose nel campo del sistema operativo per sistemi desktop e i dispositivi mobili sono tali che il futuro è sicuramente per FireMonkey.

Nell'intervista abbiamo già discusso del supporto iOS, raccontiamo ai nostri lettori del supporto per altre tecnologie più recenti dell'ultimo RAD Studio XE4, ad esempio, come Windows 8 e WinRT, sistemi a 64 bit, MacOS e così via. Puoi elencare cos'altro puoi offrire al programmatore moderno viziato dalle innovazioni?

Molto probabilmente, un programmatore moderno non è "viziato" dalle innovazioni. Per grandi progetti qualsiasi “innovazione” spesso si traduce in una quantità enorme di lavoro.

Ad esempio, tutti hanno aspettato a lungo, molti si sono subito precipitati a tradurre i loro codici nuova piattaforma. Ma si scopre che anche le squadre molto professionali non sono pronte per questo. Compilare codice a 64 bit non significa lavorare. Ad esempio, i "peccati di gioventù" iniziarono ad emergere utilizzando istruzioni che presupponevano una dimensione dell'indirizzo di 4 byte. Mancanza di cultura del test, unita all’impreparazione tecnologica per implementare questo processo in breve tempo.

E qui - più grande è il progetto, misurato, ad esempio, dal numero di righe del codice sorgente, più i programmatori sono attenti ed equilibrati con vari tipi di innovazioni che vanno dall'aspetto di un "pulsante" nell'interfaccia allo "zucchero sintattico" nel compilatore.

Uno di questi risultati "problematici" è stato il rilascio di Windows 8. Personalmente, come utente di PC e semplicemente come specialista IT moderno, sono entusiasta di Windows 8. Ma per gli sviluppatori a cui è stato inviato come carico un lotto di computer con Windows 8 con le specifiche per lo sviluppo con il nuovo sistema operativo, ciò significa alcune difficoltà.

Abbiamo cercato di fornire supporto allo sviluppo per la nuova interfaccia di questo sistema operativo nel modo più confortevole e indolore possibile. Pertanto, sono stati introdotti stili speciali sia per VCL che per FireMonkey e il programmatore può ricostruire l'interfaccia dell'applicazione o creare una nuova applicazione che sarà indistinguibile da quella "nativa" per Windows 8. aspetto. Naturalmente è necessario il supporto “nativo” per Windows 8 tramite WinRT. Ma questo è influenzato dalla priorità degli obiettivi condizioni moderne. Mac OS, iOS, Android nel prossimo futuro non ci consentono ancora di parlare del pieno supporto per WinRT nel prossimo futuro.

L'obiettivo strategico di Embarcadero, ovviamente, è multipiattaforma. Il rilascio di RAD Studio XE4 è stato fondamentale, principalmente grazie al supporto per iOS. Un programmatore esistente che utilizza VCL può iniziare a sviluppare per iOS nel giro di poche ore. Anche semplice applicazione mobile può essere immediatamente trasformato in un potente progetto che opera all’interno dell’infrastruttura esistente. Non pensare che sia facile nuovo compilatore a FireMonkey e un nuovo stile per garantire la conformità con l'interfaccia iOS.

Ciò include un nuovo visual designer, supporto integrato per vari fattori di forma, librerie di accesso ai dati, incluso il nuovo FireDAC, e la tecnologia LiveBindings per il collegamento flessibile e dinamico con i dati aziendali. Tutte queste innovazioni arrivano contemporaneamente: per Windows, Mac OS e iOS. sistema operativo Mac OS non si sta sviluppando così rapidamente, quindi non ci sono problemi come il passaggio da Windows 7 a Windows 8. Ma sono apparsi Display Retina, e questo richiedeva un'attenzione particolare. Ora qualsiasi applicazione MacOS creata in Delphi XE4 include automaticamente due stili: "normale" e "alta definizione".

Quello. la stessa applicazione può avere la stessa interfaccia “nativa” di alta qualità su qualsiasi computer desktop da Apple.

Embarcadero non vuole “sorprendere”, “stupire” o addirittura “intrattenere” gli sviluppatori con le sue nuove versioni innovative. Anzi, al contrario, la sfera IT è già piena di varie sorprese: nuovi dispositivi, nuove piattaforme, nuovi utenti, le loro nuove esigenze, nuovi scenari di interazione. Aggiungete a questo nuove tecnologie di sviluppo software e i programmatori semplicemente non avranno il tempo di creare nuovi sistemi e quelli esistenti: tutto ciò che faranno sarà migrare da un ambiente all'altro, da una vecchia libreria a una nuova, da una lingua all'altra.

Ma non professiamo il rifiuto di tutto ciò che è nuovo. Vogliamo solo garantire la continuità di tutto: codice, interfaccia, progetto, persino competenze professionali quando compaiono nuove piattaforme e dispositivi. Si potrebbe dire che stiamo combattendo il malsano conservatorismo riguardo alle nuove piattaforme attraverso un sano conservatorismo negli strumenti di sviluppo. Non aspettarti prodotti esotici, linguaggi di programmazione non standard o strumenti di sviluppo stravaganti da Embarcadero.

Da noi troverai sempre sviluppo visuale, linguaggi classici, codice “nativo”, e lascerai che le piattaforme target per le tue applicazioni, realizzate nello stesso collaudato modo classico, siano nuove.




Superiore