Club 4D de Montréal

     

 

Accueil

Qu'est-ce que 4D?

Développeurs

Adresses des membres

Archives

Photographies

Site officiel de 4D

 

Notes prises lors de la présentation de Jean-Pierre Ribreau lors de sa présentation au Club 4D de Montréal le 27 octobre 1998.

Je vais commencer ce document avec une petite mise en garde: ces notes ont été prises aussi rapidement que possible lors de la présentation. Quoique j'ai essayé d'être aussi exact que possible, il est très probable que j'ai fait quelques erreurs en tapant mes notes. S'il vous plaît, n'utilisez pas ce document pour vous aider à prendre quelque décision d'affaire que ce soit. Et si ACI, ACI US ou Agoratech dénoncent quoi que ce soit dans ce document, alors tout est de ma faute et je n'aurai qu'à faire plus attention la prochaine fois. Sur ces quelques mots ayant pour but de protéger mes arrières, voici ce que vous attendiez tant!

Présentation de René Ricard - Mot de bienvenue et remerciement à Agoratech et JPR pour la présentation à venir.

4D v6.5
En beta à la mi-novembre
Déjà pas mal stable
Final en Q1 de 1999 (probablement février)
350 nouveaux features originalement prévus pour 6.5 -> 200 d'implémentés.
Débuggage depuis fin juin (ie: plus de nouveaux features)
Après 6.5 il devrait y avoir une 6.6
Pas de modification du moteur, que des ajouts.
Ils ont optimisé en se basant sur le fait que les nouvelles machines ont plus de mémoire qu'avant. Une nouvelle partie du moteur s'active quand il y a beaucoup de mémoire, et le vieux moteur est utilisé quand il y en a moins.
12MB d'alloué à 4D peut être assez pour activer le nouveau moteur.

4D v7
Équipe scindée en 2: Ceux qui travaillent sur 6.5 et ceux qui travaillent sur 7
6.5 contient le framework développé en vu de la 7, indépendant de Altura (?)
7 est un redéveloppement à partir de 0 de 4D. Tout est orienté objet.
V7 est relativement prévu pour Q1 2000 (donc, d'ici les 250 premières années, d'après JPR).
La vitesse de 4D v7 est beaucoup meilleure que celle de 4D v6.5
Dans la v7, on a un process et un contexte au lieu de juste un process comme pour v6.5. Par exemple: un process avec deux fiches modifiées pour un même fichier.
Pourra faire nouveau tableau, nouveau champ par programmation
Au début(?) on pourra avoir 32000 tables et 32000 champs, mais ces chiffres devraient de fait s'établir autour de 2 milliards.

Démo de performances de 4D v6.5
On peut passer de 4D 6.5 à 6.0.5 et vice versa, la structure n'est pas modifiée.
Le démo a était fait sur un vieux PowerBook G3 et une version de débuggage de 4D v6.5, la version finale devrait être plus rapide.
La base contient 100000 fiches
4D v6.0.5
- environs 30 à 40 secondes pour recherche sans index, indexation ou join.
- Le tri sur deux champs est trop lent pour qu'on le montre (17 minutes, d'après JPR).
4D v6.5
- recherche sans index: 10 secondes. Les autres fonctions sont encore plus rapides
- tri sur deux champs: 20 secondes
C'est donc beaucoup plus vite qu'avant.

