# Xojo

Xojo (anciennement REALbasic), est un langage de programmation inspiré du Visual Basic 6 de Microsoft qui fonctionne sur Mac OS X, Windows et Linux. Xojo fut créé par Andrew Barry. Il s'appelait originellement CrossBasic (cross=transversal) car il était capable de compiler le même code de programmation pour Mac et Java (le système de développement était uniquement sur Mac). En 1997, CrossBasic fut racheté par FYI Software qui changea son nom en RealBasic tandis que la société s'appela REAL Software. À la suite de cela, la version Java fut abandonnée. Puis ultérieurement RealBasic et Real Software furent renommés respectivement Xojo et Xojo Software.

## Généralités

Xojo, est le langage de l'environnement de développement Real Studio. Ce langage de programmation s'inspire initialement du visual basic 6 de Microsoft, bien qu'il ait énormément évolué depuis sa création. Il est totalement orienté objet, typé et multi thread. Cet outil de développement fonctionne sur Mac OS X, Windows, Linux, iOS et Raspberry, et est capable de compiler des logiciels pour les mêmes plateformes, sous réserve d'avoir acheté la version Pro.
Actuellement, c'est la version 2021 r3 qui est commercialisée. Cet outil de développement permet notamment de générer des applications pour Mac OS, Windows, iOS, Raspberry Pi, et pour le web. Xojo est pratique, il permet de développer facilement et rapidement, et surtout pour plusieurs plateformes ce qui évite de redévelopper plusieurs fois les mêmes applications. En fonction de la complexité de ces dernières, on ne pourra cependant se passer de vérifier la compatibilité et surtout la pertinence de votre code (notamment de l'interface utilisateur) avec tous les systèmes. Xojo offre heureusement la possibilité de faire varier le code en fonction de la plateforme cible.
Xojo permet de développer des applications consoles, graphiques ou web. Il est disponible en 4 versions : personnelle, professionnelle, entreprise et web.

## Base de données

Ce langage inclut des connecteurs aux bases de données les plus répandus : SQLite, MySQL, Oracle Database, Microsoft SQL Server, ODBC...
Les utilisateurs de la version personnelle devront cependant se contenter de SQLite et MySQL community edition.

## Enrichissement du langage par plug'in

Il existe toute sorte de modules du gratuit jusqu'à plusieurs milliers d'euros qui vous permettrons d'enrichir les fonctionnalités du langage. C'est d'ailleurs à la fois un avantage et un inconvénient. Si bien évidemment l'enrichissement du langage par module permet d'ouvrir de nouvelles perspectives elles augmentent considérablement le cout de votre solution de développement. Or un des grands avantages de Xojo c'est le prix : 79 € HT pour la version personnelle et 249 € HT pour la version professionnelle. Si l'on est tenté d'acheter des modules supplémentaires le coût total peut vite atteindre le même niveau que des environnements de développement ultra professionnel contre qui Xojo aura du mal à lutter.
L'achat de modules n'est pas non plus indispensable car Xojo est très complet, cela constitue néanmoins une option intéressante et viable dans certains cas.

## Facilité de déploiement chez le client

Un des très grand avantages de ce langage c'est que l'application qu'il génère ne nécessite aucune installation sur l'ordinateur de l'utilisateur final. Les applications Xojo fonctionnent donc parfaitement sur une clé USB. C'est une des raisons principale du succès de ce langage. On peut déposer par copier coller l'application n'importe où sur un disque externe ou interne : elle fonctionnera de façon identique.

## Débogage à distance

Avec Xojo vous pouvez déboguer une application qui s'exécuterait sur un poste distant depuis votre poste de développeur. Cela permet de cerner et de résoudre plus rapidement et facilement les problèmes.

## Liens avec pack office de Microsoft

Si vous optez pour la version Windows, vous aurez à votre disposition des contrôles qui vous permettrons de piloter Excel, Word et PowerPoint. Il vous sera donc possible par exemple de générer des documents Excel avec Xojo.

## GUI (Graphic User Interface) et Code

Dans Xojo, on peut noter deux grandes interfaces notables. Le code et l'interface graphique, en anglais le 'Graphic User Interface'. Le principal système de l'interface graphique est le système de 'drag & drop' (Glissez et déposer) qui s'avère être très simple. Il suffit de glisser les outils vers une fenêtre qui représente votre programme.
L'intégration du code dans la GUI est extrêmement bien faite et surpasse dans ce cadre beaucoup d'autres outils de développement plus onéreux. La façon dont les fonctions, procédures, classes, module, variables … sont visualisés permet non seulement de mieux concevoir le projet, mais elle apporte aussi une vision claire de la structure de chaque élément. Il devient ainsi plus facile de reprendre un programme que l'on a laissé de côté plusieurs mois ou de lire le code d'un autre programmeur.

