Profitez des offres Memoirevive.ch!
4D 2003, une nou­velle mou­ture de grande qua­lité du cé­lèbre ges­tion­naire de base de don­nées

Un test très com­plet a été consa­cré ici, sur Cuk.​ch, à 4D 6.8, pre­mière ver­sion à être sor­tie pour Mac OS X de ce pro­gramme de créa­tion de base de don­nées re­la­tion­nelles.

Je ne vais donc pas ré­pé­ter tout ce que j'ai déjà écrit sur ce pro­gramme, si vous ne le connais­sez pas, je vous conseille donc de lire cet ar­ticle avant de com­men­cer celui que vous avez sous les yeux.

Je vais mal­gré tout ré­su­mer en quelques lignes pour les pa­res­seux ce qu'est 4D 2003 main­te­nant.

4D, c'est quoi, ça sert à quoi?

Dès que vous avez à faire avec des don­nées quel­conques, vous devez les clas­ser, les ran­ger, et sur­tout pou­voir les re­trou­ver.

Pour ce faire, il existe ce que l'on ap­pelle les bases de don­nées.

Il existe des bases de don­nées mono fi­chiers, toutes simples, qui re­censent des contacts par exemple: l'Ad­dress­Book de Mac OS X est une base de don­nées, tout comme le sont Now Contacts et To­pAd­dress.

Vous pou­vez éga­le­ment clas­ser votre col­lec­tion de films vi­déos, mais là déjà, d'autres be­soins se font sen­tir, comme par exemple le fait de ne pas vou­loir re­ta­per à chaque fois cer­taines spé­ci­fi­ca­tions sur les ac­teurs et les au­teurs des films.

C'est dans ce cas qu'entrent en jeu les bases de don­nées re­la­tion­nelles. On va créer une re­la­tion entre le fi­chier des films, le fi­chier des ac­teurs et le fi­chier des réa­li­sa­teurs. En ce cas, nous tra­vaillons avec trois fi­chiers. Le fi­chier ac­teurs contien­dra toutes les don­nées concer­nant les... ac­teurs, et une seule fois. Le fi­chier des réa­li­sa­teurs sera iden­tique, à la dif­fé­rence près qu'il re­grou­pera les réa­li­sa­teurs, comme il se doit.

Le fi­chier films lui ira cher­cher les don­nées dans le fi­chier des ac­teurs et des au­teurs, lorsque vous en­tre­rez par exemple le nom ou le code de ces der­niers.

Avan­tage de cette so­lu­tion? La non-re­don­dance des don­nées, qui finit tou­jours par prendre trop de place, le gain de temps à la sai­sie, et l'au­to­ma­ti­sa­tion de la cor­rec­tion des don­nées. On cor­rige une faute d'or­tho­graphe dans le pré­nom d'un ac­teur et tous les films qu'il a joués sont au­to­ma­ti­que­ment cor­ri­gés.

Re­mar­quez que les liens peuvent aller dans les deux sens! Rien de plus simple en fait après avoir entré quelques films de prendre un au­teur dans le fi­chier ad hoc, et de lis­ter les films qu'il a joués qui font par­tie de votre fi­chier "Films".

Évi­dem­ment, on tombe très vite dans des com­pli­ca­tions assez im­por­tantes, et c'est là qu'in­ter­vient la puis­sance d'une ap­pli­ca­tion comme 4D pour créer votre base. Les liens se tirent gra­phi­que­ment (ce qui n'em­pêche sur­tout pas d'avoir ré­flé­chi sa base AVANT de com­men­cer le tra­vail sur la ma­chine) et l'en­vi­ron­ne­ment de tra­vail est une simple pe­tite mer­veille.

La concur­rence? C'est Fi­le­Ma­ker.

Vous re­mar­que­rez (ceux qui me connaissent de­puis Pommea.​com) que je reste très zen dans cet ar­ticle. En effet, j'ai cessé de com­pa­rer les deux pro­duits.

Fi­le­Ma­ker, c'est pour le en­du­ser, l'uti­li­sa­teur qui veut lui-même se faire une pe­tite base, même re­la­tion­nelle, avec quelques bou­tons.

4D, c'est pour le dé­ve­lop­peur, qui veut créer une ap­pli­ca­tion pour un ou plu­sieurs uti­li­sa­teurs. Je suis sûr que vous avez tra­vaillé un jour ou l'autre sans le sa­voir avec un pro­gramme dé­ve­loppé sur 4D.

Bien en­tendu, il existe tou­jours des dé­ve­lop­peurs qui vont uti­li­ser Fi­le­Ma­ker comme pla­te­forme de dé­ve­lop­pe­ment, tout comme il existe des uti­li­sa­teurs exi­geants qui vont tra­vailler avec 4D pour leur propre usage.

Les avan­tages de 4D par rap­port à Fi­le­Ma­ker ré­sident prin­ci­pa­le­ment dans l'en­vi­ron­ne­ment de dé­ve­lop­pe­ment, dans le vrai lan­gage de pro­gram­ma­tion et sa fa­ci­lité de mise en œuvre, en­core plus cer­tai­ne­ment de­puis la sor­tie de la ver­sion 2003 comme nous al­lons le voir plus bas.

