Traduit par « cadre de travail », le terme de « framework » est utilisé dans le domaine de la programmation informatique et fait partie du langage courant des développeurs. Il désigne une architecture (ou « socle d’applications », « boîte à outils », « ensemble de composants logiciels », « environnement de développement »…) réutilisable par les développeurs pour l’élaboration de nouveaux projets web (sites internet, logiciels, applications mobiles..). Les frameworks aident les développeurs dans leur travail en leur fournissant une structure réutilisable.
Framework : un concept, différentes réalités
Utilisé en développement, le framework recouvre deux réalités. Il désigne à la fois :
un ensemble de composants existants pouvant être utilisés par les développeurs pour structurer une application et guider la manière dont celle-ci doit être développée (gestion de bases de données, de bibliothèques…) ;
un ensemble de recommandations relatives à la conception et au développement de sites et d’applications.
À noter : un framework est généralement spécifique à un langage de programmation (Python, PHP, JavaScript…). On trouve de très nombreux frameworks et pour tous types de projets. Ils ne répondent pas aux mêmes problématiques. Dans certains types de situations, plusieurs d’entre eux peuvent être utilisés de manière conjointe.
Utilisation des frameworks : aux origines du débat
Le recours à un ou plusieurs frameworks permettrait aux développeurs d’être plus efficaces dans le codage d’applications et donc d’améliorer leur productivité. Leur utilisation fait pourtant débat au sein de la communauté des développeurs. Certains ne pourraient pas s’en passer, quand d’autres veulent absolument tout coder eux-mêmes. Quelques explications s’imposent pour comprendre les enjeux de ce débat.
Quelques exemples de frameworks
On distingue différents types de frameworks :
côté développement front end (conception de l’interface graphique côté utilisateur) : ReactJS, jQuery, Spring, Angular JS (framework JavaScript open source)…
côté développement back end (mise en place du serveur d’hébergement, de l’application web, de la base de données) : Django, Meteor, Ruby on Rails, Phoenix…
enfin, il est également possible de développer des frameworks sur mesure.
Utiliser des frameworks : pour ou contre ?
Le recours à des frameworks suscite un véritable débat, au point que différentes écoles s’affrontent sur le sujet. Est-il préférable d’avoir recours à un framework connu d’une communauté mondiale ou bien faut-il plutôt mettre au point un framework « maison » ?
Contrairement à une idée assez répandue, les frameworks ne sont pas systématiquement utilisés par les codeurs débutants, qui préfèrent d’abord acquérir les bases de la programmation par eux-mêmes. Le recours à des frameworks et la volonté de gagner en productivité viennent dans un second temps, après la phase d’auto-apprentissage.
Pesons les différents arguments concernant l’utilisation ou non de ces frameworks.
Avantages des frameworks
Les frameworks présentent le gros intérêt de proposer des solutions et des services « clés en main » (par exemple pour la gestion de bases de données). Ils offrent une certaine discipline et permettent de mieux structurer le code. Autant d’atouts précieux pour le travail en équipe et la participation de plusieurs développeurs à un même projet. En contribuant à standardiser la programmation, l’utilisation des frameworks permet de faciliter la transition entre différentes équipes.
Gain en temps de développement et en efficacité, optimisation du travail en équipe… Quelles sont les autres qualités attribuées aux frameworks ? Côté sécurité, leur utilisation présente un intérêt, puisque certaines failles sont pré-protégées au sein du framework. Les développeurs peuvent également y apporter des correctifs grâce aux tests réalisés par la communauté.
Quelques limites
Pour certains développeurs, le recours aux frameworks alourdit le code par raport à un developpement sur mesure.
Le débat concernant l’utilisation des frameworks est loin d’être clos. Chaque développeur trouvera dans l’usage des frameworks un certain nombre d’avantages et inconvénients, en fonction de son expérience, de l’ampleur des projets à mener, et surtout de sa manière de travailler.