Sur l'Apple expo, 4D lançait une mise à jour majeure de son logiciel de base de données - 4Dv11 SQL - avec en vedette l'adaptation aux puces Intel et le support du très populaire langage SQL. Laurent Ribardière (à droite sur les photos) le PDG fondateur de 4D - toujours les mains dans le code - et Luc Hollande son Directeur Général sont revenus sur la naissance de cette version et sur l'intérêt de l'iPhone pour 4D.
Est-ce qu'on peut dire que l'accouchement de cette onzième version a été long voire difficile ?
Laurent Ribardière : C'est la première fois dans l'histoire de 4D qu'il y a une réécriture totale du noyau de notre base de données. Depuis la première version sortie en 1985 le moteur évoluait mais on restait autour des même fondations. Là on a fait table rase, on est reparti de zéro. C'est un projet qui a démarré il y a plus de 4 ans avec l'objectif de créer un moteur moderne, 64 bits, SQL natif, qui puisse gérer de très gros volumes de données, un grand nombre de clients simultanés et qui tire profit des multi-processeurs et des multi-coeurs. Alors effectivement ça a été plus long à venir que les fois précédentes parce que là c'est une refonte totale.
Luc Hollande : avec en plus l'impératif de maintenir la compatibilité ascendante.
LR : Oui voilà, il y a deux ans ce nouveau moteur fonctionnait déjà mais après la grosse difficulté fut d'assurer sa compatibilté avec les requêtes existantes.
Il y a quatre ans certaines technologies n'existaient pas ou bien n'étaient pas encore en place, par exemple les puces Intel dans les Mac. En quoi cela a t-il affecté le développement ?
LR : Il n'y avait pas encore de Mac Intel mais on avait déjà l'expérience depuis 1995 des processeurs d'Intel avec 4D pour Windows. Les Xeon bi-coeurs, le multiprocesseur, le multi-coeurs tout ça n'était pas nouveau non plus. Et d'autres comme Oracle les utilisaient depuis longtemps déjà. On a fait un pari sur l'avenir qui s'est révélé payant. Au vu de l'évolution technologique des processeurs, de la mémoire vive et des disques durs, on s'est dit qu'il fallait s'orienter vers la gestion d'un plus gros volume de données. Il y a dix ans, une limite de 128 Go par base de données c'était l'Eldorado. Maintenant on peut avoir le double de capacité sur un simple portable ! On a donc repoussé ces limites avec un plafond de 16 milliards de giga-octets. Ca peut paraître énorme mais on verra dans dix ans… A chaque fois on fait un pari sur les évolutions matérielles.
En quatre ans Mac OS X a aussi pas mal évolué, quelles en furent les incidences ?
LR : Là où il y a eu le plus d'interférences ce n'est pas tant sur la base de données que sur la gestion de l'interface et de son ergonomie. Chaque évolution de Mac OS apporte son lot de changements radicaux dans les outils de développements d'Apple. Ils nécessitent pour nous une modification du code que l'on qualifiera de substantielle… Et quand Leopard sortira on ajoutera encore de nouvelles choses dans 4D pour tirer partie de ses nouveautés.
Aujourd'hui vous avez adopté l'Xcode d'Apple pour le développement sur Mac ?
LR : Oui on est passés de CodeWarrior à Xcode il y a un peu plus de trois ans et demi. On a eu notre lot de galères, on peut le reconnaître. Il avait des différences avec CodeWarrior et même si on en est à la version 3, il manque encore à Xcode certaines choses pour mieux gérer de gros projets de développement.
Les éditeurs utilisent souvent cette expression de réécriture de zéro mais concrètement, on part vraiment d'une page vierge dans Xcode ?
LR : Oui c'est exactement ça ! Pour le moteur de 4D, pour le langage d'interrogation ou encore pour les mécanismes de sauvegarde des données on est parti d'une feuille blanche. On rédéfinit des grandes lignes, on commence à écrire des petits bouts de code qui s'accumulent. Et on a parfois aussi cette angoisse de la page blanche.
C'est un travail de réécriture qui se fait en équipe ou comme il y a vingt ans vous avez démarré tout seul ?
LR : Sur la partie moteur de base de données, j'ai eu la chance de pouvoir commencer tout seul à nouveau.
Vous continuez à écrire vous-même du code ?
LR : Oui le management ce n'est pas mon truc, c'est pour ça que je confie cette responsabilité à d'autres. Moi ma partie c'est le développement. C'est passionnant de suivre l'arrivée de nouvelles technologies. Et puis on ne programme plus une base de données comme il y a vingt ans. Avant on avait quelques boutons d'interface maintenant c'est beaucoup plus complexe.
Vous arrivez assez tard avec la compatiblité SQL dans 4D. Qu'est-ce que cette nouvelle disposition dans votre produit va changer ?
LH : Ca ouvre 4D sur le monde extérieur et ce n'est pas neutre parce que pour le responsable informatique, l'architecture de son système d'information, le choix des standards c'est ce qui lui permet un niveau d'interropérabilité et de perfomances satisfaisant. On garde nos points forts que sont la productivité du développement et de la maintenance des applications réalisées mais on efface un point faible. Et pour nos partenaires qui vendent des solutions autour de 4D c'est un nouvel argument de vente.
LR : même pour de petites structures, par exemple un cabinet médical, ça peut être bénéfique. Elles n'ont pas nécessairement besoin d'un moteur de base de données ultra sophistiqué mais cette nouvelle compatibilté permettra des interactions avec des logiciels tiers d'analyse de données qui utilisent les requêtes SQL.
4D est autant utilisé à l'intérieur de produits très grand public qu'au sein de solutions d'entreprise. Au moment du développement d'une nouvelle version comment fait-on pour concilier les besoins de ces deux populations de développeurs ?
LR : Effectivement on se pose souvent des questions sur la manière de faire. On a par exemple scindé notre offre avec le pack Web 2.0 car il n'intéressera pas tout le monde. Mais très souvent quand on réfléchit au développement d'une nouvelle fonction on se dit qu'il faut qu'elle soit facile à mettre en oeuvre par une petite société et capable de s'adapter à de gros besoins. Un exemple, maintenant quand on développe avec 4D, on peut mélanger du langage 4D traditionnel avec du SQL. Un développeur pourra créer ses formulaires un peu à la FileMaker avec des paramétrages automatiques et puis le jour où il veut aller plus loin il utilisera du SQL et ses requêtes plus complexes. C'est une évolution en douceur et à laquelle on essaie toujours de faire attention.
LH : En essayant de concilier l'accessibilité et la simplicité pour de petites applications avec la capacité de montée en puissance de grosses applications on a pu apporter davantage de productivité à nos développeurs de grosses applications. C'est une approche très différente par rapport à celles des éditeurs qui viennent du haut du marché.
Qu'est-ce que représente aujourd'hui le Mac chez 4D ?
LR : Il est toujours bien représenté parmi les développeurs de solutions 4D où l'on est à 50/50 avec Windows. En déploiement sur le terrain par contre Windows est majoritaire. Mais un développeur Mac a l'assurance de voir son logiciel être compatible simultanément Mac et PC.
Il y a gains de performance avec cette version adaptée Intel ?
LR : On a des accélérations d'un facteur 3 à 5 par rapport à la même base fonctionnant en mode émulation via Rosetta.
Vous avez prévu d'abandonner le PowerPC ?
LR : On a encore énormément de gens sur PowerPC et autant on a quelques problèmes avec les gros projets dans Xcode, autant la génération du code universal binary (ndr : PowerPC/Intel) fonctionne bien. Donc ce serait dommage de se priver de cette clientèle. En plus ça ne coûte pas grand chose de développer pour les deux plutôt que pour Intel seulement. Et tant qu'Apple proposera cette compilation pour le PowerPC on l'utilisera.
Est-ce que vous voyez une opportunité avec l'iPhone ? Puisque vous proposez des outils de développement avce le pack Web 2.0 et qu'Apple enjoint les développeurs à passer par cette méthode pour concevoir des applications pour son téléphone.
LR : Ca nous intéresse beaucoup en fait. C'est plus qu'un levier marketing, parce que je pense que de vraies applications vont arriver dans ce domaine.
LH : Les nouvelles applications fonctionneront indifféremment sur un Mac ou un PC et sur un PDA.
LR : Ce n'est pas forcément le même type d'applications qu'aujourd'hui mais il y a des besoins spécificiques. Typiquement le commercial toujours en déplacement qui veut accéder aux infos de son entreprise.
Vous allez devoir apporter des modifications spécifiques pour gérer Safari sur l'iPhone
LR : Oui, avec le temps on va ajouter des extensions spéciales car le Javascript de Safari est un peu différent de celui de Firefox ou d'Internet Explorer, pour tout ce qui est relatif à l'ergonomie notamment.
LH : Pour nous le marché à venir c'est celui des applications Internet riches. On va investir dans ces technologies pour notre environnement de développement.
Question subsidiaire, il paraît que vous êtes un passionné de photographie, alors quel est le meilleur de Lightroom ou d'Aperture ?
LR : Pour dire la vérité, mes photos je les traite sur PC… c'est la honte non ? Il se trouve qu'à la maison j'ai un logiciel que j'aime beaucoup. Il est beaucoup moins puissant qu'Aperture mais en automatisation des manipulations il est vraiment bien et je n'ai pas trouvé d'équivalent sur Mac.
Vous voulez dire que la réécriture de zéro de 4D a été faite sur PC !
LR : Elle a commencé à la fois sur Mac et PC, j'ai les deux plateformes à la maison. Mais la première version d'Xcode… ce n'était pas trop ça. L'éditeur flinguait beaucoup les données. Je suis passé sur Visual Studio et je suis revenu ensuite sur Xcode quand il s'est amélioré. Ce qui est bien avec les projets que l'on fait c'est qu'on peut facilement passer de l'un à l'autre.
Est-ce qu'on peut dire que l'accouchement de cette onzième version a été long voire difficile ?
Laurent Ribardière : C'est la première fois dans l'histoire de 4D qu'il y a une réécriture totale du noyau de notre base de données. Depuis la première version sortie en 1985 le moteur évoluait mais on restait autour des même fondations. Là on a fait table rase, on est reparti de zéro. C'est un projet qui a démarré il y a plus de 4 ans avec l'objectif de créer un moteur moderne, 64 bits, SQL natif, qui puisse gérer de très gros volumes de données, un grand nombre de clients simultanés et qui tire profit des multi-processeurs et des multi-coeurs. Alors effectivement ça a été plus long à venir que les fois précédentes parce que là c'est une refonte totale.
Luc Hollande : avec en plus l'impératif de maintenir la compatibilité ascendante.
LR : Oui voilà, il y a deux ans ce nouveau moteur fonctionnait déjà mais après la grosse difficulté fut d'assurer sa compatibilté avec les requêtes existantes.
Il y a quatre ans certaines technologies n'existaient pas ou bien n'étaient pas encore en place, par exemple les puces Intel dans les Mac. En quoi cela a t-il affecté le développement ?
LR : Il n'y avait pas encore de Mac Intel mais on avait déjà l'expérience depuis 1995 des processeurs d'Intel avec 4D pour Windows. Les Xeon bi-coeurs, le multiprocesseur, le multi-coeurs tout ça n'était pas nouveau non plus. Et d'autres comme Oracle les utilisaient depuis longtemps déjà. On a fait un pari sur l'avenir qui s'est révélé payant. Au vu de l'évolution technologique des processeurs, de la mémoire vive et des disques durs, on s'est dit qu'il fallait s'orienter vers la gestion d'un plus gros volume de données. Il y a dix ans, une limite de 128 Go par base de données c'était l'Eldorado. Maintenant on peut avoir le double de capacité sur un simple portable ! On a donc repoussé ces limites avec un plafond de 16 milliards de giga-octets. Ca peut paraître énorme mais on verra dans dix ans… A chaque fois on fait un pari sur les évolutions matérielles.
En quatre ans Mac OS X a aussi pas mal évolué, quelles en furent les incidences ?
LR : Là où il y a eu le plus d'interférences ce n'est pas tant sur la base de données que sur la gestion de l'interface et de son ergonomie. Chaque évolution de Mac OS apporte son lot de changements radicaux dans les outils de développements d'Apple. Ils nécessitent pour nous une modification du code que l'on qualifiera de substantielle… Et quand Leopard sortira on ajoutera encore de nouvelles choses dans 4D pour tirer partie de ses nouveautés.
Aujourd'hui vous avez adopté l'Xcode d'Apple pour le développement sur Mac ?
LR : Oui on est passés de CodeWarrior à Xcode il y a un peu plus de trois ans et demi. On a eu notre lot de galères, on peut le reconnaître. Il avait des différences avec CodeWarrior et même si on en est à la version 3, il manque encore à Xcode certaines choses pour mieux gérer de gros projets de développement.
Les éditeurs utilisent souvent cette expression de réécriture de zéro mais concrètement, on part vraiment d'une page vierge dans Xcode ?
LR : Oui c'est exactement ça ! Pour le moteur de 4D, pour le langage d'interrogation ou encore pour les mécanismes de sauvegarde des données on est parti d'une feuille blanche. On rédéfinit des grandes lignes, on commence à écrire des petits bouts de code qui s'accumulent. Et on a parfois aussi cette angoisse de la page blanche.
C'est un travail de réécriture qui se fait en équipe ou comme il y a vingt ans vous avez démarré tout seul ?
LR : Sur la partie moteur de base de données, j'ai eu la chance de pouvoir commencer tout seul à nouveau.
Vous continuez à écrire vous-même du code ?
LR : Oui le management ce n'est pas mon truc, c'est pour ça que je confie cette responsabilité à d'autres. Moi ma partie c'est le développement. C'est passionnant de suivre l'arrivée de nouvelles technologies. Et puis on ne programme plus une base de données comme il y a vingt ans. Avant on avait quelques boutons d'interface maintenant c'est beaucoup plus complexe.
Vous arrivez assez tard avec la compatiblité SQL dans 4D. Qu'est-ce que cette nouvelle disposition dans votre produit va changer ?
LH : Ca ouvre 4D sur le monde extérieur et ce n'est pas neutre parce que pour le responsable informatique, l'architecture de son système d'information, le choix des standards c'est ce qui lui permet un niveau d'interropérabilité et de perfomances satisfaisant. On garde nos points forts que sont la productivité du développement et de la maintenance des applications réalisées mais on efface un point faible. Et pour nos partenaires qui vendent des solutions autour de 4D c'est un nouvel argument de vente.
LR : même pour de petites structures, par exemple un cabinet médical, ça peut être bénéfique. Elles n'ont pas nécessairement besoin d'un moteur de base de données ultra sophistiqué mais cette nouvelle compatibilté permettra des interactions avec des logiciels tiers d'analyse de données qui utilisent les requêtes SQL.
4D est autant utilisé à l'intérieur de produits très grand public qu'au sein de solutions d'entreprise. Au moment du développement d'une nouvelle version comment fait-on pour concilier les besoins de ces deux populations de développeurs ?
LR : Effectivement on se pose souvent des questions sur la manière de faire. On a par exemple scindé notre offre avec le pack Web 2.0 car il n'intéressera pas tout le monde. Mais très souvent quand on réfléchit au développement d'une nouvelle fonction on se dit qu'il faut qu'elle soit facile à mettre en oeuvre par une petite société et capable de s'adapter à de gros besoins. Un exemple, maintenant quand on développe avec 4D, on peut mélanger du langage 4D traditionnel avec du SQL. Un développeur pourra créer ses formulaires un peu à la FileMaker avec des paramétrages automatiques et puis le jour où il veut aller plus loin il utilisera du SQL et ses requêtes plus complexes. C'est une évolution en douceur et à laquelle on essaie toujours de faire attention.
LH : En essayant de concilier l'accessibilité et la simplicité pour de petites applications avec la capacité de montée en puissance de grosses applications on a pu apporter davantage de productivité à nos développeurs de grosses applications. C'est une approche très différente par rapport à celles des éditeurs qui viennent du haut du marché.
Qu'est-ce que représente aujourd'hui le Mac chez 4D ?
LR : Il est toujours bien représenté parmi les développeurs de solutions 4D où l'on est à 50/50 avec Windows. En déploiement sur le terrain par contre Windows est majoritaire. Mais un développeur Mac a l'assurance de voir son logiciel être compatible simultanément Mac et PC.
Il y a gains de performance avec cette version adaptée Intel ?
LR : On a des accélérations d'un facteur 3 à 5 par rapport à la même base fonctionnant en mode émulation via Rosetta.
Vous avez prévu d'abandonner le PowerPC ?
LR : On a encore énormément de gens sur PowerPC et autant on a quelques problèmes avec les gros projets dans Xcode, autant la génération du code universal binary (ndr : PowerPC/Intel) fonctionne bien. Donc ce serait dommage de se priver de cette clientèle. En plus ça ne coûte pas grand chose de développer pour les deux plutôt que pour Intel seulement. Et tant qu'Apple proposera cette compilation pour le PowerPC on l'utilisera.
Est-ce que vous voyez une opportunité avec l'iPhone ? Puisque vous proposez des outils de développement avce le pack Web 2.0 et qu'Apple enjoint les développeurs à passer par cette méthode pour concevoir des applications pour son téléphone.
LR : Ca nous intéresse beaucoup en fait. C'est plus qu'un levier marketing, parce que je pense que de vraies applications vont arriver dans ce domaine.
LH : Les nouvelles applications fonctionneront indifféremment sur un Mac ou un PC et sur un PDA.
LR : Ce n'est pas forcément le même type d'applications qu'aujourd'hui mais il y a des besoins spécificiques. Typiquement le commercial toujours en déplacement qui veut accéder aux infos de son entreprise.
Vous allez devoir apporter des modifications spécifiques pour gérer Safari sur l'iPhone
LR : Oui, avec le temps on va ajouter des extensions spéciales car le Javascript de Safari est un peu différent de celui de Firefox ou d'Internet Explorer, pour tout ce qui est relatif à l'ergonomie notamment.
LH : Pour nous le marché à venir c'est celui des applications Internet riches. On va investir dans ces technologies pour notre environnement de développement.
Question subsidiaire, il paraît que vous êtes un passionné de photographie, alors quel est le meilleur de Lightroom ou d'Aperture ?
LR : Pour dire la vérité, mes photos je les traite sur PC… c'est la honte non ? Il se trouve qu'à la maison j'ai un logiciel que j'aime beaucoup. Il est beaucoup moins puissant qu'Aperture mais en automatisation des manipulations il est vraiment bien et je n'ai pas trouvé d'équivalent sur Mac.
Vous voulez dire que la réécriture de zéro de 4D a été faite sur PC !
LR : Elle a commencé à la fois sur Mac et PC, j'ai les deux plateformes à la maison. Mais la première version d'Xcode… ce n'était pas trop ça. L'éditeur flinguait beaucoup les données. Je suis passé sur Visual Studio et je suis revenu ensuite sur Xcode quand il s'est amélioré. Ce qui est bien avec les projets que l'on fait c'est qu'on peut facilement passer de l'un à l'autre.