Une ap­pli­ca­tion écrite sous 4D se re­con­naît à sa barre d'ou­tils dé­diés, ses bulles d'aides, ce qu'est bien in­ca­pable de réa­li­ser Fi­le­Ma­ker (bien que Quick­Pay, testé ici, prouve le contraire au ni­veau de la barre d'ou­tils, grâce à un plug-in très ef­fi­cace, peut-être ce­lui-ci mais je n'en suis pas cer­tain.).

Fi­le­Ma­ker a pour lui la fa­ci­lité et le côté "bri­cole" qu'adorent cer­tains. Ma­thieu ne de­vrait pas me contre­dire.

Bref, à cha­cun son ap­pli­ca­tion! Per­son­nel­le­ment, j'ai choisi.

4D 2003, un nou­vel édi­teur de mé­thode ma­gni­fique

4D 2003 in­tègre main­te­nant un vé­ri­table petit bijou d'édi­teur de mé­thode, l'en­droit où l'on écrit notre code.

Rap­pe­lons qu'une mé­thode peut être as­so­ciée à n'im­porte quel objet de votre in­ter­face, à un for­mu­laire (le mo­dèle de Fi­le­Ma­ker, donc une façon parmi d'autres d'af­fi­cher les don­nées), un fi­chier ou même à la base elle-même.

C'est donc dans cet édi­teur que nous al­lons pro­gram­mer, il est donc pri­mor­dial qu'il soit bien pensé. Hon­nê­te­ment, il l'était déjà, mais là, les amé­lio­ra­tions sont vrai­ment consé­quentes.

Pour com­men­cer, les lignes sont main­te­nant nu­mé­ro­tées, ce qui est bien pra­tique en phase de dé­bo­gage, lorsque le com­pi­la­teur vous an­nonce une er­reur à la ligne 324. L'af­fi­chage de ces nu­mé­ros de lignes peut être désac­tivé.

La taille d'une mé­thode passe de 32Kb à... 2Gb! Il fau­dra être pro­lixe pour uti­li­ser toute cette nou­velle place! Sé­rieu­se­ment, il n'existe de fait plus de li­mites, ce qui est une bonne chose, les 32Kb pou­vant être pé­na­li­sants lorsque le code est consé­quent.

Il est pos­sible de tra­vailler par blocs, lorsque l'on copie ou dé­place des mor­ceaux de code, par glis­ser-dé­po­ser par exemple.

Tou­jours à pro­pos des blocs, 4D af­fiche à l'écran (il l'im­pri­mait à l'époque seule­ment) les barres tout à gauche du code re­liant par exemple un SI et le FIN de SI cor­res­pon­dant. Lorsque les boucles sont im­bri­quées, les barres sont plus ou moins épaisses pour nous per­mettre de nous y re­trou­ver, On au­rait sou­haité ici peut-être un usage de la cou­leur pour dif­fé­ren­cier en­core mieux les barres, mais ce plus est déjà tel­le­ment gé­nial comme ça que l'on ne va pas jouer les dif­fi­ciles!

En­core plus fort, comme on le fe­rait dans le Fin­der avec un dos­sier, il est pos­sible de contrac­ter et de dé­ployer un ou des blocs re­pré­sen­tant une struc­ture condi­tion­nelle ou une boucle, pour mieux voir ca­cher du code in­utile à un mo­ment de la sai­sie. Dingue je vous dis, j'en ai presque les larmes aux yeux!

Une mé­thode dé­ployée à gauche, et là même contrac­tée à droite

Vous tapez le début d'une com­mande puis la touche "Tab", et vous avez la liste des com­mandes cor­res­pon­dantes qui ap­pa­raît et vous n'au­rez plus qu'à choi­sir celle qu'il vous faut. Pra­tique, et déjà dis­po­nible dans d'autres pro­grammes de type Real­Ba­sic. Mais pour­quoi ne pas pro­fi­ter des bonnes idées quand elles existent?

Je tape "cherch" et j'obiens une liste des com­mandes cor­res­pon­dantes

La fe­nêtre d'édi­tion de code peut se di­vi­ser en plu­sieurs par­ties, de ma­nière à voir par exemple le début le mi­lieu et la fin de son code. C'est sou­vent très pra­tique et évite les longs scrol­lings sur les mé­thodes longues. Il suf­fit pour ce faire de prendre la zone om­brée si­tuée au-des­sus de l'as­cen­seur ver­ti­cal et de la tirer vers le bas, et le tour est joué. Pour sup­pri­mer la di­vi­sion du code, on re­pousse l'ombre à sa place ini­tiale et le tour est joué.

Le début de la mé­thode en haut, le mi­lieu... au mi­lieu et la fin de la mé­thode en bas, en un seul coup d'oeil

