DÉVELOPPEMENT D’APPLICATIONS – Diverses tendances ont actuellement cours en matière de développement d’application. On constate une concentration accrue des technologies de base entre les mains de certains fournisseurs, alors que parallèlement, des concepts comme les services Web et le logiciel à code source libre ont le vent en poupe.
C’est ainsi que la grande majorité des projets de développement se déploient aujourd’hui sur les plateformes Java et .NET. Si Win32 est nettement en déclin, cela n’empêche pas Mac OS X de profiter d’un certain élan, comme le souligne un sondage récent de la revue InfoWorld, mené auprès de 300 développeurs.
Par ailleurs, l’essor de Linux s’accentue parmi les systèmes d’exploitation utilisés pour le développement. Avec Windows, il se taille la part du lion dans ce secteur, et est en voie de supplanter toutes les versions d’Unix et des systèmes fonctionnant sur ordinateur central. La popularité de Linux démontre par « a plus b » l’importance prise par le logiciel à code source libre dans l’univers de la programmation. « Aujourd’hui, indique Mustapha Es-salihe, conseiller, Équipe de développement et technologies Internet, au CRIM, le développeur travaille avec le reste du monde. »
En ce qui a trait aux langages, l’orienté objet – dont Java et C# sont des exemples – obtient haut la main la faveur du milieu, pendant que C++ et C accusent un net recul. HTML conserve la position de tête dans les projets à saveur Web, mais l’ascension de PHP au cours des dernières années doit être soulignée. Il s’agit d’un « langage accessible, ayant le soutien d’une communauté très active », rappelle Mustapha Es-salihe.
On assiste à une consolidation des fournisseurs dans le secteur des outils de développement également, où dominent Microsoft et IBM Rational. Oracle, BEA et les serveurs à code source libre tirent aussi leur épingle du jeu sur Java.
Pour simplifier leur tâche, par ailleurs, les développeurs ont de plus en plus recours aux cadres d’applications (framework), qui font appel aux meilleures pratiques connues afin de faciliter la conception des logiciels, à l’aide de l’itération notamment. « Les programmeurs veulent éviter de constamment réinventer la roue », dit à ce sujet Mustapha Es-salihe.
Autre concept avec lequel un nombre croissant de développeurs doit composer : les services Web, qui permettent une interaction dynamique entre applications, indépendamment de la plateforme ou du langage utilisé. Pour le programmeur, chaque service s’ajoutant ainsi sur des plateformes diverses devient un niveau supplémentaire, ce qui a pour conséquence de confirmer l’architecture multiniveau (n-tier) en tant que modèle de développement d’avenir.
Nouvelles méthodologies
Ces dernières années, de nouvelles méthodologies sont apparues visant à alléger le cycle de développement. La programmation Extreme et, plus récemment, le développement Agile cherchent ainsi à donner le change au processus RUP (Rational Unified Process), dont l’exhaustivité a pour effet de « ralentir le temps nécessaire à la programmation et d’en accroître les coûts », explique Mustapha Es-salihe. Selon lui, il est trop tôt pour savoir quel sera l’impact de l’approche Agile sur l’industrie, mais on devrait être fixé d’ici deux ans.
Même constat pour la modélisation, qui n’est plus l’apanage des projets gouvernementaux et universitaires, mais que l’on retrouve aussi dans la grande entreprise. Plusieurs commentateurs estiment que, dans un avenir rapproché, elle fera partie intégrante du processus de développement, transformant le programmeur en « modéliste » des affaires propres à chaque organisation.
Si ces concepts émergents permettent de rehausser le niveau de qualité des logiciels, ils font aussi en sorte de « complexifier le travail des programmeurs », commente Mustapha Es-salihe. Ce qui pourrait expliquer le recours plus fréquent à l’impartition et, dans la PME, aux services de firmes spécialisées.