Cela fait très longtemps que je suis 4e Dimension.
Depuis 1992 je crois.
J’ai souvent écrit des articles pour présenter ce programme de bases de données relationnelles, au fil des nouvelles versions.
4D a toujours été pour moi LA vraie belle application pour programmer une base de données, quelle qu’elle soit.
Il y a quelques années, je la comparais à FileMaker, montrant combien ce dernier était dépassé par rapport à 4D.
Je ne vais plus le faire désormais, puisque pour dire vrai, j’en suis resté à FileMaker 6, vu que de toute façon, c’est la seule que je peux utiliser avec les bases offertes par notre département cantonal.
Je ne peux pas et je ne veux pas critiquer un programme dont je ne sais pas comment il a évolué.
Autre petit problème, jusqu’à il y a peu, je me sentais à la hauteur pour parler d’un logiciel comme 4D, puisque je développais moi-même des applications avec ce logiciel.
Je savais donc beaucoup de choses à propos de lui, et je pouvais en parler en toute connaissance de cause.
Ici, les choses deviennent plus compliquées, puisque si je développe toujours mes bases sous 4D, ce dernier me permet toujours de le faire, mais…
Mais cette nouvelle version v11.SQL va tellement plus loin, dans certains domaines que je ne maîtrise pas, comme les bases en ligne sur Internet, SQL, et toutes ces choses, que voyez-vous… je me sens un peu largué.
Vous comprenez, lorsque je vois par exemple les standards avec lesquels désormais 4D est totalement compatible et peut aller titiller…
… eh bien j’ai envie de pleurer, parce que les 3/4, je ne sais même pas ce à quoi ça peut bien faire référence.
Je vais donc faire ce que je peux, me contentant de mes expériences avec le nouveau logiciel, et des données que j’ai pu recevoir lors d’une présentation pour la presse et les développeurs, en décembre 2007 à Lausanne.
Autant vous dire que face à ces développeurs, je me suis senti bien petit.
4D v11 SQL, un tout nouveau moteur, tout en transparence
Ah misère, il nous aura fallu attendre longtemps pour que 4D devienne Universal Binary. Il fonctionnait très bien sur les MacIntel, mais tout de même.
Les choses s’expliquent: 4D ne voulait pas mettre simplement à jour son programme pour qu’il tourne nativement sur les nouveaux Macs à base de processeurs Intel. L’entreprise voulait aller plus loin, beaucoup plus loin.
4D v11 SQL est une révolution pour 4D. Tout ou presque est neuf, le programme est recréé jusque dans ses fondations.
Voyez plutôt, c’est assez impressionnant:
Taille maximale du fichier de données:
- 4D version 2004: 257 Gb
- 4D v11 SQL: 1000’000’000 Gb
Nombre maximum de tables par base:
- 4D version 255
- 4D v11 SQL: 32’767
Nombre maximum de champs par base:
- 4D version 2004: 511
- 4D v11 SQL: 32’767
Clés d’index par table:
- 4D version 2004: 16’000’000
- 4D v11 SQL: 128’000’000’000
Nombre maximum d’enregistrements par table:
- 4D version 2004: 16’000’000
- 4D v11 SQL: 1’000’000’000
Nombre de caractères d’un champ alpha
- 4D version 2004: 80
- 4D v11 SQL: 255 (yessss! Enfin!)
Taille maximale d’un champ texte
- 4D version 2004: 32 ko
- 4D v11 2 Go5 (ouf!)
Comme vous le voyez, on peut dire que 4D n’est limité que par les possibilités en mémoire vive de votre machine.
Ce nouveau moteur est Universal Binary, fonctionne parfaitement sur Leopard, et a son pendant exact sur Windows Vista.
Pour moi comme pour vous, toutes ces explosions de limitations n’ont peut-être pas trop de sens (sauf au niveau des champs alpha, qui nous permettent maintenant de respirer).
Par contre, au niveau professionnel, des grands groupes qui utilisent beaucoup 4D, il est clair que ces murs brisés vont en satisfaire plus d’un.
Ce qui est très important, c’est que malgré ce tout nouveau moteur, le programme vous permet sans aucun problème de travailler avec vos anciennes bases.
Ces dernières sont converties lorsque vous les lancez la première fois avec 4D v11.
Vous ne pourrez plus réutiliser une base convertie avec un 4D 2004 ou plus ancien. Par contre, le logiciel range proprement vos fichiers anciens dans un dossier au cas où les choses iraient mal.
Nos bons vieux fichiers sont bien là, au chaud, pour si jamais.
Je précise que je n’ai converti que des bases qui avaient déjà été modifiées pour tourner sur 4D 2004, je ne peux m’avancer sur une conversion de base plus ancienne, même si je crois savoir de source bien informée que les versions 6.8 et 2003 sont également reconnues.
À ma grande honte, je n’avais pas de menu Édition sur cette application, dans certaines barres de menus. Il a été rajouté, mais alors il va me falloir vérifier certains appels aux menus, comme indiqué.
J’ai dû également jeter un vieux plug-in 4D Pack pour que l’application se lance sans problème.
Enfin, toujours pour cette application, qui était basée sur des anciens standards d’une très vieille version de 4D toujours supportée jusque-là, la méthode “Début” qui se lançait automatiquement lors du démarrage de mon programme a dû être placée dans une méthode “Sur ouverture” de la base.
Histoire réglée en trois minutes.
Perdu ou pas perdu, avec toutes ces nouveautés?
4D v11 SQL a été revu de fond en comble, mais le challenge pour ses concepteurs, c’était de ne pas déranger les habitudes des utilisateurs.
Défi parfaitement relevé puisque 4D reste 4D au niveau de l’interface. J’en ai déjà beaucoup dit ici, dans le test de la version 2004, en particulier à propos de l’incroyable confort de travail offert par cet environnement de développement.
Ce qui frappe au premier abord, c’est que les outils en particulier l’explorateur sont bien là, qu’ils fonctionnent comme avant. Les changer eût été bien dommage, au vu de leur ergonomie parfaite.
Tout est là, sous la main, immédiatement disponible…
Par contre, disparition des trois modes “Menu créé”, “Mode Utilisation”, “Mode Structure”.
Ne reste que le mode “Structure”, dans lequel on peut travailler en mode utilisateur sans changer de mode, en changeant simplement de table à la volée via une fenêtre ou un menu. Pratique pour continuer à développer en parallèle.
Pour passer en mode “menu créé”, il faut “tester l’application”.
4D v11 SQL ouvert sur le monde
4D, pour commencer, intègre en natif un moteur SQL (d’où son nom d’ailleurs!). Il est ainsi possible d’intégrer à l’intérieur même des méthodes du langage SQL, entre deux tags (Debut SQL et Fin SQL), ce qui ravira les spécialistes de ce langage. Le débogueur 4D et SQL est le même, le branchement à une source externe ou à celle intégrée s’effectue par un simple (UTILISER BASE EXTERNE / UTILISER BASE INTERNE).
À l’inverse, 4D v11 SQL intègre un serveur SQL ce qui lui permet d’être interrogé par une application extérieure. Un nouveau driver ODBC natif devrait encore améliorer les choses.
Mais il est également ouvert sur “à peu près tout ce qui bouge dans le domaine”, voyez plutôt…
… et avec tous ces standards (je sais, je vous ai déjà montré cette image, mais je la trouve jolie, et ici dans un autre contexte que le fait que je me sens dépassé à ce niveau (ce qui est toujours le cas, soit dit en passant…).
Je précise que je n’ai pas testé ce domaine, mais d’après ce que j’ai entendu, les “ooh” et les “aah” autour de moi, tout le monde est enchanté de cette ouverture qui semble fonctionner plutôt bien.
Lors de la présentation de décembre, j’ai également vu une démonstration de publication de base de manière à ce qu’un iPhone ou un iPodTouch puisse y accéder à peu près comme si l’on était sur notre Mac, via le Web, bien sûr.
Assez impressionnant, il faut bien l’avouer.
24 ans plus tard, on y arrive, enfin!
Je ne suis pas tout à fait honnête.
Personnellement, cela fait 16 ans que je suis sur 4D, je n’ai jamais pu. Mais depuis 1984 jusqu’en 1992, d’après ce qu’on m’a dit, c’était possible. Ce n’est qu’avec l’arrivée de 4D version 3 ou 4 qu’on nous avait retiré l’incroyable: dans une structure il était impossible de supprimer une table ou un champ.
Mais oui Madame Monsieur, pour des raisons de déploiement un peu absconses, si vous créiez un champ dans une table, impossible de l’effacer si vous vous rendiez compte qu’il était inutile.
De même avec une table.
Bon, cela imposait une certaine réflexion avant le passage aux actes, ce qui est souvent une bonne chose, mais tout de même.
Un peu, un tout petit peu comme si vous ne pouviez pas supprimer une phrase dans un texte, avec un traitement de texte.
Qu’est-ce qu’on ne nous a pas expliqué que c’était normal, tout ça.
Et pourtant, alléluia, cette fois nous y sommes: tout est éditable, supprimable dans une structure, ce qui n’est vraiment pas plus mal. Finis chez moi les champs en “XXXXXXX” pour signaler qu’ils ne sont pas utilisés.
Les choses vont enfin être propres.
Bon, ben réfléchissez tout de même hein! Faudra pas venir vous plaindre non plus après…
Merci 4D!
La structure gagne au passage en clarté, en modernité.
Il est possible de n’afficher que le nécessaire…
… ou d’effectuer des recherches dans la structure, ce qui est ma foi fort utile.
Comme dans les préférences système, ce qui est recherché s’éclaire, par contraste avec le reste qui s’assombrit. Très joli. Et efficace.
Autre petite chose intéressante qui montre à quel point 4D a changé: vous pouvez copier une table, et la coller dans un traitement de texte. Vous verrez la table sous forme de code XML, fondement du logiciel.
La vue dans le traitement de texte de la table de la figure précédente.
De même, vous pouvez copier une table et la coller dans la structure sans problème.
Mieux, vous pouvez la coller dans une autre base.
Certes, 4D ne permet toujours pas d’ouvrir plusieurs bases (je n’ai pas dit tables!) en même temps. Par contre, il est possible de créer deux instances de 4D (en dupliquant son dossier), de les lancer les deux avec deux bases différentes, et de passer des données de l’une à l’autre.
Enrichissez 4D à l’aide de vos composants
Mieux même, avec ce système de deux instances, vous pouvez passer des méthodes, des formulaires, d’une base à l’autre, simplement en les glissant de l’explorateur de la base 1 vers celui de la base 2.
Pour que tout marche bien, il faut viser les icônes “Méthode” ou “Formulaires” dans la base cible.
En fait, vous l’avez compris, cette façon de travailler remplace avantageusement le défunt 4D Insider, que personnellement je ne regretterai pas.
Ce qui est intéressant également, et que je n’ai pas encore eu l’occasion de mettre en pratique avec mon propre code, c’est que si des éléments vous semblent intéressants et dignes d’être repris dans d’autres bases, vous pouvez en faire assez simplement semble-t-il un “composant”.
Mais attention, ce composant n’est pas, comme les plug-ins, écrit en C (brrrrr… ça me fait froid dans le dos rien que d’y penser), mais en langage 4D! Eh oui!
Le code d’un composant, en langage 4D (ce n’est pas moi qui l’ai écrit, j’en ai pris un donné ici dans une base d’exemples.
Il vous faudra le déclarer comme composant lors de la compilation, l’installer dans le dossier “Composants” à côté de votre base (vous pouvez très bien mettre des alias, afin de n’avoir les composants qu’à un endroit) et en voiture Simone, votre application pourra profiter du composant.
J’ai par exemple essayé cette base 4DPop.4dbase dont je vous ai montré une partie du code juste plus haut.
Ce composant permet lui-même de gérer d’autres composants, à l’intérieur d’une fenêtre affichée en mode développement. Comme tous les composants, il est écrit en langage 4D.
Le composant permettant d’en appeler d’autres via une fenêtre.
Un composant permettant d’afficher une règle verticale ou horizontale.
Un composant permettant d’afficher un “Quiz” facilitant la recherche dans la documentation.
Pour créer un composant, vous devez passer par l’achat de 4D Developper Professional.
La gamme 4D
Ben tiens, puisqu’on en parle…
La gamme 4D est assez sophistiquée.
Des fois, je m’y perds un peu…
Heureusement, vous trouverez un tableau comparatif des différentes versions ici.
Sachez en gros que l’outil de développement de base est 4D Developer Standard, qui revient 625 francs suisses, TTC ou 299 € en France, mais hors taxe.
Tous les tarifs pour la Suisse sont ici, chez Ajar, l’importateur exclusif qui fait un travail extraordinaire pour ce produit.
Idem pour la France, chez 4D directement.
Attention, les prix suisses sont TTC, les prix français sont HT.
Juste pour vous dire… les tarifs prennent 5 pages (toutes mises à jour comprises)!
Cela dit, sachez qu’une version éducation de 4D Developer Standard est offerte gratuitement aux ayants droit!, demandez comment l’obtenir à votre distributeur local.
Dès qu’on veut passer à la version Professional, qui permet de créer des exécutables (qui se lancent par double-clic donc), les prix montent très vite puisque cela vous reviendra 999 € HT ou 2100 francs suisses TTC. Mais là, tout ou presque est compris, entre autres choses puisque nous y trouvons 4D Write, 4D View, 4D For OCI, 4D ODBC Pro, Web Application Dev. Web Services Dev.
Notez que la version Standard vous permet de développer des bases qui peuvent être déployées via le lecteur gratuit 4D Interpreted Desktop et que vous pouvez acheter 4D SQL Desktop v11 SQL qui comprend le déploiement d’applications 4D Client SQL ou Client Web Services et qui incut 4D Write et 4D View pour 205 francs suisses TTC ou 99 € HT.
Vous voyez, vous devrez réfléchir un peu avant de savoir ce que vous allez acheter.
En conclusion
Vous l’avez compris, je n’ai pas pu vous parler dans cet article de toute la puissance de 4D, notamment au niveau de son ouverture vers le Web, vers les serveurs. Toute cette partie importante du logiciel est un peu occultée dans cet article, je vous prie de m’en excuser.
Si un rédacteur spécialiste ou un lecteur veut compléter le présent article par ses connaissances, c’est avec plaisir que je l’accueillerai, il va sans dire.
4D v11 SQL est un bien bel outil. Ou une bien belle gamme d’outils pour être plus précis.
Certes, il n’est pas fait pour le débutant pur et dur, à moins que ce dernier ne désire aller très loin.
Il est même idéal pour celui qui veut grandir en même temps que son application au niveau de ses connaissances dans le langage, sachant que ce dernier est en français, tout comme les milliers de pages de la documentation, bien faite au demeurant.
Créer une petite base de rien du tout, juste pour noter des adresses, c’est possible bien sûr avec 4D, mais ce n’est pas le but d’un tel outil de développement.
Très vite, le besoin sera bien là de créer des bases avec des barres de menus personnalisées, des boutons bien à vous, avec bulles d’aide et tout et tout, ce qui est possible à faire avec une facilité assez déconcertante.
Cela dit, j’aimerais bien tout de même un petit 4D du pauvre, comme il a existé il y a quelques années.
Parce qu’au niveau gestionnaire de données bon marché, à part SQL qui n’est tout de même pas à portée de n’importe qui, nous ne sommes pas très bien lotis sur Mac.
FileMaker n’est pas donné non plus, bref, à quand une base de données toute simple à la “AppleWorks” dans iWork?
Au fait, je le répète, si par hasard vous êtes dans l’enseignement, n’hésitez pas à tester la version éducation gratuite de 4D.
Pour les autres, il vous faudra passer à la caisse, pour un produit qui n’est certes pas donné, mais qui, nom d’une pipe, vaut bien son prix.