Le co­pier-col­ler est main­te­nant mul­tiple: vous sé­lec­tion­nez une par­tie de code, vous tapez CTRL-Shift et un chiffre de 0 à 9. Pour col­ler ce presse-pa­pier, vous ta­pe­rez Op­tion-CTRL et le même chiffre. Et si vous ne vous rap­pe­lez plus où vous avez rangé un presse-pa­piers, vous pour­rez tou­jours, via le menu contex­tuel, consul­ter l'his­to­rique du Presse-pa­piers et sé­lec­tion­ner celui qui vous convient afin de le col­ler à l'en­droit où se trouve le cur­seur. Per­son­nel­le­ment, j'au­rais bien vu une pa­lette avec des cases nu­mé­ro­tées de 0 à 9, avec le contenu des presse-pa­piers cor­res­pon­dant. Ça au­rait été en­core plus pra­tique. Pour ceux que ça in­té­resse, je rap­pelle le test sur Copy-Paste situé ici qui fait exac­te­ment ce que je sou­haite ici, éga­le­ment à l'in­té­rieur de 4D.

Il est éga­le­ment pos­sible dans 4D 2003 de sau­ve­gar­der une mé­thode en vue d'une im­por­ta­tion dans une autre base par exemple, et pour nous per­mettre de nous y re­trou­ver, il est même prévu de pou­voir les com­men­ter.

Et puisque nous en sommes aux com­men­taires, l'une des li­mi­ta­tions les plus gê­nantes de 4D saute enfin dans cette ver­sion 2003: dans les mé­thodes, les lignes peuvent faire plus de 80 ca­rac­tères (elles sont tout de même li­mi­tées, mais à 32'000 ca­rac­tères!) et ne se­ront plus tron­quées après va­li­da­tion. Ouf! De même il est main­te­nant pos­sible de com­men­ter et dé­com­men­ter un groupe de lignes d'un seul coup via une com­mande de menu. Très pra­tique pour iso­ler quelques ins­tants un bout de code.

Deux pe­tites choses bien sym­pa­thiques main­te­nant: d'abord, le fait de pou­voir in­sé­rer ra­pi­de­ment une struc­ture de type IF/ELSE/ENDIF. Il ne reste en­suite plus qu'à en­trer votre code propre aux bons en­droits.

En­suite, le fait de pou­voir in­ver­ser des ex­pres­sions. Je m'ex­plique, Dans une mé­thode ou­vrant un fi­chier de pré­fé­rences par exemple, vous allez prendre un cer­tain nombre de pa­ra­mètres en ou­ver­ture de mé­thode que nous al­lons re­tour­ner en sor­tie. C'est fort pra­tique et per­met un gain de temps, tout en évi­tant les fautes de frappe in­évi­tables.

D'un simple clic, on passe du groupe du haut à celui du bas

