Lazarus

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Lazarus (homonymie).
Lazarus
Image illustrative de l'article Lazarus
Logo

Lazarus 0.9.26
Lazarus 0.9.26

Développeur Volontaire
Dernière version 1.0.10 (12 juin 2013) [+/-]
État du projet en développement actif
Écrit en Pascal
Environnement Windows, Mac, OS/2, Unix/Linux/BSD, NetWare, MorphOS, DOS
Type RAD et EDI pour Free Pascal
Licence GPL, LGPL
Site web www.lazarus.freepascal.org

Lazarus est un RAD/EDI multiplateforme développé en Free Pascal pour Free Pascal. Son objectif est de fournir aux programmeurs Pascal Objet un environnement de développement s'approchant le plus possible de Delphi.

Free Pascal est un compilateur sous licence GPL fonctionnant sous Linux, Win32, OS/2, Mac OS X, BSD, etc. Il est conçu pour interpréter et compiler le Pascal Objet de Delphi. À la différence de Java dont le slogan est « write once run anywhere » (écrire une fois, exécuter partout), celui de Lazarus et Free Pascal est « write once compile anywhere » (écrire une fois, compiler partout).

Lazarus et l'accès à l'interface utilisateur[modifier | modifier le code]

LCL[modifier | modifier le code]

La LCL est un jeu de composants visuels et non visuels ainsi que de procédures et fonctions. Elle est très largement inspirée de la VCL de Delphi, mais elle n'est pas 100 % compatible avec elle. La LCL est conçue pour être multiplateforme. Les classes de services de la LCL (TList, TAction par exemple) sont 100 % compatibles avec celles de la VCL.

Widgets[modifier | modifier le code]

La LCL a été spécialement conçue de manière à pouvoir créer des applications utilisant différents widgetset sans avoir à modifier le code. Par exemple, toute application peut être recompilée pour utiliser Qt ou GTK en ne changeant qu'une simple directive de compilation. Ceci fait de la LCL une interface commune à la plupart des widgetset courants. Cependant l'utilisation de fonctions avancées (appel direct aux fonctions du widgetset ou d'options spécifiques) compromet cette possibilité. Les widgetset actuellement supportés sont :

  • GTK 1 : Support complet, utilisé par les anciennes applications Gnome sous Unix, GIMP 1.x sous diverses plateformes. Il est aujourd'hui considéré comme obsolète.
  • GTK 2 : Support complet, version actuelle de GTK utilisé par Gnome 2, GIMP 2.x et bien d'autres. Utilisation conseillée pour une bonne intégration sous Gnome, XFCE et autre ou pour des applications multiplateformes (Windows, Mac, Unix).
  • GTK 3 : Support expérimental en cours de développement.
  • Qt : Fondé sur la version 4.5 ou supérieure de Qt, le support complet. Ce widgetset est utilisé par KDE 4 et beaucoup d'autres sous Unix. Utilisation conseillée pour une bonne intégration dans KDE et pour les applications multiplateformes. Qtopia est également supporté le rendant idéal pour les applications embarquées (sur Palm OS ou Windows Mobile par exemple).
  • Win32/64 : Ne fonctionne que sous Windows avec un support complet, utilisé par l'ensemble des logiciels ne fonctionnant que sous Windows. Supporte les extensions de Windows XP.
  • WinCE : Ne fonctionne que sous Windows CE avec support en phase bêta, utilisé sur les systèmes embarqués fondés sur Windows CE (PDA, téléphones portables...).
  • Carbon : Ne fonctionne que sous Mac OS X.
  • Cocoa : Ne fonctionne que sous Mac OS X avec support en phase bêta, utilisé par l'ensemble des logiciels ne fonctionnant que sous Mac OS X.
  • fpGui : Ce widgetset est propre à Free Pascal et vise à proposer un système de widget multiplateformes, ne requérant aucune bibliothèque logicielle et proposant une interface commune au applications Free Pascal.
  • NoGUI : En phase alpha, à utiliser avec précautions, ce widgetset est abstrait et permettra de recompiler des applications où l'interface utilisateur est optionnelle de manière à le faire disparaître sans avoir à modifier le code.
  • Lazarus Custom Drawn Controls : Backend LCL multiplateforme complètement écrit en Pascal Objet dans Lazarus. Il s'agit de l'interface de Lazarus pour Android.

Processus de développement[modifier | modifier le code]

Lazarus est un logiciel de type RAD, similaire à l'EDI Delphi d'Embarcadero. Sous Microsoft Windows, Delphi reste le plus stable et a la meilleure documentation, mais il n'a pas les possibilités multiplateforme de Lazarus. Sous Linux, Lazarus est l'un des meilleurs EDI disponibles. Les applications Lazarus peuvent être compilées sous Delphi et vice-versa moyennant quelques adaptations aux programmes (à comparer à la réécriture complète du code lorsque la bascule se fait d'un langage à un autre). Ce processus est plus facile lorsque le programme ne fait pas appel à des formulaires générés par l'éditeur car il y a certaines incompatibilités. Les composants de Delphi peuvent être installés sous l'EDI, mais ils doivent être convertis, via un processus complexe.

Lazarus est sur la bonne voie pour devenir un puissant EDI RAD. Le projet Lazarus a une communauté importante de développeurs et de testeurs. La communauté résout les problèmes au travers de groupes de discussion, et les programmeurs envoient les correctifs. Les versions sont générées automatiquement pour être testées, ce qui rend le développement de Lazarus très dynamique.

Free Pascal inclut un mode de compatibilité avec Delphi, introduit par la directive {$MODE DELPHI}, qui rend les programmes console et les codes sans IHM compatibles avec Delphi. Plus qu'avec un autre langage, il est nécessaire de séparer le fond (code opérationnel) de la forme (interaction avec l'IHM).

Développement multiplateforme[modifier | modifier le code]

Free Pascal supporte la compilation sous plusieurs systèmes d'exploitation ainsi que la compilation croisée, par exemple de Windows à Linux, et vice versa.

Lazarus supporte également la compilation croisée :

À noter que le support reste partiel sur certains de ces systèmes.

Différences avec Delphi[modifier | modifier le code]

Lazarus ressemble à Delphi sur de nombreux points. Il a cependant quelques limitations en comparaison :

  • Les fichiers exécutables générés par Lazarus sont par défaut plus volumineux que l'équivalent en Delphi par mesure de sécurité. Cependant, il est toutefois possible de compiler un projet avec des tailles d'exécutables très acceptables en modifiant les options nécessaires au débogage (compilation de projets finis).
  • Est pratiquement compatible 100 % avec la VCL, mais la LCL fournie est suffisante pour la plupart des applications.
  • Ajoute des composants et des bibliothèques.
  • Réseau : Indy et Synapse fonctionnent, mais pas à 100 % sur toutes les plateformes ; lNet continue son développement tout particulièrement sous Free Pascal Lazarus.
  • Pas de COM.
  • MAJ : Le TFrame est supporté et fonctionne correctement.

Licence[modifier | modifier le code]

Puisque Lazarus est sous les licences GPL et LGPL, les logiciels développés avec lui peuvent être diffusés sous n'importe quelle licence. En effet, la Lazarus Component Library (LCL) est liée statiquement au programme et sa licence est une version modifiée de la LGPL spécialement conçue pour permettre la création de programmes propriétaires.

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]