## Exemple de code

Voici un exemple de surcharge d'opérateur pour une hypothétique classe de nombre complexe afin d'additionner un nombre réel ou complexe à un autre nombre complexe :
La même fonction peut être définie pour accepter des nombres en double précision. Ce code montre comme utiliser cette classe de complexe pour additionner un réel à un complexe :

## Types de projets envisageables

Xojo fera des merveilles pour les personnes qui désirent développer des applications de saisies de données standard. On développera avec des programmes de gestion de fichiers clients, des gestions de compte bancaire ou de documents comptables, interrogations de bases de données, etc. Il conviendra aussi bien au développeur de shareware qu'à l'informaticien d'une PME qui désire développer des applications internes. Les difficultés surviendrons plutôt lorsque l'on voudra développer des applications qui nécessitent la collaboration de beaucoup de développeurs ou des projets ambitieux. Xojo n'est pas reconnu comme un outil majeur dans le monde du développement. Il n'est pas facile par exemple d'éditer des états papiers très complexes (étiquettes avec images, etc.). Le programmeur devra donc avoir un recours plus grand à la ligne de code pour rivaliser avec des logiciels qui ont été développés avec des outils plus puissants (Visual studio, Windev, etc.).
Il existe cependant une vieille controverse chez les programmeurs pour qui le basic est longtemps resté synonyme de langage de débutant. Soyons clair, il n'existe pas de logiciel poids lourds de l'informatique développé en basic. Mais ce type de langage a fortement bénéficié de l'évolution de puissance des ordinateurs et on ne peut plus dire de nos jours que programmer en basic constitue un désavantage. Le développeur basic recherche la simplicité du langage et veut un résultat rapide souvent dans le cadre d'un projet à l'ambition moyenne. Xojo ne requiert pas la même technicité que le C++, C sharp ou Objective C, ni le même investissement intellectuel. Il cherche simplement à proposer un outil généraliste et efficace dans les projets les plus communs. En s'appuyant sur une interface utilisateur très ergonomique, Xojo s'éloigne des basics des années 1980 avec qui finalement, il ne partage plus rien.
Xojo est actuellement l'une des très rares solutions de développement multiplateforme très facile d'accès autant au niveau de l'utilisation qu'au niveau du prix.

## Un potentiel pédagogique important

Xojo conviendra aussi aux professeurs qui enseignent la programmation dans les collèges et lycées par le fait qu'il permet par un apprentissage rapide d'accéder à des préceptes de programmation avancés. Le professeur pourra donner à ses élèves le goût de la programmation. Ces derniers pourront en quelques heures s'étonner de leur création. L'avantage est double : les élèves ne sont pas découragés et la durée d'apprentissage étant réduite, il reste plus de temps pour se concentrer sur les objectifs à atteindre.

## Un système communautaire intégré

Xojo inclut un système ingénieux (et gratuit) de rapport d'erreur. Si l'on rencontre un bogue dans Xojo, si l'on souhaite une évolution ou si l'on désire partager des idées, on peut utiliser "Feedback". Il s'agit d'un logiciel qui met en contact avec la communauté (anglophone) de Xojo. Les ingénieurs de Real software scrutent les questions et y répondent quand cela est nécessaire.

## Logiciels développés sous Xojo

* RealCADD, logiciel de CAO 2D pour l'Architecture (en particulier les plans d'exécution).
* ohmiGene, logiciel de généalogie (http://ohmi.celeonet.fr/ohmiGene/indexFR.html)
* Des interfaces pour utiliser des programmes existant dans les distributions GNULinux utilisant Xojo avec Python : HTMLtoPDF, Package converter, DivX Converter, APT sources Manager, etc. (http://code.google.com/p/foxoman/)

## Rythme et coût des mises à jour

Real Software procède à une mise à jour majeure par an. Puis au cours de l'année le produit évoluera par une mise à jour mineure (correction de bugs) tous les 90 jours environ. L'achat d'une licence entraine 6 mois de mises à jour gratuites. Passé ce délai, les mises à jour seront payantes.
En fait l'utilisateur devra souscrire s'il veut bénéficier des évolutions du produits d'un plan de mise à jour pour une durée de une à deux années (renouvelable). Le coût des mises à jour est d'environ à 39 € par an pour la version personnelle, 120 € par an pour la professionnelle et 415 € par an pour la version entreprise.