Pour en ter­mi­ner avec cet édi­teur de mé­thodes (je sais, j'ai été un peu long, mais vu les uti­li­sa­teurs "cibles" de 4D, cette par­tie est très im­por­tante), il faut en­core si­gna­ler la pos­si­bi­lité nou­velle de choi­sir les listes des ob­jets cli­quables si­tuées en bas de l'édi­teur, à l'aide d'un menu contex­tuel. C'est vrai­ment pra­tique, puis­qu'on n'a pas be­soin par­tout des mêmes listes. L'édi­teur l'a bien com­pris puis­qu'il est même pos­sible de sau­ve­gar­der une confi­gu­ra­tion pour une mé­thode par­ti­cu­lière.

Un édi­teur d'état tout beau tout neuf

En mode Uti­li­sa­tion, vous pour­rez réa­li­ser main­te­nant des états (qui sont des rap­ports dé­cli­nés sous forme d'im­pres­sion, de fi­chiers HTML ou texte, de graphe (4D Chart) ou 4D View, et qui per­mettent d'ef­fec­tuer toutes sortes d'opé­ra­tions ma­thé­ma­tiques sur ces don­nées) de ma­nière bien plus ra­pide que dans les an­ciennes ver­sions.

Vous dis­po­sez en effet d'un mode as­sisté qui vous gui­dera étape par étape vers ce que vous vou­lez réa­li­ser. À tout mo­ment, vous pou­vez per­mu­ter vers le mode ma­nuel, pour re­tou­cher une étape, et re­pas­ser en­suite vers l'as­sis­tant. À noter que tout ce mo­dule a été réa­lisé en lan­gage 4D.

Vous pour­rez éga­le­ment à tout ins­tant vé­ri­fier l'aperçu de votre tra­vail qui sera vi­sible à l'écran dans le lo­gi­ciel de MacOS X "Aperçu".

Je pré­cise que les chiffres sont ma­quillés pour le test... Il s'agit de l'aperçu du ré­glage de la fi­gure pré­cé­dente

Vous pour­rez éga­le­ment, créer, à l'aide de cet édi­teur d'état, des ta­bleaux croi­sés, tou­jours en étant as­sisté par 4D.

Ce gé­né­ra­teur d'état est en fait un plug-in et pourra être ap­pelé par une mé­thode dans une zone plug-in d'un for­mu­laire 4D. L'uti­li­sa­teur final pourra ainsi bé­né­fi­cier de sa puis­sance comme bon lui semble. Enfin, vous res­tez tout de même maître de la chose puisque vous pou­vez, par pro­gram­ma­tion, don­ner plus ou moins de pos­si­bi­li­tés à votre client.

Tout dans un état peut être per­son­na­lisé, des cadres, de l'image de fond, en pas­sant par les cou­leurs et les po­lices. Un cer­tain nombre de for­mats pré­dé­fi­nis sont éga­le­ment à dis­po­si­tion.

Très fort tout ça.

Un édi­teur de barre de menus amé­lioré

Avec 4D, vous allez créer des ap­pli­ca­tions avec barre(s) de menus per­son­na­li­sées. C'est le cas de­puis tou­jours (en tout cas de­puis que j'uti­lise le pro­duit, en ver­sion 3). Cette nou­velle mou­ture nous offre quelques amé­lio­ra­tions no­tables, comme le fait, pour le pro­gram­meur, de nom­mer ses barres, ce qui est tout de même plus clair que "barre 1", "barre 2".

Et puis, à chaque com­mande peut être as­so­ciée main­te­nant une ac­tion stan­dard, comme on a tou­jours pu le faire sur un bou­ton.

Le menu Édi­tion, tout pré­paré, peut être per­son­na­lisé sans que l'on perde ses fonc­tion­na­li­tés.

Et puisque l'on parle de menus, si­gna­lons, dans un autre do­maine, qu'il est pos­sible main­te­nant de pas­ser di­rec­te­ment du mode Struc­ture (dans le­quel on des­sine les for­mu­laires et l'on pro­gramme sa base) au mode "Menus créés" (qui émule votre ap­pli­ca­tion) sans plus avoir à pas­ser par le mode "Uti­li­sa­tion".

Des nou­velles com­mandes très utiles

Chaque nou­velle mou­ture de 4D, comme d'ailleurs de tout lo­gi­ciel de pro­gram­ma­tion, ap­porte son lot de nou­velles com­mandes de son lan­gage.

Cette fois, nous trou­vons en par­ti­cu­lier une nou­velle ges­tion de l'im­pres­sion avec une com­mande comme "Fixer Op­tion im­pres­sion" en rap­port avec des constantes pour ces op­tions, comme l'ali­men­ta­tion, la ges­tion de la cou­leur, le for­mat, l'orien­ta­tion, le recto verso, l'échelle et j'en passe.

Un énorme pro­grès par rap­port aux ver­sions pré­cé­dentes qui ne fonc­tion­naient bien qu'avec un type d'im­pri­mante donné lors de la pro­gram­ma­tion. Ici, cette nou­velle ges­tion de­vrait être uti­li­sable avec toutes les im­pri­mantes, en par­ti­cu­lier pour celles dis­po­sant d'un fi­chier de des­crip­tion (PPD).

Il est pos­sible éga­le­ment de connaître pen­dant l'im­pres­sion, le taux de rem­plis­sage d'une feuille, pour sa­voir par exemple si une zone in­sé­cable aura ou non la place sur ce qui reste à dis­po­si­tion, afin de la faire pas­ser, si be­soin est, sur la page sui­vante.

Autre plus consi­dé­rable de la ver­sion 2003, la pos­si­bi­lité de bou­ger les ta­quets de for­mu­laire par pro­gram­ma­tion (les ta­quets sont, dans 4D, les lignes qui per­mettent de dé­fi­nir où s'ar­rête le corps, les zones de rup­ture ou les pieds de page par exemple. C'est fort pra­tique et cela per­met d'évi­ter de de­voir des­si­ner à l'avance plu­sieurs for­mu­laire pour ré­pondre à dif­fé­rents cas de fi­gure. Ici, un seul suf­fira, tout va se pas­ser au ni­veau du for­mu­laire.

Les ta­quets 4D, gé­rables main­te­nant par pro­gram­ma­tion...

Un ser­veur Web par­tagé

Le ser­veur Web 4D peut être main­te­nant par­tagé sur plu­sieurs ma­chines clients, et cela per­met à la fois de fa­ci­li­ter sa main­te­nance, voire de dé­char­ger la ma­chine prin­ci­pale par exemple. Selon l'op­tion choi­sie, les dos­siers par­ta­gés si­tués sur plu­sieurs ma­chines se­ront syn­chro­ni­sés au­to­ma­ti­que­ment. Nous dis­po­sons ainsi d'une bonne to­lé­rance de panne, bien meilleure en tout cas que si les don­nées ne sont conser­vées que sur une ma­chine.

Il este aussi pos­sible de mette cer­tains fi­chiers dis­po­nibles à cer­tains uti­li­sa­teurs der­rière un Fi­re­Wall sur une ma­chine, et d'autres, en­tiè­re­ment pu­blics, sur un autre or­di­na­teur. Bref, les pos­si­bi­li­tés sont in­fi­nies.

Le com­pi­la­teur in­té­gré

La na­vi­ga­tion dans les ver­sions pré­cé­dentes de 4D entre le com­pi­la­teur et l'en­vi­ron­ne­ment de pro­gram­ma­tion pou­vait être à l'époque ré­bar­ba­tive.

Ce n'est plus le cas main­te­nant, puisque le com­pi­la­teur est en­tiè­re­ment in­té­gré à 4D lui-même (De­ve­lop­per Édi­tion et Ad­van­ced Kit).

Rap­pe­lons que le com­pi­la­teur per­met:

  • de vé­ri­fier la syn­taxe puis­qu'il est net­te­ment moins to­lé­rant que le vé­ri­fi­ca­teur syn­taxique de 4D stan­dard

Nom de dzou! 44 er­reurs dans ma pe­tite base, que le cor­rec­teur de base n'avait pas vues.
Je vais de­voir me re­mettre au tra­vail! Re­mar­quez, ça va aller vite, puis­qu'un clic
sur l'er­reur m'amène im­mé­dia­te­ment à la bonne ligne et dans la bonne mé­thode. Quel pro­grès!

  • de créer des ap­pli­ca­tions double-cli­quables au­to­nomes, ou qui se­ront uti­li­sées avec 4D Run­time Clas­sic (qui n'a rien à voir avec le Clas­sic de Ma­cOSX: il s'agit ici du Run­time uti­li­sant une base com­pi­lée, sous Mac OS 9 ou Mac OS X, et même sous Win­dows).

Mais ne nous ré­jouis­sons pas trop vite. L'uti­li­sa­teur de 4D pourra com­pi­ler des bases ne dé­pas­sant pas 50 en­re­gis­tre­ments en écri­ture (mais illi­mi­tées en lec­ture). C'est par­fait pour pro­po­ser des bases sur un CD par exemple, mais trop li­mité dans la plu­part des si­tua­tions. Pour pou­voir réel­le­ment créer des ap­pli­ca­tions double-cli­quable, il fau­dra pas­ser par l'achat d'un 4D En­gine spon­so­risé ou non (dans ce der­nier cas, il sera plus cher que dans le pre­mier, ben oui!).

Il n'em­pêche, la cor­rec­tion de la syn­taxe est, elle, bien pré­sente, et sans li­mi­ta­tion. Un vrai bon­heur.

Les Web Ser­vi­cies

L'une des grandes nou­veau­tés de 4D 2003, c'est l'in­té­gra­tion des Web­Ser­vi­cies, basés sur le lan­gage XML et Soap.

Toute ap­pli­ca­tion mo­derne se doit ou se devra de pro­po­ser de telles so­lu­tions. En fait, ces Web Ser­vi­cies per­mettent à n'im­porte quelle ap­pli­ca­tion de dia­lo­guer avec toute autre les of­frant éga­le­ment, quelle que soit la pla­te­forme, ou le lan­gage de pro­gram­ma­tion.

Il sera ainsi pos­sible d'in­ter­ro­ger par exemple Google à l'in­té­rieur même de 4D, ou de de­man­der une in­té­gra­tion de cal­culs Excel éga­le­ment dans un for­mu­laire. Pour cette der­nière pos­si­bi­lité, il est à noter qu'elle n'est pos­sible que sur PC puisque Mi­cro­soft n'a pas in­té­gré de Web­Ser­vi­cies dans sa suite Of­fice v.X.

Soyons cer­tains que cela de­vrait être cor­rigé dans une pro­chaine ver­sion, l'édi­teur ne pou­vant se per­mettre de se cou­per de ces nou­velles fonc­tion­na­li­tés sans être ri­di­cule. Re­mar­quez... non, je n'ai rien dit...

Les do­maines d'ap­pli­ca­tion peuvent en fait être in­fi­nis. Vous pour­rez ainsi de­man­der un sys­tème de tra­duc­tion à l'in­té­rieur même de votre base, pré­pa­rer un sys­tème de mise à jour des de­vises au­to­ma­tique.

4D2003 est à la fois un client (il peut aller cher­cher des don­nées dans une autre ap­pli­ca­tion) mais aussi un four­nis­seur de ser­vices. No­tons que ces Web Ser­vi­cies sont vé­ri­ta­ble­ment un stan­dard nor­ma­lisé par le W3C (World Wide Web Consor­tium).

Pour être com­pa­tible avec les Web Ser­vi­cies, une ap­pli­ca­tion doit être ca­pable de four­nir ou (et) d'al­ler cher­cher et com­prendre une WSDL (une liste de des­crip­tion des Web ser­vices of­ferts, Web Ser­vi­cies Des­crip­tion Lan­guage), au for­mat XML, de ma­nière in­dé­pen­dante du lan­gage de pro­gram­ma­tion.

Pour bé­né­fi­cier de ces Web­Ser­vi­cies en tant que ser­veur, il faut ad­joindre à 4D le Web Ex­ten­tion, ce dont je ne dis­pose pas, rai­son pour la­quelle je n'ai pas pu tes­ter ces nou­velles spé­ci­fi­ci­tés liées à 4D 2003.​En tant que client par contre, tout est gra­tuit puisque Web Ex­ten­tion n'est pas né­ces­saire. J'ai vu quelques mises en ap­pli­ca­tion lors d'une jour­née de pré­sen­ta­tion du pro­duit, et je dois dire que ces nou­velles fonc­tion­na­li­tés de Web Ser­vi­cies m'ont tout bon­ne­ment laissé pan­tois.

Un as­sis­tant à l'in­té­rieur de 4D nous guide pour mettre en place un Web Ser­vi­cies dans notre base.

À noter qu'il fau­dra se faire à ces nou­velles tech­no­lo­gies, qui de­vraient très bien­tôt être vé­ri­ta­ble­ment dé­ployées dans tous les do­maines d'ap­pli­ca­tion.

Je pré­cise éga­le­ment que le Web Ex­ten­tion per­met à un pro­gram­meur 4D de mettre en ligne une base 4D de ma­nière très simple puis­qu'un seul clic peut suf­fire pra­ti­que­ment pour par­ve­nir à ses fins.

En conclu­sion

4D 2003 n'est pas exempt de dé­fauts, comme toute ap­pli­ca­tion qui se res­pecte. Ainsi, il n'est tou­jours pas pos­sible de sup­pri­mer une ru­brique créée dans un fi­chier ou même, un fi­chier en tant que tel. Notez que ça fait long­temps que je ne m'énerve plus avec ça, il suf­fit de ne pas uti­li­ser dans les fo­ru­mu­laires et par­tout ailleurs ces ob­jets in­utiles. N'em­pêche, cela ne fait pas très propre dans la struc­ture elle-même.

De même, je ne re­gret­te­rai ja­mais assez le fait qu'en mode liste, le cla­vier soit in­opé­rant. Pre­nons un exemple: vous cher­chez le nom Du­pond. Un appui sur la touche "D" ne vous mè­nera pas di­rec­te­ment au pre­mier nom com­men­çant par cette lettre. Quel dom­mage! Oh, je sais bien que par pro­gram­ma­tion, il est pos­sible de tout faire, mais cette fonc­tion se­rait bien utile (on en a la preuve chaque fois que l'on uti­lise Fi­le­Ma­ker).

Pour le reste, 4D 2003 est une vraie mer­veille. Je n'ai testé ici que le noyau dur de la gamme, mais il faut sa­voir que cette der­nière est très étof­fée, et per­met de ré­pondre à toutes les de­mandes d'une en­tre­prise, grosse ou pe­tite.

Je ne peux que vous conseiller de lire en­core, si ce n'est déjà fait, le test consa­cré à la dé­cou­verte de 4D 6.8, où vous dé­cou­vri­rez les bien­faits de l'ex­plo­ra­teur de 4D, de sa fe­nêtre lis­tant les pro­prié­tés d'un objet, de sa boîte à ou­tils, et de toutes ces choses de base que je n'ai pas ré­pété ici.

Oui, 4D 2003 est une vé­ri­table réus­site, et je ne peux que fé­li­ci­ter l'équipe à la base fran­çaise qui édite ce lo­gi­ciel, et vous conseiller un dé­tour, même si vous êtes en France, de l'édi­teur suisse Ajar.​ch, par­ti­cu­liè­re­ment dy­na­mique sur les pro­duits 4D.

Pour une fois qu'on a la chance de vivre dans ce pays au ni­veau in­for­ma­tique...

11 com­men­taires
1)
jibu
, le 23.05.2003 à 07:46

Je vou­drais ajou­ter un truc à ce ma­gni­fique test:

4D2003 fonc­tionne sous ma­cos9, mais uni­que­ment sous 9.2.
sous 9.1, il ne dé­marre pas.

Sur mon 9500 sous 9.1, j'étais bien em­bêté, en effet Apple a blo­qué l'ins­tal­la­tion du 9.2 sur les ma­chines non G3 d'ori­gine, donc même avec une carte ac­cé­lé­ra­trice, j'étais coincé. Une so­lu­tion: té­lé­char­ger "OS 9 HEL­PER", ce super soft vous per­met l'ins­tal­la­tion du 9.2.1 puis du 9.2.2.

en­core un truc, un super plu­gin pour faire pas­ser le contenu d'une base 4D conte­nant des adresses et….. le car­net d'adresse d'Apple, il s'agit de evx_adress­book > http://​www.​exenevex.​com < at­ten­tion il est en­core en pseudo beta payante, mais il fonc­tionne très bien.

Voilà, vive 4D !

:-)

