Delphi apoia o desenvolvimento rápido de aplicações (RAD). Características proeminentes são um designer visual e duas estruturas de aplicação, VCL para Windows e FireMonkey (FMX) para o desenvolvimento multiplataforma.
Delphi utiliza a linguagem de programação baseada em Pascal Object Pascal criada por Anders Hejlsberg para a Borland (agora IDERA) como sucessor do Turbo Pascal. Suporta compilação cruzada nativa para muitas plataformas incluindo Windows, Linux, iOS e Android.
Para melhor suportar o desenvolvimento para Microsoft Windows e interoperar com código desenvolvido com outras ferramentas de desenvolvimento de software, Delphi suporta interfaces independentes de Component Object Model (COM) com implementações de classe de contagem de referência, e suporte para muitos componentes de terceiros. As implementações de interfaces podem ser delegadas a campos ou propriedades de classes. Os manipuladores de mensagens são implementados através da marcação de um método de classe com a constante inteira da mensagem a tratar.
Conectividade com base de dados é extensivamente suportada através de componentes VCL com conhecimento de base de dados e acesso a base de dados.
Versões posteriores incluíram rotinas actualizadas e melhoradas de bibliotecas de tempo de execução, algumas fornecidas pelo grupo comunitário FastCode.
CharacteristicsEdit
Delphi usa uma linguagem de programação de alto nível, destinada a ser fácil de usar e originalmente baseada na anterior linguagem Object Pascal. Pascal foi originalmente desenvolvida como uma linguagem de uso geral “adequada para expressar as construções fundamentais conhecidas na altura de forma concisa e lógica”, e “a sua implementação deveria ser eficiente e competitiva com os compiladores FORTRAN existentes” mas sem facilidades de programação de baixo nível ou acesso a hardware. Turbo Pascal e os seus descendentes, incluindo Delphi, apoiam o acesso ao hardware e à programação de baixo nível, com a facilidade de incorporar código escrito em linguagem de montagem e outras linguagens. A orientação dos objectos do Delphi apresenta apenas polimorfismo de classe e de interface. As metaclasses são objectos de primeira classe. Os objectos são na realidade referências aos objectos (como em Java), os quais o Delphi retira implicitamente as referências, pelo que normalmente não há necessidade de atribuir manualmente memória para apontadores a objectos ou usar técnicas semelhantes que algumas outras linguagens necessitam. Existem tipos de strings dedicadas com referência, e também strings com termo nulo.
Strings podem ser concatenadas usando o operador ‘+’, em vez de usar funções. Para os tipos de strings dedicadas, o Delphi trata da gestão da memória sem intervenção do programador. Desde o Borland Developer Studio 2006, existem funções para localizar fugas de memória.
Delphi inclui um IDE integrado. Os produtos Delphi são todos fornecidos com uma biblioteca de tempo de execução (RTL) e uma Biblioteca de Componentes Visuais (VCL), incluindo a maioria do seu código fonte. Estão disponíveis componentes de terceiros (por vezes com código fonte completo) e ferramentas para melhorar a IDE ou para outras tarefas de desenvolvimento relacionadas com o Delphi, algumas gratuitas. A IDE inclui uma GUI para localização e tradução de programas criados que podem ser implantados a um tradutor; existem também ferramentas de terceiros com mais características para este fim. A estrutura VCL mantém um elevado nível de compatibilidade de código fonte entre versões, o que simplifica a actualização do código fonte existente para uma versão mais recente do Delphi. As bibliotecas de terceiros precisam tipicamente de actualizações do fornecedor mas, se o código fonte for fornecido, a recompilação com a versão mais recente pode ser suficiente. A VCL foi um dos primeiros a adoptar a injecção de dependência ou inversão de controlo; utiliza um modelo de componente reutilizável, extensível pelo programador. Com os ajudantes de classe, novas funcionalidades podem ser introduzidas no núcleo das classes RTL e VCL sem alterar o código fonte original da RTL ou VCL.
O compilador está a optimizar e passo único. Opcionalmente, pode compilar para um único executável que não requer DLLs. O Delphi pode também gerar DLLs padrão, DLLs ActiveX, servidores de automação COM e serviços Windows.
Os IDEs Delphi desde Delphi 2005 suportam cada vez mais características de refactoring tais como extracção de métodos e a possibilidade de criar modelos UML a partir do código fonte ou modificar o código fonte através de alterações feitas no modelo.
Delphi tem comunidades na web, onde também os seus funcionários participam activamente.
Compatibilidade retroactivaEditar
Embora cada nova versão do Delphi tente manter a maior compatibilidade retroactiva possível para permitir a reutilização do código existente, novas funcionalidades, novas bibliotecas, e melhorias por vezes tornam as novas versões menos do que 100% compatíveis retroactivamente.
Desde 2016, tem havido novas versões do Delphi a cada seis meses, com novas plataformas sendo adicionadas aproximadamente a cada segunda versão.
FrameworksEdit
Delphi oferece duas estruturas para o desenvolvimento de aplicações visuais, VCL e FireMonkey (FMX):
- Biblioteca de Componentes Visuais (VCL) é a estrutura para o desenvolvimento de aplicações Windows puras. VCL é uma estrutura de longa data, incluída no primeiro lançamento do Delphi e activamente desenvolvida desde então.
- FireMonkey (mais tarde abreviada FMX), foi lançada em 2011, como parte do Delphi XE2, juntamente com um conjunto adicional de compiladores incorporados para plataformas não Windows. FireMonkey é uma estrutura multi-plataforma para Windows, macOS, iOS, Android e Linux (x64). As partes GUI do FireMonkey são largamente baseadas em Direct3D e OpenGL. FireMonkey não é compatível com VCL; são duas estruturas separadas. As aplicações FireMonkey permitem, contudo, a partilha fácil de unidades de código não-visuais com aplicações VCL, permitindo que muito código seja portado ou partilhado facilmente entre as plataformas.
InteroperabilidadeEdit
Delphi e a sua contraparte C++, C++Builder, são interoperáveis. Partilham muitos componentes centrais, nomeadamente a IDE, as estruturas VCL e FMX, e grande parte da biblioteca de tempo de execução. Além disso, podem ser utilizados em conjunto num projecto. Por exemplo, C++Builder 6 e posteriores podem combinar o código fonte do Delphi e C++ num único projecto, enquanto os pacotes compilados com C++Builder podem ser utilizados a partir do Delphi. Em 2007, os produtos foram lançados conjuntamente como RAD Studio, um hospedeiro partilhado para Delphi e C++Builder, que pode ser adquirido com um ou com ambos.