Le framework : un socle de développement structurant

Le travail du développeur a considérablement changé depuis l'avènement des infrastructures logicielles. L'élaboration du squelette d'une application est simplifiée grâce aux éléments prêts à l'emploi.

Un framework ou infrastructure de développement ressemble à une boîte à outils avec un mode d'emploi. Il est composé de deux parties. D'un côté une bibliothèque de classes. De l'autre une architecture logicielle, avec à la clé de grandes règles de construction à appliquer : une organisation en couches, l'utilisation du modèle MVC (Modèle vue contrôleur)... Bref, cet environnement n'est autre qu'une base de travail pour développer des applications.

 

La qualité d'un framework tient aux choix techniques qui ont présidé à son élaboration. Les frameworks sont plus ou moins stables, mis à jour régulièrement, bien documentés... Cela dépend du dynamisme de la communauté ou de la société supportant leur évolution. Dans le monde Open Source, une communauté conséquente est gage de pérennité.

 

Devant la grande quantité de frameworks existants, certains souhaiteraient que l'on impose une norme, évoquant même le W3C. Et, avec la montée en puissance de langages Open Source (comme Java, PHP, etc.), les frameworks se sont multipliés au fil des années. Mais cette tendance n'échappe pas non plus au monde propriétaire, chaque langage bénéficiant de la création d'infrastructures pour faciliter son utilisation.

 

Lors du choix d'un framework, plusieurs critères entrent en compte. En premier, chaque infrastructure logicielle correspond en général à un langage donné. Par exemple, Ruby on Rails est basé sur Ruby. Django utilise Python. Symphony et CakePHP reposent sur PHP. Certains langages disposent de dizaines de frameworks disponibles (c'est le cas de PHP ou Java).

 

La réactivité de la communauté est primordiale

Autres critères de choix : la documentation disponible et la réactivité de la communauté sont des éléments capitaux. Enfin, il existe des frameworks gratuits et d'autres payants. Notons par ailleurs qu'il est possible d'utiliser plusieurs frameworks en même temps, mais il y a un risque de collision.

 

L'infrastructure .Net a apporté le concept de multi-langage. L'architecture de Microsoft permet d'intégrer une vingtaine de langages différents dans une application (Perl, Python, Cobol, Fortran, C++, Visual Basic, C#, etc.). Ce système permet de bénéficier des avantages de chacun, mais a aussi de ses inconvénients.

 

Des environnements de développement sont bâtis autour de frameworks. Ils contiennent un éditeur de texte, un compilateur et un débuggeur. Ils facilitent l'assemblage des composants en permettant de saisir du code, de compiler, de débugger et d'exécuter des programmes dans un même environnement.

 

A ne pas confondre, le SDK renvoie à un ensemble d'outils et de bibliothèques permettant le développement d'applications pour un environnement particulier (Android de Google, iPhone d'Apple). Le SDK est spécifique à une plate-forme, alors que le framework est spécifique au(x) langage(s) qu'il cible.

 

En partant d'éléments tout prêts, la création d'une application consiste à assembler des briques de composant. L'utilisation des classes permet de réduire la taille du code et accélère le développement. L'aspect communautaire est très souvent à la base des frameworks. L'Open Source fait des émules même chez Microsoft, qui a annoncé la prochaine ouverture de son framework .Net.

 

Java / Framework