2)
Gil­ga­mesh
, le 23.05.2003 à 09:42

Bon­jour, je compte "dé­ve­lop­per" une plate forme mé­di­ca­leen Mysql PHP pour ges­tion de fi­chiers en ser­veur/client. Quels se­raient les avan­tages de 4D dans ce cas là? Une idée, un conseil?
Merci

PS j'avais tra­vaillé avec une ver­sion 4D en ser­veur clients sur des dos­siers mé­di­caux, c'était vrai­ment pas mal mais le prix de 4D et le côté fermé me bloque un peu…
PPS: au fait très bon site et j'ap­pré­cie beau­coup votre ton…

3)
Fran­çois Cuneo
, le 23.05.2003 à 10:56

Je ne suis pas un spé­cia­liste de PHP.

Néan­moins, les deux ne sont pas an­ti­no­miques, puis­qu'ils savent col­la­bo­rer, no­tam­ment grâce aux Web Ser­vi­cies.

Cela dit, 4D vous per­met de réa­li­ser tout ce que vous vou­lez, à tout point de vue, alors que PHP est tout de même li­mité dans de nom­breux points.

4)
stef_b
, le 23.05.2003 à 11:56

"PHP est tout de même li­mité dans de nom­breux points"

Ouhh la… PHP est pas li­mité, mais c'est vrai qu'il faut faire à la main ce que cer­tai­ne­ment 4D au­to­ma­tise ou sim­pli­fie. La contre­par­tie (il y a TOU­JOURS une contre­par­tie), c'est que la sim­pli­fi­ca­tion im­plique une li­mi­ta­tion des pos­si­bi­li­tés.

