4e Dimension a été depuis 1986 la base de données relationnelle (SGBD) sur Mac. Depuis 1995, son éditeur français, ACI, qui a changé de nom pour devenir simplement 4D, l'a porté sur Windows, la dotant de l'atout " universalité " qui lui manquait par rapport à ses concurrents principaux: Omnis et FileMaker.
La société, mise toujours plus sur le Web, preuve en est son rachat de la suite WebSTAR Server Suiteô il y a plus d'un an.
4D Webstar est un intégré tout à la fois serveur Web, FTP, Mail et Proxy.
Ce rachat permet à 4D de disposer de nouvelles connaissances grâce à l'arrivée des ingénieurs de haute volée qui constituent l'équipe de développeurs de cette suite. A l'heure où j'écris ces lignes, 4D WebStar est en 7e position sur le marché, toutes machines confondues. Ainsi, près de 380 000 sites sont basés sur ce logiciel. Le portail Web principal de l'armée américaine est d'ailleurs sur Mac et Webstar, ce qui montre le haut niveau de sécurité obtenu avec cette association.
Le programme arrive maintenant dans une version 6.8 et nous offre au passage (enfin!) une carbonisation réussie. À noter que ce passage à MacOS X a été bien plus difficile que prévu. En effet, il a fallu un an et demi à une équipe de 7 personnes pour y parvenir. Il faut préciser que 4D était multi-process depuis de longues années avec son propre système de fonctionnement, et qu'il a fallu revoir certaines parties du moteur de fond en comble pour s'adapter à MacOS X qui l'est aussi mais d'une autre manière. Cela a coûté bien cher, mais comme promis, les utilisateurs de la version 6.7 se voient offrir la mise à jour 6.8. Merci à 4D d'avoir tenu parole.
Les développeurs travaillant sous 4D vont ainsi pouvoir mettre à jour leurs applications de manière extrêmement simple pour MacOS X, ce qui devrait amener pas mal de nouveaux logiciel sur notre nouveau système, comme par magie. Le seul frein à ces mises à jour consiste dans le fait que les programmeurs doivent attendre que les plug-ins soient également développés pour MacOS X, puisque leur déclinaison en Classic ne peut pas être intégrée au nouveau système. Il faudra donc dans certains cas encore un peu de patience.
Pour mettre en valeur ce programme exceptionnel qu'est 4D, je vais pratiquer d'une manière un peu provocante peut-être, soit montrer tout ce qu'il y a de mauvais dans le programme concurrent (l'est-il vraiment au fait?) qu'est FileMaker. Si vous êtes un fidèle de Cuk.ch, vous savez tous ce que je pense de ce programme. Les paragraphes suivants auront donc peut-être pour vous un petit air de déjà vu.
Au sujet de la concurrence...
Bien sûr, si l'on veut créer une base de données personnelle, à son propre usage, FileMaker permet de parvenir rapidement à ses fins et ce de manière relativement simple, sans jamais avoir à apprendre à programmer.
Néanmoins, avez-vous déjà travaillé avec des applications professionnelles faites à l'aide de FileMaker?
Moi oui, tous les jours...
Elles présentent toujours les mêmes caractéristiques:
- les formulaires (modèles) sont remplis de boutons plus ou moins abscons (plutôt plus que moins d'ailleurs!). Raison? FileMaker est incapable de créer une barre de menus personnalisée. Ces derniers sont ceux de FileMaker lui-même, souvent parfaitement inutiles. Les boutons d'accord, mais avec modération. Ce n'est pas pour rien qu'Apple a mis en valeur une interface basée sur les menus déroulants nom d'une pipe.
- les bulles d'aide sont impossible à personnaliser. Vous mettez le curseur sur un bouton, et l'aide vous explique avec la tendresse qui la caractérise "Ceci est un bouton". Super...
- une lettre mailing ne pourra dépasser une page(!)
- si plusieurs fichiers sont ouverts (vous avez créé une base relationnelle, bravo!), les fenêtres de tous les fichiers viennent s'empiler les unes sur les autres
- toujours dans le cas d'une base multi-fichiers, l'ouverture de votre base est interminable
- les données et la structure du fichier ne font qu'un, ce qui exige un export-import lors de chaque changement de version de l'application (la base en fait, pas FileMaker lui-même). C'est dangereux, ennuyeux, également interminable, et ce même s'il s'agit simplement d'une simple petite modification de la structure
- ces applications demandent à l'utilisateur de savoir faire fonctionner FileMaker
- pour le programmeur, développer sous FileMaker, c'est le règne du bricolage
Observons maintenant 4D
Avec 4D, toutes les critiques listées ci-dessus sont balayées.
4D, c'est exactement l'inverse de FileMaker. Si vous voulez créer de zéro, soit sans connaissance, une application simple que vous seul devrez comprendre, acheter ce programme n'en vaut peut-être pas la peine.
Par contre, si vous voulez travailler de manière professionnelle ou simplement sérieuse, pouvoir créer une base qui puisse être exploitée par d'autres et ce de manière limpide, 4D est LE programme qu'il vous faut.
Bien sûr, ce programme demande au départ, pour celui qui conçoit la base de donnée un effort d'apprentissage de programmation. L'utilisateur de votre application par contre, si la base est bien programmée, ne verra même pas qu'il est, en fait, sous 4D.
Mais qui est Utilisateur 4D? Vous sans doute, peut-être sans le savoir. En effet, dès qu'une application verticale fait appel à la gestion de données (un gestionnaire de temps, de contacts ou de compte bancaire), il est probable que son concepteur ait fait appel au moteur de 4e dimension.
Car 4D, bien plus qu'un programme de base de données, est un langage de programmation riche et relativement facile à mettre en úuvre. C'est tant mieux d'ailleurs puisque sans passer par des méthodes (des scripts) créées par l'utilisateur, il est pratiquement inutilisable.
4D dit Table pour Fichier, Enregistrement pour Fiche et Champ pour Rubrique, afin d'être compatible avec la plus grande partie des autres moteurs de base de données, entre autres sur Windows ou Unix.
4D parle français (ou anglais). Pour une fois, n'ayez pas peur d'employer la sémantique de la langue de Molière. 4D étant au départ créé par nos voisins, il n'y a aucune chance que la programmation dans notre chère langue soit abandonnée (contrairement à Wingz à l'époque par exemple).
Le nombre de tables mises en relations par des liens est limité à 255 et le fichier de données ne peut dépasser 256 Gigas (que 4D se chargera de partager en segments de 2 Gigas) valeurs théoriques qui ne devraient jamais être utilisées dans une base réelle. Enfin, allez savoir! N'a-t-on pas dit en 1982 que 512 Kb (j'ai bien écrit Kb) et 10Mb de HD seraient largement suffisant pour le futur? Toutes ces tables sont ouvertes en transparence et sont créées à l'intérieur de la structure. Vous n'avez ainsi pas autant de fichiers sur le disque que de tables, et l'application s'ouvre très rapidement.
4D vous permettra également de créer des boutons et autant de menus personnalisés dans votre base, lui donnant un caractère professionnel.
3 modes caractérisent ce programme:
- le mode Structure, celui dans lequel vous créez, dessinez, programmez votre propre application
- le mode Utilisation (qui ne sert à mon avis pratiquement à rien) permettra à ceux qui ne désirent pas programmer d'utiliser des bases simples
- le mode Menus créés, celui qui sera normalement utilisé par vous-même lorsque votre base sera prête, par l'internaute qui accèdera à votre base sur le Web, par l'utilisateur qui aura acheté votre propre application faite à l'aide de 4D ou qui simplement devra travailler avec elle
Le développeur que vous n'allez pas manquer de devenir passera sans cesse du mode Structure au mode Menus créés d'un simple clic de souris.
Partir de zéro
Créer une base de données à partir de rien donne matière à réflexion. Il faut, le plus souvent, poser ses données sur une feuille de papier, se créer en quelque sorte un plan de travail. 4D ne coupe pas à la règle, mais la création de tables et des rubriques qui la constituent est un jeu d'enfant dans la fenêtre structure, fenêtre qui devient est encore plus claire depuis la version 6 grâce à l'usage généralisé sur tous les objets de la couleur.
De même, tirer un lien entre deux tables se fait de manière simple: il suffit d'utiliser la souris et de tracer une droite entre la rubrique de départ d'une table et la rubrique cible d'une autre. Rappelons que les liens qui sont la base des SGBD servent à éviter la redondance de données. Ainsi, si l'on crée une facture, il suffira d'indiquer le numéro du client, pour autant qu'il existe, afin de faire apparaître ses coordonnées. Ces dernières ne seront stockées qu'une seule fois, d'où gain de place. Le lien permettra également, s'il s'agit d'un nouveau client, et toujours depuis la facture, de créer un nouvel enregistrement dans le fichier des clients, sans perte de temps. Ces liens pourront fonctionner dans les deux sens: il sera également possible, en consultant la fiche d'un client, d'avoir accès à toutes ses factures. Chaque table pourra apparaître sous la forme de différents formulaires, en d'autres termes, il sera possible de voir les données d'un fichier de différentes manières.
Au sujet des formulaires
Les formulaires (modèles chez qui vous savez) seront également utiles pour créer des zones de dialogue. Leur création en est grandement facilitée grâce à deux palettes parfaitement organisées pour notre plus grand confort, qui deviennent magnétiques depuis la version 6.8 (elles peuvent se "coller" à la barre de menus).
La palette Outils regroupe les différents...outils proposés par 4D qui permettent de placer des figures géométriques, des champs, des blocs de texte, des zones de défilement, des onglets, des variables calculées et j'en passe. Des fonctions d'alignement et de répartition des objets fort utiles sont également proposées.
La seconde palette ne dépaysera pas les utilisateurs de programmes comme RealBasic (VisualBasic sur Windows) puisqu'elle regroupe la liste des propriétés de chaque objet composant le formulaire. Cette palette, nommée Liste des propriétés s'adapte automatiquement au type d'objet sélectionné, bouton, dessin, champ, texte, formulaire lui-même.
Tout ce qui était disséminé alors dans différents menus ou différentes palettes flottantes se retrouve groupé ici, de manière claire, d'où un gain de temps précieux. Ainsi, le programmeur pourra sans difficulté et sans aucune limite adapter son interface à ses goûts.
Des formulaires semi-automatiques de bonne facture peuvent aussi être créés, avec des effets 3D par exemple. Au fur et à mesure de la création de ces formulaires, vous voyez le résultat dans un aperçu à droite de la fenêtre de création.
Un tel formulaire peut être modifié sans qu'il perde tous les avantages des automatismes (en version 6.0, les boutons par défaut étaient supprimés dès qu'un bouton était créé par le programmeur). Toujours dans le domaine de la création de l'interface, il est possible de donner aux éléments du formulaire (les champs ou leur libellé entre autres) différents effets de relief à l'aide de raccourcis claviers, ce qui évite de fastidieuses heures de travail juste pour des finitions esthétiques.
De plus, les intitulés comme les bulles d'aide sont dynamiques. Il est ainsi possible d'y insérer des variables. Ainsi, si un champ contient la valeur 750, la bulle d'aide pourra afficher: "750 est la somme totale avant ajout de la TVA".
Les objets peuvent se voir attribuer des options de redimensionnement ou de déplacement automatiques (horizontal et/ou vertical), ce qui est très pratique lorsque l'utilisateur final décide d'agrandir ou de rapetisser sa fenêtre.
Grâce aux de nouveaux outils séparateurs apparus depuis la version 6.7, ce dernier pourra, si le développeur lui en laisse la possibilité, réorganiser son formulaire comme bon lui semble. Cela sera surtout utile pour redimensionner des colonnes dans un formulaire de type "liste" (sortie dans le jargon 4D)
De plus, les menus contextuels ont été implémentés et augmentent encore la facilité avec laquelle on accède à tout ce qui est nécessaire au moment précis où on en a besoin. Enfin, des options d'affichage apparaissent: il est ainsi possible de voir un formulaire comme il apparaîtra en mode Utilisation ou Menu Créé sans quitter le mode Structure.
L'héritage de formulaires
4D permet de créer des gabarits de formulaires appelés formulaires hérités. Tous les formulaires qui dépendent de ce dernier seront composés des éléments du formulaire hérité, et des siens propres.
Gros avantage: si l'on change un élément du formulaire hérité, tous les formulaires qui y sont rattachés sont changés automatiquement. Et comme une illustration est souvent plus parlante que des longues phrases, voici une figure tirée du manuel qui devrait vous faire bien comprendre ce principe:
Détail important: il faut refermer le formulaire hérité pour que ses "enfants" soient modifiés.
Cette nouvelle fonction est fort utile, puisqu'une table(un fichier contenant des données) est presque toujours éditée dans plus d'un formulaire. Le gain de temps et la facilité de maintenance sont énormes.
Petit bémol, mais qui tient à la nomenclature de la fonction: hérité est trop près d'héritier. J'aurais personnellement préféré le nom de Formulaire Père, et, pour les formulaires rattachés, la notion de Formulaire Enfant. Il me semble que cela aurait été plus clair.
Page 0 d'un simple clic ou le confort, il n'y a que ça de vrai
Depuis la version 6, 4D nous offre des formulaires multi-pages avec une page 0, qui est elle-même un gabarit pour toutes les autres pages du même formulaire. C'est sur cette page 0 qu'on mettra les boutons de validation et d'annulation par exemple. Grosse nouveauté introduite dans la version 6.7 qui fait gagner également pas mal de temps: il est maintenant possible d'atteindre cette page 0 en commande-cliquant tout simplement sur un de ses éléments.
4D gérant les feuilles de style, il est maintenant possible d'afficher directement la zone dédiée à leur réglage depuis un bouton placé dans la palette de propriété. Pratique aussi.
Le petit bouton sous le curseur pour appeler la zone des feuilles de style...
...et la zone affichée appelée par ce dernier
Et pour l'esthétique de votre base, une option "Thème Mac" est maintenant disponible. Elle fera en sorte d'adapter vos formulaires au look du thème Mac que vous aurez réglé dans le tableau de bord Apparence sous MacOS 9. 4D spécifie bien que cette option n'est garantie qu'avec les thèmes fournis par Apple. En ce qui concerne MacOS X, si vous n'avez pas utilisé des styles de boutons personnalisés ou des fonds particuliers de formulaires dans vos créations sous MacOS 9, le passage au look Aqua est automatique.
Un langage de programmation impressionnant
Programmer avec les 500 commandes de 4D est un réel plaisir. La fenêtre de de l'éditeur de méthode, où l'on tape son code, est parfaitement structurée, avec indentation automatique du texte tenant compte des niveaux d'imbrication de vos commandes.
C'est propre, et la version 6.8 ajoute encore un confort appréciable de par son menu contextuel qui liste les commandes (classées par thème), les champs ou les méthodes disponibles.
Vous créerez des méthodes (appelées dans d'autres programmes procédures) qui seront associées à un bouton, un champ, un formulaire ou directement à la base.
Ces méthodes pourront également être liées à un événement comme (pour ne prendre que quelques exemples) un clic sur un objet, une ouverture ou une fermeture de formulaire, un appui sur une touche du clavier et j'en passe. Une méthode peut en appeler une autre, et peut être réutilisée à différents endroits.
Une même méthode sera par exemple lancée aussi bien par un bouton que par une commande de menu. Notons à ce niveau que vous pourrez créer autant de barres de menus personnalisées que vous le désirez, et que ces barres pourront être associées à différents formulaires.
Tout est possible sous 4D, et comprendre son code est tellement plus simple que relire un script dans FileMaker...
Un explorateur et un débogueur indispensables
Comme nous l'avons vu, le développement d'une base de données, impose de nombreuses manipulations de tous les objets qui la composent. La version 5 de 4D imposait de passer par l'intermédiaire de nombreuses commandes de menus. La version 6 a amené une nouvelle fenêtre appelée "Explorateur", qui regroupe tous les éléments composant la base, comme toujours classés sous forme d'onglets. Ainsi, retrouver un fichier, un formulaire, une méthode, une commande de programmation, une variable ou une constante, ou encore une énumération se fait d'un clic de souris.
La fenêtre affiche à droite une prévisualisation du contenu de l'objet sélectionné ou un commentaire qui pourra y être ajouté pour plus de clarté (ah, les commentaires, ce qu'on est content de les retrouver lorsque l'on retourne dans notre structure un an après!). Un rappel de la syntaxe de chaque commande est également à portée de main au même endroit, de même que la référence à la page de la documentation où se trouve une explication plus complète.
...ou les commentaires sur chaque élément...
...ou encore un rappel de la syntaxe des commandes du programme
Lorsque vous testez votre úuvre, il se peut (il est même certain) que vous découvrirez un certain nombre de dysfonctionnements qui seront imputables à quelques erreurs de programmation. En cas d'erreur de syntaxe, 4D vous les signalera sans problème. En cas d'erreur de logique, il suffit de relancer la méthode en demandant de voir comment elle se comporte à l'aide du débogueur en passant en mode "Trace". Ce dernier est tout simplement époustouflant: il s'agit d'une fenêtre qui permet de voir défiler ligne par ligne, à l'aide de boutons de type " magnétoscope " votre programme pendant qu'il se déroule. Voir le contenu d'une variable d'un simple clic sur son nom est un confort dont on ne saurait plus se passer.
L'explorateur d'exécution
L'explorateur d'exécution permet de savoir comment se comporte votre base (même compilée) à tout moment, notamment au niveau de l'occupation mémoire, de la valeur de nos variables, du nombre d'enregistrements, d'enregistrements sélectionnés dans chaque table. Cet explorateur, complémentaire au dobogueur, est une aide très efficace lors des tests sur votre nouvelle création.
Les améliorations récentes
La plupart des nouveautés au niveau de commandes du langage datent de la version 6.7.
Parmi celles-ci, notons l'arrivée tant attendue (en tous les cas par moi-même personnellement) des commandes Importer données et Exporter données. Ces dernières permettent d'afficher une nouvelle zone de dialogue incroyablement complète (le top en la matière) pour guider l'importation ou l'exportation dans et hors 4D d'un fichier. Auparavant, il s'agissait là d'une des seules fonctions qui imposait soit de passer en mode Utilisation, soit d'imposer un ordre de saisie. Je vais enfin pouvoir programmer un import et un export professionnels, ouf!
En version 6, il était également impossible de chercher une chaîne quelconque (un variable globale par exemple) dans toute la base sans passer par un programme externe appelé 4D Insider. Si ce dernier est toujours au catalogue et rend encore de fiers services, notamment dans la compréhension de la logique de la base ainsi que de ses références croisées, cette fonction de recherche globale sur la base est maintenant intégrée au 4D standard, ce qui est un immense progrès.
...et son résultat dans toute la base
Internet, des changements
4D Server permet de gérer des bases multi-postes, et cela sans pratiquement changer une ligne de code. La version 6.8 ne gère plus que le protocole TCP/IP, livré en standard sur toutes les machines. À noter que mes bases ont été passées sous la nouvelle version sans aucun problème et pratiquement sans que je m'en rende comtpe. Par contre, il est impossible d'ouvrir une base mise à jour en 6.8 dans une version précédente, ce qui est bien compréhensible.
Au niveau Internet, la version de 4D 6.7 avait introduit Web Assistant, qui permettait de publier en un tour de main une base sur le Web. Ce composant, étrangement, n'est plus disponible dans la nouvelle version 6.8. Ou plutôt, il l'est toujours pour les développeurs qui l'avaient intégré à leur base, mais 4D nous avertit qu'il ne sera plus développé à l'avenir.
Il semblerait que ce composant (définition de l'éditeur :Schématiquement, un composant regroupe un ensemble d'objets structurels 4D (tables, méthodes, formulaires, barres de menus...) représentant une ou plusieurs fonctionnalités supplémentaires. Par exemple, vous pouvez développer à l'aide de 4D un composant de courrier électronique. Un composant est autonome, il doit pouvoir être installé dans tout fichier de structure 4D.) n'ait pas répondu aux attentes: il n'allait soit pas assez loin pour les professionnels, et se trouvait être trop compliqué pour les débutants. 4D bien évidemment continue à développer son serveur Web toujours plus puissant. Mais il faudra trouver un provider capable de vous accueillir, ce qui pourra vous coûter quelques centaines de francs.
C'est la raison pour laquelle les gens d' AJAR, importateur exclusif des produits 4D, proposent un ensemble de services qui me semble intéressant.Il s'agit de 4D Net Center. Pour une somme tout à fait convenable qui dépend de la bande passante désirée , la société met à disposition un service complet qui comprend un Mac G4, 4D Webstar, 4D Web. Le tout sera agrémenté de Timbuktu qui vous permettra depuis n'importe quel endroit de piloter l'ensemble comme si vous étiez chez vous. À noter qu'Ajar est tellement dynamique que de nombreux utilisateurs s'adressent à cet importateur, même hors de Suisse. C'est beau des gens qui aiment leur produit...
Ça, c'est pour le côté professionnel de la chose. Mais pour le grand public, 4D a développé 4D business Kit, qui permet selon l'éditeur de mettre en ligne ses catalogues sans aucune difficulté. Je testerai ce produit ultérieurement. 4D est en tractations avec de nombreux hébergeurs pour permettre une mise à disposition peu onéreuse de cette technologie aux utilisateurs que nous sommes.
La gamme 4D
Comme nous l'avons vu, 4D est dédié avant tout aux utilisateurs désireux de créer des projets sérieux.
Son prix est de 625 francs en version mono-poste. Par la force des choses, les utilisateurs de ce programme deviendront des programmeurs (et ce presque sans s'en rendre compte). Et 4D, s'il est livré avec un RunTime illimité qui permettra à vos futurs clients d'utiliser la base sans devoir payer de licence à 4D, ne prendra toute sa valeur qu'avec le bundle 4D Developer Edition .
Ce dernier comprend, en plus de 4D v6.8 lui même, 4D Compiler et 4D Insider, 4D Write, 4D Draw, 4D Backup et 4D Open.
4D Compiler comme son nom l'indique, va compiler votre structure, ce qui la traduira en code machine, bien plus rapide. Revers de la médaille, pour utiliser une base compilée, il faudra acquérir un Runtime classic au prix de 205 francs par licence 4D Backup inclu, ou alors posséder 4D lui-même. Cette somme devra donc être ajoutée au prix de votre base si vous la vendez à des clients. Autre possibilité, intégrer le Runtime directement dans le fichier de structure à l'aide de 4D Engine, coûtant 1950 francs et permettant de diffuser vos bases de manière illimitée.
Un autre avantage de 4D Compiler et non des moindres, consiste dans le fait qu'il se charge également de vérifier l'intégrité de votre code. En effet, si l'interpréteur de 4D est souple, Compiler lui ne laisse rien passer, sauf bien sûr les erreurs de logique que vous auriez éventuellement inclues dans vos méthodes. Cette vérification devrait exclure bien des problèmes dans le fonctionnement de la base.
4D Insider, quant à lui, vous permettra de naviguer dans toutes vos méthodes en retrouvant par exemple leur ordre d'appel.
4D Write permettra de faire des mailings ou de gérer votre courrier directement dans la base. Cette nouvelle version 6.5 apporte la gestion des styles, des encadrement, et hisse ce module au rang de traitement de texte à part entière. Notons que 4D Write est entièrement programmable, comme tout ce qui nous est fourni dans la gamme 4D.
En ce qui concerne les prix, 4D est une gamme tellement complète, (doublée en version "4D Server" qui va gérer vos bases en multi-utilisateurs sans que vous n'ayez à changer votre code) que nous ne pouvons que vous encourager à visiter le site d'AJAR. Nous n'avons pas le courage de reprendre la liste de prix ici. Si vous êtes étudiant ou enseignant, n'hésitez pas à vous renseigner sur le prix d'une licence éducation de 4D standard: vous aller tomber par terre: eh oui, elle est gratuite!
En conclusion
4D 6.8, avec toutes ses nouveautés et améliorations, pour autant qu'on y consacre du temps, est la solution la plus séduisante pour programmer une application en relation avec une base de données de manière transparente pour d'autres utilisateurs. Ses outils de création d'interface, son ouverture intégrée au Web sont tout à fait impressionnants.
4D est un produit magnifique. Et que tous les utilisateurs d'une version précédente n'hésitent pas un quart de seconde: la version 6.8 ne pourra que les enchanter.