Delphi supporta lo sviluppo rapido di applicazioni (RAD). Le caratteristiche principali sono un designer visivo e due framework di applicazioni, VCL per Windows e FireMonkey (FMX) per lo sviluppo multipiattaforma.
Delphi usa il linguaggio di programmazione basato su Pascal Object Pascal creato da Anders Hejlsberg per Borland (ora IDERA) come successore di Turbo Pascal. Supporta la cross-compilazione nativa per molte piattaforme tra cui Windows, Linux, iOS e Android.
Per supportare meglio lo sviluppo per Microsoft Windows e interoperare con il codice sviluppato con altri strumenti di sviluppo software, Delphi supporta interfacce indipendenti del Component Object Model (COM) con implementazioni di classi contate di riferimento, e il supporto per molti componenti di terze parti. Le implementazioni delle interfacce possono essere delegate a campi o proprietà di classi. I gestori di messaggi sono implementati etichettando un metodo di una classe con la costante intera del messaggio da gestire.
La connettività del database è ampiamente supportata attraverso i componenti VCL database-aware e di accesso al database.
Le versioni successive hanno incluso routine di libreria runtime aggiornate e migliorate, alcune fornite dal gruppo comunitario FastCode.
CaratteristicheModifica
Delphi usa un linguaggio di programmazione di alto livello fortemente digitato, inteso per essere facile da usare e originariamente basato sul precedente linguaggio Object Pascal. Il Pascal fu originariamente sviluppato come un linguaggio di uso generale “adatto ad esprimere i costrutti fondamentali conosciuti al tempo in modo conciso e logico”, e “la sua implementazione doveva essere efficiente e competitiva con i compilatori FORTRAN esistenti” ma senza strutture di programmazione di basso livello o accesso all’hardware. Turbo Pascal e i suoi discendenti, incluso Delphi, supportano l’accesso all’hardware e la programmazione a basso livello, con la possibilità di incorporare codice scritto in linguaggio assembly e altri linguaggi. L’orientamento agli oggetti di Delphi presenta solo polimorfismo basato su classi e interfacce. Le metaclassi sono oggetti di prima classe. Gli oggetti sono in realtà riferimenti agli oggetti (come in Java), che Delphi implicitamente de-referenzia, così di solito non c’è bisogno di allocare manualmente la memoria per i puntatori agli oggetti o usare tecniche simili che alcuni altri linguaggi richiedono. Ci sono tipi di stringhe dedicate con conteggio dei riferimenti, e anche stringhe con terminazione nulla.
Le stringhe possono essere concatenate usando l’operatore ‘+’, piuttosto che usare funzioni. Per i tipi di stringa dedicati, Delphi gestisce la gestione della memoria senza l’intervento del programmatore. Dal Borland Developer Studio 2006 ci sono funzioni per localizzare le perdite di memoria.
Delphi include un IDE integrato. I prodotti Delphi sono tutti forniti con una libreria di run-time (RTL) e una Visual Component Library (VCL), inclusa la maggior parte del codice sorgente. Sono disponibili componenti di terze parti (a volte con codice sorgente completo) e strumenti per migliorare l’IDE o per altri compiti di sviluppo relativi a Delphi, alcuni gratuiti. L’IDE include una GUI per la localizzazione e la traduzione dei programmi creati che possono essere distribuiti a un traduttore; ci sono anche strumenti di terze parti con più caratteristiche per questo scopo. Il framework VCL mantiene un alto livello di compatibilità dei sorgenti tra le versioni, il che semplifica l’aggiornamento del codice sorgente esistente ad una versione più recente di Delphi. Le librerie di terze parti tipicamente hanno bisogno di aggiornamenti dal fornitore ma, se il codice sorgente è fornito, la ricompilazione con la versione più recente può essere sufficiente. La VCL è stata una delle prime ad adottare la dependency injection o inversione di controllo; usa un modello di componente riutilizzabile, estensibile dallo sviluppatore. Con gli helper di classe si possono introdurre nuove funzionalità alle classi RTL e VCL di base senza cambiare il codice sorgente originale della RTL o VCL.
Il compilatore è ottimizzante e a passaggio singolo. Può opzionalmente compilare in un singolo eseguibile che non richiede DLL. Delphi può anche generare DLL standard, DLL ActiveX, server di automazione COM e servizi Windows.
Gli IDE Delphi a partire da Delphi 2005 supportano sempre più funzioni di refactoring come l’estrazione di metodi e la possibilità di creare modelli UML dal codice sorgente o di modificare il sorgente attraverso i cambiamenti fatti nel modello.
Delphi ha comunità sul web, dove anche i suoi dipendenti partecipano attivamente.
Compatibilità all’indietroModifica
Anche se ogni nuova versione di Delphi cerca di mantenere la massima compatibilità all’indietro possibile per permettere il riutilizzo del codice esistente, nuove caratteristiche, nuove librerie e miglioramenti a volte rendono le nuove versioni meno compatibili all’indietro del 100%.
Dal 2016, ci sono state nuove release di Delphi ogni sei mesi, con nuove piattaforme aggiunte approssimativamente ogni due release.
FrameworksEdit
Delphi offre due framework per lo sviluppo di applicazioni visuali, VCL e FireMonkey (FMX):
- Visual Component Library (VCL) è il framework per sviluppare applicazioni Windows pure. VCL è un framework di vecchia data, incluso nella prima versione di Delphi e attivamente sviluppato da allora.
- FireMonkey (poi abbreviato FMX), è stato rilasciato nel 2011, come parte di Delphi XE2, insieme a un set aggiuntivo di compilatori integrati per piattaforme non Windows. FireMonkey è un framework multipiattaforma per Windows, macOS, iOS, Android e Linux (x64). Le parti GUI di FireMonkey sono in gran parte basate su Direct3D e OpenGL. FireMonkey non è compatibile con VCL; sono due framework separati. Le applicazioni FireMonkey, tuttavia, permettono una facile condivisione di unità di codice non visuali con le applicazioni VCL, permettendo a molto codice di essere portato o condiviso facilmente tra le piattaforme.
InteroperabilitàModifica
Delphi e la sua controparte C++, C++Builder, sono interoperabili. Condividono molti componenti fondamentali, in particolare l’IDE, i framework VCL e FMX, e gran parte della libreria di runtime. Inoltre, possono essere usati insieme in un progetto. Per esempio, C++Builder 6 e successivi possono combinare il codice sorgente di Delphi e C++ in un progetto, mentre i pacchetti compilati con C++Builder possono essere usati da Delphi. Nel 2007, i prodotti sono stati rilasciati congiuntamente come RAD Studio, un host condiviso per Delphi e C++Builder, che può essere acquistato con uno o entrambi.