Bon, je donne mon avis de nor­mand:

Si tu (on se dit tu?) mai­trise PHP/MySQL, pour­quoi pas­ser à 4D?
Si tu mai­trise 4D, pour­quoi pas­ser à PHP?

Uti­lise les ou­tils que tu mai­trise, le gain de temps sera évident.

Si tu ne mai­trises aucun des 2, que tu es payé pour le faire, alors jette un oeil à 4D, je suis sûr que tu auras qque chose d'opé­ra­tion­nel assez ra­pi­de­ment.
Mais re­garde quand même PHP/MySQL, ca coûte rien, à part du temps, et c'est quand même in­cou­tour­nable à notre époque.

Et fi­na­le­ment, il y a les contraintes du client, en terme de coûts, main­te­nance, mises-à-jour, pla­te­forme.

Voila, voila.

En ré­sumé, tous les ou­tils sont bons, a condi­tion de les mai­tri­ser (l'exemple type, ce sont les shops sur Yahoo qui étaient dé­ve­lop­pés en LISP <http://​shop.​store.​yahoo.​com/​paulgraham/​faq.​html&​gt;)

D'ailleurs main­te­nant Yahoo tourne en PHP…

———-
stef

5)
Fran­çois Cuneo
, le 23.05.2003 à 15:09

