Builder 6, 2007, ou 2009 ?
Bonjour,
J'ai une application développée avec CBuilder 6, qui doit, à la fin du mois, être réécrite et améliorée sur une période courte. En gros on se donne six semaines à deux développeurs pour refaire entièrement une application d'environ 40 000 lignes de code (dense), et lui ajouter un certain nombre de modules et de fonctionnalités.
L'interface actuelle utilise les composants VCL standard (avec quelques dérivés maison) et un composant externe Virtual Treeview, de SoftGems, dont nous faisons une consommation importante. L'idée est de conserver ces éléments d'interface (apprendre un autre framework prendrait trop de temps), mais de limiter l'utilisation des composants non visuels de Borland, en leur préférant la STL (STLPort autant que possible) et Boost (à des fins d'évolution future). Par ailleurs, la question de la traduction du logiciel en des langues exotiques (unicode ou utf) est posée, et nous serons certainement amenés à éliminer au maximum le recours aux AnsiString dans les données...
J'ajoute que le logiciel n'utilise pas de base de données (il fait quelques requêtes à une base MS SQL externe), mais effectue des calculs lourds sur de gros fichiers binaires. Pour optimiser ces calculs, nous utilisons aujourd'hui AQTime 3.
Dans ce contexte, quelle version utiliser? CBuilder 6, Borland 2007 ou Borland 2009.
1- CBuilder 6, présente l'avantage d'être utilisé aujourd'hui, il n'y a donc rien à apprendre de neuf. En revanche, la VCL ne gère pas les langues multioctets, elle intègre une STL ancienne, mais des pans entiers de Boost ne fonctionnent pas (par exemple le lambda calcul, ou les regexp), et il est possible qu'on 'rate' certaines améliorations des versions suivantes
2- Borland 2007 semble assez proche de CBuilder 6, mais supporte mieux boost (est ce vrai?), même si elle utilise la STL de Dinkumware (peut on la remplacer?) Apparemment, elle présente assez peu de changements par rapport à Builder 6.
3- Borland 2009 est apparemment plus compatible avec Boost, et gére mieux les langues exotiques. Mais la conversion d'un projet CBuilder 6 n'est elle pas difficile? Quid de la portabilité de Virtual Treeview? Et puis, ca vient de sortir, est ce stable?
Question subsidiaire : quid du profiler? AQTime 3 suffit, une version plus moderne?
Voila, je suis à la pêche aux idées... Que feriez vous à ma place?
Merci d'avance
Francois
Builder 6 - 2007 et les librairies
Après quelques tests il semble qu'on s'oriente finalement vers une "non migration"...
Pour 2009, il semble effectivement que la version Trial ne permette pas l'installation de Virtual Tree View. Mais j'ai lu sur les newsgroups que ca marchait.
En revanche, nous avons effectué des tests sur 2007 (Pro, on en a une version). VT s'installe très facilement (la dernière version, du moins, après pas mal d'années d'absence, il semble que quelqu'un se soit décidé à reprendre la maintenance, et c'est une drôlement bonne idée!). L'environnement n'est pas mal : assez proche de Builder 6 pour n'être pas trop déroutant, la STL est passée de STLPort à Dinkumware (mouais... à des fins de "compatibilité Microsoft, allez comprendre!), pas l'ombre d'un Boost à l'horizon (en fait un certain nombre de librairies "header" fonctionnent, certaines ne marchent pas, et on peut compiler certaines des compilées...).
Ce qui manque, c'est un peu les trucs en plus... (en dehors de la compatibilité .NET, dont je me moque: c'est comme la CLX dans Builder 6, ça...) Il y a bien des classes supplémentaires dans la VCL, et des améliorations des composants existants, mais la doc sur le sujet est étrangement absente...
Là où ca se corse, c'est quand on veut porter un projet existant... D'abord, si mon cher Virtual TreeView compile bien dans les deux versions, il faut, en fait, utiliser un package différent en 2007 et en Builder 6... Oui mais... moi j'ai des composants maisons, dont un qui dérive de VT... Ah ben alors faut refaire le paquet...
Jusque là rien de grave... Sauf que... quand on refait le paquet et qu'on recompile l'application, ce bon 2007 prend note que certains composants VCL, dont dérivent mes composants, ont changé, et met à jour les formes en conséquence, en ajoutant de nouvelles valeurs par défaut des propriétés... et alors, forcément, ca ne compile plus sur Builder 6... L'application ainsi portée, et les composants maison qu'elle utilise sont maintenant séparés des autres apps maison (qui sont encore en Builder 6)
A l'inverse, une (grosse) application "pur Borland" sans composants maison, se porte en quelques minutes...
En pratique, ceci signifie (pour nous au moins) que passer en 2007 (ou 2009, je doute que ce soit différent) implique une rupture au niveau des composants maison (qui se mettent à exister en 2 version, suivant les programmes qui les utilisent).
La conclusion de tout ca : c'est qu'on va probablement démarrer sous Builder 6, en testant la nouvelle application sur 2007 au cas où... On n'a pas vraiment un meilleur produit sur 2007, et on perd la compatibilité (et la possibilité de réutiliser) avec les applications et composants maison builder 6...
Francois