Ouvrir le menu principal

Lazarus

logiciel informatique
Page d'aide sur l'homonymie Pour les articles homonymes, voir Lazarus (homonymie).
Lazarus
Description de l'image Lazarus Logo (new).png.
Description de l'image Lazarus IDE 9-26.png.
Informations
Dernière version 2.0.4 ()Voir et modifier les données sur Wikidata
Dépôt svn.freepascal.org/svn/lazarus/trunkVoir et modifier les données sur Wikidata
État du projet en développement actif
Écrit en Object Pascal et PascalVoir et modifier les données sur Wikidata
Environnement Windows, Unix/Linux/BSD, Mac, OS/2, NetWare, ReactOS, HaikuOS, MorphOS, DOS
Langues AnglaisVoir et modifier les données sur Wikidata
Type Environnement de développement intégréVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU et licence publique générale limitée GNUVoir et modifier les données sur Wikidata
Site web www.lazarus-ide.orgVoir et modifier les données sur Wikidata

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 facile à utiliser s'approchant le plus possible de Delphi.

Free Pascal est un compilateur sous licence GPL fonctionnant sous Linux, Windows, OS/2, Mac OS X, BSD, iOS, Android, 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). Ainsi, Lazarus lui-même a été écrit en Pascal et fonctionne avec une seule base de code.

Origine du nom LazarusModifier

Selon les informations données par les développeurs[1], une première tentative de réaliser un clone libre de Delphi avait été lancée sous le nom de Megido en 1998, mais le projet a été abandonné en 1999.

Trois développeurs (Cliff Baeseman, Shane Miller, and Michael A. Hess, qui avaient auparavant essayé de s'impliquer dans le projet Medigo) ont alors entrepris de créer alors Lazarus en février 1999. Ils ne participent plus au projet à présent. Les plus anciens développeurs encore actifs sont Marc Weustink, depuis août 1999, et Mattias Gaertner, depuis septembre 2000.

Par référence au récit de la résurrection de Lazare dans l'Évangile, le projet ressuscité a été baptisé Lazarus.

Lazarus et l'accès à l'interface utilisateurModifier

LCLModifier

La LCL est un jeu de composants visuels. Il y a des composants non visuels manipulables avec aussi du langage procédural[2], plus proche de la machine. Elle est très largement inspirée de la VCL de Delphi, mais elle n'est pas 100 % compatible avec elle. En effet la partie système a été recréée pour se passer de l'API Windows. La partie graphique a aussi été refaite. 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.

WidgetsModifier

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 et marqué comme déprécié.
  • 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 complet depuis Lazarus 2.
  • 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).
  • Qt5 : Support complet depuis Lazarus 2.
  • 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. Il est aujourd'hui déprécié au profit de Cocoa.
  • Cocoa : Ne fonctionne que sous Mac OS X avec support complet depuis Lazarus 2.
  • 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 aux 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éveloppementModifier

Lazarus est un logiciel de type RAD, similaire à l'EDI Delphi[3] d'Embarcadero. Sous Microsoft Windows, Delphi est rapide et dispose d'une documentation plus importante, mais il n'a pas l'ensemble des possibilités multi-plates-formes de Lazarus. À partir de la version 1.4, Lazarus compile en parallèle sur les ordinateurs multicœurs. Les applications Lazarus peuvent être compilées sous Delphi et vice-versa moyennant quelques adaptations aux codes sources (à 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 mais possible.

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 multiplateformeModifier

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. Le clone de Lazarus, Code Typhon, ainsi que FPC Up Deluxe permettent de simplifier la compilation cross-plateforme.

Lazarus supporte également la compilation croisée :

À noter que le support reste partiel sur certains de ces systèmes ou avec certaines combinaisons. Certains set de widgets peuvent également être non disponible sur certains système.

Différences avec DelphiModifier

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

  • Les utilisateurs novices pensent que les fichiers exécutables générés par Lazarus sont plus volumineux que ceux que génère Delphi, parce que par défaut le code de débogage est inclus dans l'exécutable. Mais il suffit de changer les options du projet en spécifiant que le code de débogage doit être dans un fichier séparé ou que les symboles doivent être éliminés de l'exécutable. L'exécution a posteriori de la commande « strip » sur un exécutable permet également de le débarrasser de ces données superflues.
  • Est pratiquement compatible à 100 % avec la VCL. La LCL fournie est suffisante pour la plupart des applications. Des composants libres existent pour anticiper des fonctionnalités non implémentées.
  • Ajoute des composants et des bibliothèques.
  • Réseau : Indy et Synapse fonctionnent, mais pas à 100 % sur toutes les plateformes.
  • Pas de COM.

Code Typhon et New PascalModifier

Lazarus nécessite de s'informer, afin d'installer des composants. Les logiciels Code Typhon[4] et New Pascal[5] permettent de regrouper beaucoup de composants Lazarus que l'on peut trouver sur le web.

Cependant en 2017, FPC Up Deluxe et On Line Package Manager permettent de compiler rapidement Lazarus, même si Code Typhon sert toujours pour télécharger les paquets.

LicenceModifier

L'EDI Lazarus est distribué sous licence GPL. La Lazarus Component Library (LCL) est distribuée sous licence proche de LGPL, ce qui permet de distribuer des applications propriétaires utilisant Lazarus sans fournir le code source[6]. Ainsi, Code Typhon ajoute des composants privatifs et gratuits à Lazarus.

RéférencesModifier

  1. About Lazarus Project
  2. GNU/Linux Magazine n° 161 - juin 2013
  3. Magazine Programmez du mois d'octobre 2012 sur la migration vers Lazarus
  4. Magazine Programmez n°193 de février 2016
  5. New Pascal
  6. (en) « Lazarus FAQ - Licensing »

Voir aussiModifier