At­tends Stéph, je ne pense pas qu'on puisse dire que 4D est plus simple et par consé­quent moins puis­sant que PHP.

Il se trouve que de plus en plus sou­vent, ils doivent dia­lo­guer.

De­mande à Noé qui va créer un site Web en PHP et qui doit aller cher­cher des ren­sei­gne­ments dans une base 4D tous les jours (ca­ta­logue, liste de prix).

Cela dit, pour le reste, je suis bien d'ac­cord qu'il faut se mettre dans le bain dans un lan­gage, et faire le max avec après.

6)
stef_b
, le 23.05.2003 à 16:17

Non, j'ai pas dit que 4D était plus simple, je dis juste qu'un sys­tème qui fait des choses au­to­ma­ti­que­ment pour toi (des listes par exemple), si tu veux pou­voir taper les pre­mières lettres et ar­ri­ver di­rec­te­ment à une ligne, tu peux pas (c'est ton exemple!). Par contre, un lan­gage moins "évo­lué" comme PHP, pour faire une liste, tu dois écrire des tonnes de code, mais après, t'en fais ce que tu veux.

D'où ma théo­rie: si tu mai­trise PHP (ou un autre lan­gage, peu im­porte), si t'as déjà écrit du code, faire un nou­veau pro­jet re­viens à faire du co­pier-col­ler pour les fonc­tions prin­ci­pales. Dans 4D, tout ça existe déjà.

Tout ça re­viens à une his­toire de beurre, d'ar­gent du beurre et de la cre­mière… On peut pas tout avoir.
———-
stef

7)
Fran­çois Cuneo
, le 23.05.2003 à 20:31

Stef, le coup de la liste, c'est mal­gré tout pos­sible de le pro­gram­mer, mais c'est dur.
C'est jus­te­ment un truc que tous les autres pro­grammes offrent de série. C'est vrai­ment dom­mage que 4D ne l'offre pas, et c'est une de­mande que les uti­li­sa­teurs font de­puis tou­jours.
J'ima­gine qu'il s'agit d'un pro­blème d'ar­chi­tec­ture de base (le cla­vier n'est pas "écouté" en mode liste).

Pour le reste, je t'as­sure qu'on a le beurre et l'ar­gent du beurre, et perso, je te laisse la cré­mière pour ne pas éner­ver Mme Cuk.

8)
Eric Schuep­bach
, le 24.05.2003 à 21:17

Je suis condamné à moyen terme de faire 'mi­grer' mon ap­pli­ca­tion dé­ve­lop­pée sur Omnis 3 Plus sur quelque chose de plus mo­derne et sur­tout mul­ti­postes.

4D semble plus ou moins in­con­tour­nable. (En fait, qu'en est-il de OMNIS STU­DIO?).

J'ai jeté un ra­pide coup d'?il à Fi­le­Ma­ker, mais ap­pa­rem­ment ce n'est pas l'ou­til idéal pour dé­ve­lop­per une ap­pli­ca­tion de ges­tion so­phis­ti­quée.

Comme il faut que les fi­chiers de l'ap­pli­ca­tion soient par­ta­gés par trois uti­li­sa­teurs au moins, il semble que je doive opter pour la so­lu­tion client ser­veur.

J'ai testé avec une ver­sion démo, c'est vrai­ment ef­fi­cace.

Bon main­te­nant ma ques­tion sans doute stu­pide, mais très im­por­tante pour moi : le prin­cipe semble être qu'un Mac soit uti­lisé comme ser­veur, et les autres sont clients, OK. Mais sur le Mac ou la base est ins­tal­lée peut-il être si­mul­ta­né­ment ser­veur ET client ? Ou faut-il 'sa­cri­fier' une ma­chine sans pou­voir tra­vailler des­sus ?

Merci pour vos ré­ponses éclai­rées.

9)
Fran­çois Cuneo
, le 24.05.2003 à 23:32

