Eclipse RCP - Avant-propos de Jeff Norris

Publié le par Séverine Darlot

Je suis en train de lire « Eclipse Rich Client Platform - second edition » aux éditions Addison-Wesley. J'ai beaucoup aimé l'avant-propos écrit par Jeff Norris et pour entrainer mon anglais, j'en ai fait une traduction. Avec l'aimable autorisation de Jeff Norris et des auteurs du livre - Jeff McAffer, Jean-Michel Lemieux, Chris Aniszczyk - voici cette traduction :

 

Avant-propos de Jeff Norris :

 

Dans l'avant-propos de la première version de ce livre, j'avais comparé la plateforme Eclipse Rich Client (RCP) aux énormes fusées qui transportent les robots de la NASA dans l'espace. Elles sont puissantes, sophistiquées et essentielles, mais finalement, elles ne sont que le support qui permet de transporter nos créations de façon sécurisée à leurs destinations finales.

 

Quatre ans plus tard, le RCP continue de servir de support aux outils que mon équipe développe pour contrôler une large variété de robots et vaisseaux spatiaux qui roulent, volent, naviguent ou se déplacent de façon large et variée. Il nous fournit des fondations de développement solides basés sur des composants, un framework flexible pour les interfaces utilisateurs riches ainsi que de nombreux outils qui entourent et soutiennent les petites briques logicielles développées par mon équipe.

 

Mon équipe est extrêmement fière de ces petites briques de code et de ce qui se passe à la NASA. Mais lorsqu'une mission est un succès, je pense que nous sommes tous conscients qu'un projet d'exploration spatiale au niveau interplanétaire exige des succès combinés de nombreux experts au sein de la NASA et à l'extérieur. Ces centaines voir parfois ces milliers d'experts ont des spécialités qui vont de la conception des trajectoires de croisières à l'art de répartir correctement les câbles dans les membres d'un robot (et croyez-moi, pour avoir déjà vu ces personnes travailler, c'est un art !).

 

Bien sûr, il y a plusieurs centaines d'années, lors de l'invention des premières fusées, il suffisait de quelques personnes pour attacher un tube en bambou remplit de poudre à une flèche et créer ainsi la première flèche incendiaire. De nos jours, si nous pouvons espérer arriver à quelque chose d'aussi complexe que l'atterrissage et le fonctionnement d'un rover sur Mars, c'est seulement grâce à un énorme effort combiné de plusieurs spécialisations et à leurs coopérations.

 

Cette remarquable combinaison de spécialisations et de coopérations se retrouve dans d'autres types d'activités. Si quelques bricoleurs peuvent s'associer pour construire une cabane, la construction d'un gratte-ciel nécessite la collaboration des travaux d'architectes, de charpentiers, de plombiers, d'électriciens, de maçons et de centaines d'autres métiers comprenant des connaissances basiques de disciplines particulières. Les constructions modernes, comme l'exploration moderne de l'espace est simplement plus ambitieuse et plus complexe pour être accomplie d'une autre manière.

 

Je pense que les applications logicielles modernes sont plus proches de l'exploration spatiale par des robots que la création des premières flèches à propulsion et plus proche de la construction d'un gratte-ciel que de la construction d'une cabane. Le développement d'applications complexes exige des spécialisations et de la coopération. Je pense que c'est cette raison fondamentale qui explique l'existence et le succès constant d'Eclipse RCP. Derrière la plateforme décrite dans ce livre, se trouve une communauté mondiale d'experts – dont les spécialités vont de l'allocation automatique de ressources à l'assistance utilisateur qui coopèrent depuis des années pour créer un framework libre et extensible permettant de construire quasiment tous types d'applications. Si vous décidez d'utiliser ce framework, vous découvrirez bientôt que vous rejoignez une large communauté de créateurs d'application Eclipse RCP – des personnes de domaines de compétences très variés. Parmi ces spécialistes, vous pourriez être surpris de découvrir des fournisseurs, des clients et des collaborateurs très précieux. Nous les premier.

 

Mon équipe participe à chaque EclipseCon (qui est le plus grand rassemblement annuel d'utilisateur et de développeur sous Eclipse) depuis 2005. Je suis systématiquement stupéfait par la diversité des applications construites à partir d'Eclipse RCP. J'ai vu des application TCP permettant de contrôler des réacteurs nucléaires, de planifier des circuits ferroviaires, de gérer des stocks, de modéliser des centres de données, de gérer des inventaires, de combattre le terrorisme, d'analyser des protéines, de monitorer des bateaux de pêche, de partager des fichiers et d'éditer des langages de programmation dont je n'avais même jamais entendu parler. Après deux conférences EclipseCon, nous avons même croisé une autre agence spatiale qui construit des application de contrôle de mission via Eclipse RCP (vous pouvez imaginer que nous avons beaucoup discuté ensemble). Mais ce qui est plus surprenant que la diversité des applications RCP, c'est tout ce qu'il y a de commun entre toutes ces applications. Par exemple, la société APC utilise le même framework graphique pour modéliser les serveurs de racks de leur centre de donnée que mon équipe utilise pour manipuler des images de Mars de notre rover. Mon équipe a construit un éditeur de commande de notre vaisseau spatiale avec les mêmes composants basiques utilisé dans la plupart des outils de programmation d'Eclipse. Ces éléments en communs nous permettent de combiner nos ressources, d'apprendre à partir des autres et finalement de délivrer de meilleurs produits à nos clients.

 

Certains de mes collègues pourraient penser qu'il est risqué de baser notre application sur des logiciels développés par de tels groupes éloignés les uns des autres. Il pourrait être tentant de penser qu'il est plus facile et plus sûr de le faire soit-même. Mais serait-il vraiment sécuritaire de demander à des programmateurs de la NASA de construire des moteurs de fusée ou de demander à des plombiers de couler les fondations d'un gratte-ciel ? Non seulement, il est impossible pour notre équipe de se spécialiser dans chacun des aspects du développement d'une application riche, mais essayer de le faire ne serait qu'une perte de temps qui pourrait compromettre le bon déroulement de notre projet. Par exemple, imaginons que vous aillez une équipe de 3 personnes qui a besoin de construire une application pendant l'année suivante, et qu'une des nouvelles fonctionnalités soit le besoin de réaliser une tâche de longue durée tout en informant l'utilisateur de sa progression. Evidemment, votre équipe pourrait la développer à partir de zéro, mais en demandant aux membres de l'équipe de la plateforme Eclipse, on apprend qu'ils estiment qu'ils ont passés presque 3 ans de travail à construire l'API Jobs, un framework flexible et robuste qui répond à ce besoin. Eclipse RCP peut vous permettre d'économiser votre budget sur des fonctionnalités qui ne sont pas votre spécialité.

 

Je suis un spécialiste dans le développement d'outils permettant de commander des robots et des vaisseaux spatiaux. Votre spécialité est peut-être de développer des outils pour n'importe quoi allant des soins de santé aux énergies propres. Les auteurs de ce livre, eux, sont des spécialistes dont l'objectif est de faciliter pour vous et moi, l'écriture de nos applications et nous permettre de nous focaliser sur nos propres spécialités. Si vous décidez de rejoindre la communauté travaillant sur Eclipse RCP, je suis impatient de savoir de quelle manière vous le ferrez à la prochaine EclipseCon. Vous pourrez même découvrir des façons de contribuer à votre spécialité par des améliorations d'Eclipse RCP.

 

Jeff Norris

Publié dans Eclipse

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article