C’est un mot que nous rencontrons souvent en informatique, mais de quoi s'agit-il exactement ? Sa simple traduction en cadre de travail n’est pas très significative, mais nous donne l’idée de son utilisation. En effet, un framework nous donne un cadre pour nos projets informatiques, permettant de simplifier leur conception. Nous allons explorer ce concept dans cet article.
Nous venons de dire « projets informatiques ». Et qui dit informatique, dit « langage de programmation ». Quelles sont les différences ?
Un framework utilise un langage de programmation
Prenons l’exemple du célèbre langage de programmation Python. Grâce à cet outil, nous pouvons faire des jeux, des calculs mathématiques, recueillir des données depuis le web ou web-scraping, ou encore faire de l’intelligence artificielle. Les possibilités sont sans limites. Étant fan de data science, je décide de réaliser mon propre réseau de neurones. Toutefois, nous devons implémenter l’initialisation des poids de neurones, la fonction d’activation et la descente de gradient. Nous pouvons le faire, mais c’est très fastidieux. Un véritable calvaire pour tout débutant en data science, dois-je abandonner mon projet ?
Heureusement que les frameworks existent et m’évitent de construire le réseau de neurones en entier. Grâce à cet outil, j’ai un réseau de neurones opérationnel en un rien de temps, je dois seulement paramétrer le modèle à mes données. Voilà le principal intérêt d’un framework, donner une structure de base à notre application qui nous évite de construire de rien nos applications (c’est ce que nous appelons build from scratch). Par ailleurs, les frameworks ne sont pas réservés uniquement pour la data science, ils se déclinent aussi pour le développement web, mais aussi le développement mobile.
Quelques exemples de framework
Voici quelques exemples de framework très utilisés en programmation web :
- En Python, les 2 frameworks les plus utilisés sont Django et Flask. Nous retrouvons le premier pour le réseau social Instagram et le second pour Linkedin et Pinterest.
- Pour Javascript, un des langages les plus courants en développement web, nous avons Angular, qui se trouve derrière le site Netflix.
- Enfin, dans le langage en vogue Ruby, il y a Ruby on Rails, qui est employé pour le site de location AirBnb mais aussi pour le service de live-streaming Twitch ou encore pour la célèbre plateforme d’hébergement de code : Github.
Voici quelques exemples de frameworks très populaires dans l domaine de la data science :
- TensorFlow est un framework en Python réalisé par l’équipe de Google, très utilisé dans l’industrie, car il s’agit d’un des premiers à être entré dans le marché.
- PyTorch est un framework qui devient de plus en plus populaire, car il est plus facile à utiliser que TensorFlow, nous l’utilisons en particulier dans le monde de la recherche.
Les frameworks sont conçus par des experts, ce qui permet d’assurer la fiabilité du code et même les grands groupes les utilisent, donc pourquoi s’en priver ? De plus, l’utilisation des frameworks, vous garantit de trouver de l’aide sur le fonctionnement des fonctions. Vous trouverez plus facilement des questions sur l’utilisation d’un framework, avec la documentation en ligne, mais aussi avec le super forum qu’est Stackoverflow, que sur l’implémentation d’applications.
Après tout, pourquoi ne pas apprendre directement un framework au lieu d’un langage ? Comme le framework nous fait gagner un temps considérable, il serait préférable de n’apprendre que le framework.
Cependant, n’oublions pas qu’un framework utilise un langage de programmation comme fondation, donc si nous avons une erreur d’utilisation liée au langage sans maîtriser ce dernier, cela peut être embêtant.
D’où l’importance, avant d’utiliser un framework, de savoir manipuler le langage de programmation utilisé.
Enfin, personne ne vous empêche de faire votre propre implémentation de réseau de neurones from scratch. Cela sera même très valorisé (je vous conseille de le mettre sur votre CV) mais il vous faudra allouer beaucoup plus de temps et cela dépend de votre projet.
L’explication d’un framework ressemble beaucoup à un autre mot que nous retrouvons souvent dans le champ lexical du développement logiciel, celui de bibliothèque (library en anglais).
Framework vs library, quel mot choisir ?
Il y a bien une différence entre les deux termes que nous allons expliciter. Voyons cela avec Python. Il est fréquent d’observer le temps d’exécution d’une fonction pour déterminer son efficacité. Pour cela, nous utilisons la fonction timeit de la bibliothèque timeit. Dans ce cas, nous mesurons le temps d’exécution d’une fonction que l’on choisit.
Maintenant, supposons que dans notre framework préféré de data science, nous pouvons mesurer le temps d’apprentissage de nos réseaux de neurones. Toutefois, dans nos bibliothèques importées, il n’y a pas de bibliothèque timeit et pourtant, lorsqu’on utilise les réseaux de neurones du framework, nous disposons du temps d’apprentissage sans l’avoir demandé. Nous nommons cela Inversion de Contrôle (IoC). Ce n’est pas l’utilisateur qui de son code appelle la fonction timeit, mais c’est le framework qui utilise la fonction timeit, indépendamment du programme.
Finalement, nous pouvons dire qu’un framework est beaucoup plus sophistiqué qu’une bibliothèque, puisque dans son fonctionnement, elle utilise des bibliothèques sans que l’utilisateur le demande explicitement.
Conclusion
Ainsi, nous retenons qu’un framework simplifie l’utilisation des langages de programmation. Cet outil nous évite de réécrire des fonctionnalités non importantes de nos applications et d’exporter plus facilement les programmes pour différentes utilisations. De plus, comme les frameworks sont créés par des experts, ils sont reconnus dans le monde du travail pour leur fiabilité, mais aussi utilisés par un grand nombre de personnes. Ce vaste ensemble d’utilisateurs nous assure de trouver plus facilement de l’aide sur nos modèles que lorsque nous les faisons nous-mêmes.
Si vous souhaitez apprendre à utiliser les frameworks Flask ou TensorFlow, ou même le langage Python, n’hésitez pas à consulter nos formations.