Comme avec Fi­le­Ma­ker, il vaut mieux lais­ser une ma­chine s'oc­cu­per du ser­veur, et uti­li­ser d'autres ma­chines comme clients.

Par contre, on peut bos­ser sur la base (mo­di­fier la struc­ture) sans de­man­der aux clients de se dé­con­nec­ter.

Dis Eric, si tu passes d'Om­nis 3 à 4D 2003, tu vas vrai­ment faire un bond en avant! C'est qu'il a bien 8 ans ce lo­gi­ciel ou je me trompe?

Je ne connais pas Omnis Stu­dio.

10)
Eric Schuep­bach
, le 25.05.2003 à 00:56

"Dis Eric, si tu passes d'Om­nis 3 à 4D 2003, tu vas vrai­ment faire un bond en avant! C'est qu'il a bien 8 ans ce lo­gi­ciel ou je me trompe?"

8 ans ? Heuu…non… 18 ans (dix-huit). (1985-1987)

Je vais pas chan­ger toutes les 5 mi­nutes non plus !

Une fois par gé­né­ra­tion suf­fira ! Pas que ça à faire …

Bon en avant ? Bof, Omnis 3 Plus tourne tou­jours par­fai­te­ment sous clas­sic. Et c'est en tout cas tou­jours plus puis­sant que l'ac­tuel Fi­le­Ma­ker soit di­sant 'Pro'.

Omnis 3 Plus c'est un peu comme les fu­sées russes, c'est vieux, ob­so­lète, mais bien plus fiable que Ariane 5 ou la na­vette spa­tiale !

Si j'avais la ver­sion multi uti­li­sa­teurs, je ne pen­se­rai même pas à chan­ger. Mais bon, le pro­duit n'étant plus sup­porté… (un scan­dale).

Des pro­duits com­mer­ciaux ré­pu­tés datent de la même pé­riode ;Mac­Compta, par exemple, un super lo­gi­ciel par ailleurs. Ce qui est nou­veau n'est pas for­cé­ment meilleur. Loin de là.

Un autre exemple : notre fa­meux nou­veau sys­tème OS X si fiable ! Son noyau est Unix, qui date de 1969 – 1970 !! Faut pas croire que l'on ré­in­vente la roue chaque année !

Pas plus tard que ce sa­medi matin, j'ai acheté au Troc à Vil­lars-Ste-Croix (dé­pôt-vente) une ma­gni­fique radio Loewe-Opta 'Bella Mo­dern' à tubes des an­nées cin­quante (c'est la marque dont je suis dis­tri­bu­teur, alors j'ai cra­qué, et pour fr. 40.–, c'est une folie que je peux me per­mettre). Par cu­rio­sité je l'ai bran­chée, puis j'ai pesé le bou­ton MW, tourné un brin le bou­ton pour faire bou­ger l'ai­guille, et … Op­tion Mu­sique dans une qua­lité de son qui fe­rait pâlir cer­taines chaînes "hi-fi" ven­dues chez Me­diam… ou In­terd…

Tou­jours dans ma branche, j'ai eu l'oc­ca­sion de ré­cu­pé­rer il y a quelques mois un té­lé­vi­seur PHI­LIPS châs­sis KM2 de 1975-76 en état de marche. Même avec quelques signes de fa­tigue, son image est d'une qua­lité bien su­pé­rieure à nombre de té­lé­vi­seurs neufs bas de gamme ac­tuel genre Thom­son et autres merdes.

Rap­pe­lez-vous par ailleurs que le Concorde à plus de 30 ans…

Oui, je sais, je suis un in­dé­crot­table conser­va­teur.

11)
Gil­ga­mesh
, le 25.05.2003 à 11:51

Merci pour vos com­men­taires…
Le pro­blème c'est que je ne connait ni PHP ni 4D alors…(mais j'ap­prends vite).
Je crois que je vais es­sayer PHP MySQL puis si je traine trop pas­ser à 4D il y aune ver­sion gra­tuite sous clas­sique, bonne idée ça…

Sinon
c'est mar­rant l'un des buts c'était de dé­ployer une in­ter­face de dos­sier mé­di­cal dé­ployable en poste in­di­vi­duel(ca­bi­net simple) ou en poste ré­seau(2 à x, x étant petit). D'où la pos­si­bi­lité d'avoir le ser­veur et le client sur le même poste.

Allez c'est parti je vais me lan­cer dans le PHP…
Merci à tous en tout cas ;-)
Gilg a Mesh
Toute ré­fé­rence à une per­sonne ayant existé est bien sûr non for­tuite…