# Lazarus (ADI)

Lazarus é um ambiente de desenvolvimento integrado desenvolvido para o compilador Free Pascal. O software objetiva ser compatível com o Delphi e, ao mesmo tempo, suportar diversas arquiteturas e sistemas operacionais.
Free Pascal é um compilador de Object Pascal que roda em Linux, Windows, OS/2, Mac OS tradicional, Mac OS X, ARM, BSD, BeOS, DOS e mais. Ele foi desenhado para compilar código com a sintaxe do Delphi ou dos dialetos Pascal do Macintosh e gerar executáveis para diferentes plataformas a partir de um mesmo código-fonte.

## Aplicações

O desenvolvimento cross-plataforma é a característica principal do Lazarus. Um exemplo de aplicação é o Peazip.

## LCL

A LCL (Lazarus Component Library) é um conjunto de classes e componentes visuais e não visuais que funciona em múltiplas plataformas chamando as funções de diferentes bibliotecas de interface de usuário em diferentes plataformas.

## Interfaces para kits de desenvolvimento

Kits de desenvolvimento são as bibliotecas que os programas produzidos pelo Lazarus utilizam para criar interfaces gráficas nos diferentes sistemas operacionais.
O status atual das interfaces é este:
* API do Windows (win32) está plenamente funcional.
* GTK 1.2.x está plenamente funcional tanto no Linux quanto em outros sistemas operacionais derivados do UNIX, como o Mac OS X.
* GTK 2.6+ está plenamente funcional, mas a IDE ainda apresenta alguns problemas menores quando compilada com esta interface.
* QT 4.2+ possui cabeçalhos traduzidos, e a interface está parcialmente funcional e em desenvolvimento.
* wxWidgets (C++) não possui cabeçalhos traduzidos ainda.
* Cocoa (Nativo do Mac OS X, Objective C) não possui cabeçalhos traduzidos ainda.
* Carbon (Nativo do Mac OS X) está parcialmente funcional e em desenvolvimento.
* wince (Nativo do Windows CE) está parcialmente funcional.
* fpGUI (Toolkit escrito inteiramente em Object Pascal) precisa esperar até que a API do fpGUI estabilize.

## Suporte para PDAs

Atualmente não existe uma ferramenta multiplataforma para PDAs ou uma boa IDE RAD. Suporte para PDAs está sendo implementado no Lazarus para ocupar este espaço vazio.
Plataformas onde uma interface para a LCL está sendo construída:
* Windows CE (Pocket PC e Smartphones)
* Qtopia para PDAs baseados no Linux (Zaurus)
possível no futuro:
* PalmOS
* Symbian OS

## Processo de Desenvolvimento

O projeto Lazarus possui uma boa comunidade e um processo eficiente de desenvolvimento, com muitos contribuidores e testadores. A comunidade resolve os problemas através de discussões, e programadores submetem patches para corrigir os problemas. A cada noite, pacotes pré-compilados são gerados com o último código para os testadores, o que torna o processo de desenvolvimento do Lazarus altamente dinâmico.

## Bancos de Dados

O Lazarus possui suporte para vários bancos de dados. Os pacotes adequados, porém, não vêm pré-instalados. Se todos os pacotes viessem instalados, o programador precisaria ter disponíveis as bibliotecas para acessar todos os bancos de dados. Para ativar o suporte para um deles, basta instalar o pacote adequado. Os pacotes vêm junto com a instalação do Lazarus.
O acesso aos bancos de dados pode ser feito por meio de código, ou colocando componentes num formulário ou janela. Os componentes sensíveis a dados (ou data-aware) representam os campos de uma tabela representada por um TDataSource. A conexão entre ambos é feita através de propriedades. A tabela por sua vez está associada a um banco de dados por meio de componentes específicos, como TPSQLDatabase, TSQLiteDataset ou outros.
Os seguintes bancos de dados são suportados:
* PostgreSQL: requer o pacote PSQL
* DBase e FoxPro podem ser acessados sem a necessidade de um servidor ou uma biblioteca externos através do componente TDbf
* MySQL é suportado
* SQLite precisa apenas de uma única biblioteca externa e do componente TSqliteDataset
* MSSQL funciona com o Zeoslib
* Interbase / Firebird também funcionam com o último Zeoslib

## Cross desenvolvimento

O Free Pascal suporta cross-compilação, e aplicativos do Lazarus podem ser cross-compilados de Windows para Linux e FreeBSD e vice versa. Compilar do Mac OS X para Windows, Linux e FreeBSD é possível. Cross-compilar para OS X pode ser feito, mas ainda é difícil.
Cross-compilação também é utilizado corriqueiramente durante o desenvolvimento de aplicados para PDAs com o Lazaraus. como aplicativos para Windows CE.

## Licença

Apesar do Lazarus ser licenciado em GPL, software desenvolvido com ele pode ser distribuído sob qualquer licença. A biblioteca de componentes do Lazarus (LCL, do termo inglês Lazarus Component Library), é ligada estaticamente ao executável sob uma licença LGPL modificada, que permite a vinculação dela a programas proprietários.
Note que instalar pacotes equivale a ligar o programa à IDE. Então distribuir o Lazarus com pacotes pré-instalados feitos sob licenças não compatíveis com a GPL é uma violação da licença. Apesar disso é possível desenvolver pacotes do Lazarus proprietários, desde que não se distribua a IDE com eles pré-instalados.