Nouvelles commandes
Query with Array: on peut utiliser un tableau pour une recherche (avec jusqu'à 32000 éléments).
Nouveaux événements: On Before Keystroke et On After Keystroke
Get Index Key: donne accès au contenu d'un index sans changer la sélection actuelle
Il est possible de créer un ensemble qui, lorsque réactivé, resélectionnera les fiches dans une liste (la sélection doit être triée).
On peut maintenant avoir des boutons dans l'en-tête d'une liste pour, par exemple, trier.
On peut ajouter des "splitters" dans une liste pour redimensionner des colonnes comme avec AreaList Pro.
L'événement On Click est retourné lorsqu'on clique sur une fiche dans une liste.
L'événement On Timer nous permet de spécifier l'intervalle auquel une méthode de format est appelée automatiquement.

Interface
On peut maintenant déplacer un objet à l'écran par procédure et on peut calculer la position d'un objet grâce à l'événement On Resize.
Un bouton animé peut contenir un nombre de tick qui représente la vitesse de l'animation.
Les splitters peuvent aussi être utilisés dans l'éditeur.
Avec un peu de code, on peut avoir un écran dont les objets se déplacent de manière proportionnelle les uns par rapport aux autres.

Autres
Dans les database properties on peut définir un commentaire automatic (comme ceux d'Insider, je crois) qui seront associés à une méthode lorsqu'elle est modifiée. Il y aura même un menu contextuel pour cette fonctionnalité.
Le serveur web de 4D v6.5 peut faire du "multi-homing". Et il utilise du JavaScript pour reproduire les paramètres d'entrée de données de 4D (ie: minimum, maximum...)
Il y a aussi beaucoup d'autres nouveautés pour le serveur Web, d'après JPR.
Il y a maintenant des menus contextuels pour l'éditeur de format.
Il y a une nouvelle façon de déplacer les séparateurs dans un format. Au lieu d'utiliser les triangles dans les règles on peut maintenant cliquer sur la ligne directement si elle est affichée.
Nouvelle palette d'outils avec des menus défilant qui intègre aussi la deuxième palette (cette dernière n'est ajoutée à la première que si on clique sur un bouton au bas de la palette).
Nouvelle palette avec la liste des propriétés du format ou de ses objets. Mais l'ancienne palette est encore disponible.
Le dialog des "form properties" peut maintenant être utilisé pour déterminer la barre de menu associée à un format.
L'Explorer nous permet de voir les commentaires associés à une méthode et même de les modifier.
Les "breaks" peuvent mainteant être ajoutés directement dans l'éditeur de méthode. Ceci va possiblement marquer la fin de la commande Trace.
Contrôle syntaxique inclus dans l'éditeur de méthode (manque une parenthèse, etc.)
Si on tape ENTER dans une ligne, la syntaxe de la commande apparaîtra au haut de la fenêtre.
Le fichier d'aide est maintenant disponible dans l'Explorer et les commandes peuvent être transférées dans une procédure avec tous les paramètres dont elle a besoin.
Il y a un mini Insider d'intégré dans 4D. On peut faire des recherches mais pas de remplacement. La base est pré "parsé" pour le mini Insider.
La librarie d'image contient maintenant un petit éditeur de dessins avec de l'aide dans le cas des boutons animés.
On peut prendre une image de la librarie et l'amener dans un format ou un bouton sera automatiquement créé avec l'image et ses paramètres.
Le chiffre 33 dans un bouton avec image est un paramètre qui fait que l'image change automatiquement lorsque le curseur de la souris passe au-dessus du bouton.
Il existe un nouveau genre d'externe pour gérer les mots de passe (par exemple, sur Windows vous pourriez utiliser le gestionnaire de mots de passe de Windows NT pour 4D).
De nouvelles externes pour les mots de passe seront bientôt annoncés par de nouvelles compagnies telles que Foresight, etc.
Mais maintenant, il ne faut vraiment pas oublier notre mot de passe car 4D va donner l'encryption à l'externe et il ne sera plus possible de débarrer la base avec certaines des vieilles techniques.
4D Utils 6.5 offrira une certaine forme de défragmentation des données.
Execute on client (à la execute on server)
JPR nous a montré une sorte de space invaders fait entièrement avec 4D.
4D Open pour Java devrait offrir toutes sortes de nouvelles opportunitées (JPR semblait dire qu'il y avait plusieurs plans pour 4D Open dans un avenir quelconque).
Il a aussi mentionné la possibilité de 4D Open pour Windows CE.
ACI pense aussi à 4D Open pour Unix (Linux) mais rien n'a encore été décidé.
4D Serveur v7 devrait être utilisable en Unix. A mentionné que les network components serait peut-être déjà transférés en Unix.
Il y a du travail qui se fait pour adapter 4D aux API de Carbon pour MacOS X.
J'ai cru comprendre que les commentaires pourraient être plus long dans les méthodes.
Les listes hiérarchiques peuvent maintenant contenir jusqu'à 256 caractères.
Nouveaux écrans d'import et d'export offrent un meilleur contrôle et une meilleure prévisualisation des données à importer.

Runtime Explorer
Le Runtime Explorer permet de visualiser diverses informations concernant notre application et changer la valeur de variables, mais ce n'est pas le debuggeur. Et de plus, il fonctionne avec des applications compilées (sauf qu'on ne peut pas modifier les variables dans ce cas).
Cet outil nous offre aussi des statistiques détaillées concernant la cache.
Nous montre aussi la liste des breaks.
Offre des statistiques concernant les process.

4D Web Server
HTML 3.2
Images de fond
Les attributs d'un champ sont "transférables" grâce à Javascript.
Nouveaux modes de connection: avec et sans contexte. Ceci va permettre à beaucoup plus de gens de se connecter sur le serveur puisque le mode sans contexte ne vérifie pas les licences de clients.
Un Pentium 200 peut servir 12 pages à la seconde.
Commande permettant d'envoyer un BLOB comme une page HTML. Ceci permet de bâtir des pages dymaniquement. Et puisque ceci fonctionne dans le mode sans contexte, l'utilisateur peut utiliser le bouton de retour en arrière sans problème.
4D se comporte maintenant comme un vrai serveur Web.
4D devrait aussi pouvoir utiliser des externes (4D envoie une image crée par l'externe et retourne à l'externe le point où l'utilisateur a cliqué, etc.)
Les "frames" sont supportés.
4D conserve aussi des statistiques concernant l'utilisation du serveur Web. Elles sont accessibles à distance par l'administrateur.
Le serveur peut aussi conserver un log de tout ce qui s'est passé, dans un fichier texte.
Le SMTP sera inclus avec 4D grâce à une externe qui sera éventuellement intégrée. (PIT?)
Deux chemins d'étude pour le SSL: smart cards (et autre méthodes éventuellement) et KLELINE pour les transactions avec des marchants.

4D Write
Utilise aussi le nouveau "framework" mentionné plus haut.
Nous a montré un document de 702 pages.
Fait du "live scrolling" qui est assez rapide.
Multiple undo et redo (dépend de la mémoire disponible).
Possible de coller une image sur toutes les pages (ex.: image de fond).
Offre aussi un mode de prévisualisation comme avec 4D (et avec un zoom).
Permet de faire des tableaux avec une règle accessible pour les cellules.
On peut donner des couleurs aux soulignés.
Même le style "ombre" peut avoir une couleur pour l'ombre.
On peut faire une recherche par couleur dans le texte (avec aussi des variations sur le style), ou par style de paragraphe, ou par bordure, etc.
Multi-colonnes avec options de séparateur.
Offre des "split views" grâce au "framework"
Possibilité d'avoir les statistiques concernant un document programmatiquement.
L'échange de documents avec Word doit se faire par la sauvegarde en format RTF.

DatAnalyser
Permet d'avoir une information détaillée concernant les tables et les champs.
A mentionné que contrairement à ce qu'on avait pu entendre, il n'existe pas vraiment d'index fantôme et que la taille des fiches a toujours été OK. Les indexes fantômes seraient de fait des débuts d'indexation interrompus que 4D dit qu'ils sont toujours utilisés même s'ils ne le sont pas(?).
DatAnalyser est un meilleur outil d'analyse que DataCheck à cause des informations qu'il offre.
Écran montrant l'état de fragmentation des fichiers.
Cet outil pourrait être livré avec 6.5, mais il s'agirait d'une version moins sophistiquée que celle qu'il offre dans ses cours.

Et finalement...:
Suite à un article qui parlait de problèmes de vitesse de 4D, il a fait un programme qui calcule passe à travers 10000000 nombres pour trouver 664580 nombres premiers, et ce en 6 secondes. (Ceci équivaut à environ 70 000 000 boucles en 6 secondes).
Mentionne que c'est plus vite qu'un programme en C++ pour ce cas-ci précis.

Il a aussi mentionné que ce sont les développeurs qui vendent 4D.
ACI doit offrir un haut niveau de support technique et c'est ACI France qui peut offrir ceci.
Il existe maintenant un Technical Interest Group(?) qui est une sorte de mailing list entre les divers groupes de support technique à travers le monde. Si ce groupe ne peut résoudre un problème, ce dernier monte l'échelle d'expertise.
Avant, cette liste n'était offerte qu'aux branches d'ACI, maintenant les distributeurs (comme Agoratech) y auront aussi accès.

A mentionne l'existence (en France) d'un ACI Service pouvant coûter jusqu'à 3000$ par jour et qui offre un service de support et/ou de codage, etc. pour rassurer des gros clients qui hésiteraient à engager une petite compagnie. Ce service garanti que l'analyse est bonne et que si le développeur qu'ils ont engagé n'arrive pas à faire le contrat, qu'ACI pourra en trouver un autre pour le compléter. Une certaine aide technique sera aussi fournie avec ce service.
En Europe, il y a quatre personnes qui peuvent offrir ce service. Si elles ne peuvent trouver une solution, elles parlent directement à JPR.
Ça pourrait même aller jusqu'à changer 4D lui-même si on trouvait un problème qui ne peut vraiment pas être résolu avec 4D.

On verra aussi la création de groupes d'évangélistes (travaillant gratuitement): des développeurs qui aideront d'autres développeurs avec, par exemple, leurs présentations. Ils seront possiblement "remerciés" par des rabais sur des produits et par leur réputation.

JPR a aussi mentionné qu'il était heureux d'apprendre que les développeurs du Club 4D de Montréal s'entraidaient régulièrement et qu'ils n'hésitaient pas à se passer des contrats qu'ils n'avait pas soit le temps soit la compétence de réaliser. Un tel phénomène existe aussi au Japon. Il a dit qu'il souhaiterait voir une telle entraide en France un bon jour.

Il a aussi mentionné qu'une compagnie américaine s'occuperait dorénavant de la documentation et du support pour la création d'externes. [Note de Thierry: pour éviter toute contreverse, je ne mentionnerai pas le nom de la compagnie, mais pensez à un gros développeur d'externes et vous avez probablement raison.].