Article original : What is a Software Framework?

De nos jours, les entreprises, grandes et petites, utilisent un type de framework logiciel pour construire leurs sites web.

Et si vous souhaitez vous lancer dans la programmation, il est important d'apprendre et de comprendre certains des frameworks populaires – peu importe le domaine que vous choisissez dans l'industrie. Mais pourquoi ?

Les frameworks vous aident à créer facilement de nouvelles applications et idées sans avoir à écrire autant de code vous-même.

Ils aident également à éliminer beaucoup de maux de tête, afin que vous puissiez consacrer votre temps à ce qui compte vraiment.

En gros, ils peuvent être un vrai gain de temps.

Dans cet article, nous allons explorer :

  • Qu'est-ce qu'un framework ?
  • Qu'est-ce qu'un framework logiciel ?
  • Exemples de frameworks logiciels
  • La différence entre une bibliothèque et un framework

Alors, commençons !

Qu'est-ce qu'un Framework ?

Image _Photo par [Pexels](https://www.pexels.com/@photolisious?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels" rel="noopener">Ludvig Hedenborg from <a href="https://www.pexels.com/photo/brown-and-black-axe-3433348/?utm_content=attributionCopyText&utm_medium=referral&utmsource=pexels" rel="noopener)

Imaginez, si vous le voulez bien, un homme nommé John.

John doit abattre un arbre pour allumer sa cheminée et réchauffer sa famille.

Il va dans les bois, un certain temps passe, et il finit par abattre un arbre.

Ensuite, il doit couper l'arbre en petits morceaux qui peuvent entrer dans sa cheminée.

Image _Photo par [Pexels](https://www.pexels.com/@ron-lach?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels" rel="noopener">Ron Lach from <a href="https://www.pexels.com/photo/axe-stuck-in-trunk-10397927/?utm_content=attributionCopyText&utm_medium=referral&utmsource=pexels" rel="noopener)

Finalement, John a réussi à couper tout le bois nécessaire à la bonne taille pour réchauffer sa famille.

Mais, que se passerait-il si John avait une tronçonneuse à la place ?

Image _Photo par [Pexels](https://www.pexels.com/@karolina-grabowska?utm_content=attributionCopyText&utm_medium=referral&utm_source=pexels" rel="noopener">Karolina Grabowska from <a href="https://www.pexels.com/photo/crop-lumberman-sawing-log-with-electric-power-saw-4205983/?utm_content=attributionCopyText&utm_medium=referral&utmsource=pexels" rel="noopener)

Si John avait une tronçonneuse, le travail serait fait beaucoup plus rapidement et il perdrait moins de temps et d'énergie à couper le bois pour la cheminée.

Surtout s'il devait abattre plusieurs arbres.

Mais John aime utiliser sa hache parce qu'il dit qu'elle lui permet un meilleur contrôle sur chaque morceau de bois qu'il coupe.

Et avec une hache, il est capable de couper de petites branches d'arbre et c'est mieux pour hacher le bois.

Ainsi, avec une hache, il peut s'occuper des petites choses plus facilement. Nous n'avons pas besoin d'un outil comme une tronçonneuse pour le faire. Mais lorsque nous devons abattre plusieurs grands arbres, il est judicieux d'utiliser une tronçonneuse, car cela économise du temps et des efforts.

Il en va de même pour la programmation. Lorsque nous programmons et que nous devons simplement faire des choses simples, il est préférable d'écrire notre propre code à partir de zéro et/ou d'utiliser des bibliothèques pour nous aider.

Mais lorsque nous devons nous attaquer à de nombreux grands projets, il est préférable d'utiliser un framework, car le projet est grand et les frameworks peuvent nous faire gagner du temps.

Selon l'analogie :

  • Couper l'arbre avec une hache = programmer à partir de zéro
  • Couper les arbres avec une tronçonneuse = Programmer avec un framework

Une tronçonneuse permet aux gens de couper les arbres plus facilement.

Un framework permet aux gens de développer des programmes plus facilement.

Qu'est-ce qu'un Framework Logiciel ?

Tout comme la tronçonneuse est un outil pour travailler plus vite et plus efficacement, un framework logiciel est également un "outil" qui aide un programmeur à travailler plus vite et à accomplir plus en moins de temps.

Tout comme il existe de nombreux types de tronçonneuses, il existe également de nombreux types de frameworks logiciels.

Exemples de frameworks logiciels

Maintenant, je vais partager comment et où vous pouvez utiliser différents frameworks dans différents domaines de la programmation.

Frameworks de développement web

Les frameworks de développement web facilitent l'interaction avec la base de données du site web.

Les frameworks automatisent les fonctions et les processus fastidieux utilisés pour enregistrer et récupérer les données saisies par l'utilisateur.

Ces frameworks peuvent également faciliter l'organisation et l'arrangement des éléments lorsque vous concevez le front-end du site.

Vue est un exemple de framework de développement web front-end.

Front-end signifie qu'il s'agit uniquement de la partie que l'utilisateur voit – en d'autres termes, la couche de présentation ou la couche 6 du modèle OSI.

En tant que framework de développement web, Vue :

Il s'agit de l'un des frameworks les plus utilisés dans l'industrie du développement web, aux côtés de React et Angular.

Les organisations suivantes utilisent Vue :

Je recommande Vue car je pense qu'il est plus facile à apprendre par rapport à d'autres frameworks de développement web comme React et Angular. Vue gagne également en popularité.

Normalement, les développeurs choisissent le framework qu'ils vont utiliser en fonction de l'expérience de leur équipe, du type de projet sur lequel ils travaillent ou de la complexité de leurs projets.

Cela dépend vraiment de vos circonstances.

Vous pouvez consulter le site officiel de Vue pour plus d'informations.

Frameworks de machine learning

Les frameworks de machine learning aident les programmeurs en facilitant l'implémentation d'algorithmes complexes de ML dans leurs programmes.

Vous n'avez pas à créer ces algorithmes complexes vous-même. Quelqu'un l'a déjà fait pour vous.

Cela facilite votre vie car vous n'avez qu'à obtenir votre ensemble de données, optimiser les données pour qu'elles soient utilisées dans le modèle de machine learning, sauvegarder le modèle et exécuter votre analyse.

L'un des frameworks de machine learning les plus populaires au monde est PyTorch.

PyTorch est un framework de machine learning basé sur la bibliothèque torch, développé par le laboratoire de recherche en IA de Facebook.

PyTorch possède :

  • Prise en charge de l'échange de réseaux de neurones ouverts
  • Front-End hybride
  • Prise en charge des graphes de calcul dynamiques
  • Parallélisme des données

PyTorch a été utilisé dans certains projets intéressants, comme :

De nombreux projets GitHub utilisent ce framework, des applications de vision par ordinateur au traitement du langage naturel.

Je recommande PyTorch car il est facile à apprendre par rapport à d'autres frameworks de machine learning, il est écrit en Python, il a une grande communauté autour de lui, et bien plus encore !

Vous pouvez également consulter TensorFlow et sci-kit-learn, car ils sont également très populaires.

Gardez simplement à l'esprit que TensorFlow et sci-kit-learn sont tous deux des bibliothèques, et non des frameworks. Nous discuterons de la différence plus en détail ci-dessous.

En général, les entreprises utilisent TensorFlow, tandis que les chercheurs en machine learning utilisent PyTorch.

Cela est principalement dû à trois raisons :

  • L'API de Python n'a pas beaucoup changé au fil des ans par rapport à TensorFlow, donc le code de quelques mois en arrière est presque le même dans PyTorch. Dans TensorFlow, il peut être différent ou même ne pas fonctionner du tout.
  • L'API de TensorFlow a changé, mais la documentation n'a pas beaucoup changé, ce qui rend difficile pour les chercheurs de trouver de l'aide en ligne.
  • La plupart des recherches effectuées par les grandes entreprises sont en PyTorch.

Ainsi, si vous lisez des recherches à des stades avancés, la plupart du code que vous verrez sera en PyTorch.

Il existe de nombreuses autres raisons à cela, mais ce ne sont que quelques exemples.

Voici le site web pour PyTorch :

Frameworks de développement mobile

Les frameworks de développement mobile aident beaucoup les programmeurs en automatisant de nombreuses tâches qui, autrement, rendraient la maintenance des projets fastidieuse.

Par exemple, au lieu d'utiliser 50 lignes de code pour créer un bouton ou pour mieux naviguer dans l'espace d'un écran, les frameworks vous permettent de déposer du code de bouton prêt à être appliqué à votre application.

Avec un framework, une grande partie de ce travail est déjà faite pour vous.

React Native est un framework de développement mobile basé sur la bibliothèque React.

Ce framework est dérivé de la version web de React.

Ce framework mobile était l'un des plus populaires au monde de 2019 à 2021.

Ses principales caractéristiques sont :

  • Développement multiplateforme transparent
  • Rafraîchissement rapide
  • Réutilisabilité du code
  • UI/UX améliorée
  • Rechargement à chaud

Tout comme PyTorch, React Native a également été utilisé pour développer de nombreux projets :

Je recommande React Native car il est basé sur React.

Et si vous connaissez bien JavaScript et React, vous pouvez facilement développer des applications multiplateformes.

Il existe également Flutter, Kivy, Cordova, et bien d'autres frameworks de développement mobile.

Comparé à React Native, Flutter utilise le langage de programmation Dart, Kivy utilise Python, et Cordova utilise HTML, CSS et JavaScript.

Avec tous ces frameworks, le meilleur choix dépend des connaissances que vous avez déjà et des contraintes imposées par votre entreprise ou votre équipe.

Par exemple, si vous savez déjà utiliser Python et souhaitez développer un petit projet personnel, peut-être que le meilleur choix est Kivy.

Si vous rejoignez une entreprise et travaillez sur le front-end avec React, le meilleur choix est probablement React Native.

Étant donné qu'il existe de nombreux choix, cela dépend vraiment de vos exigences et projets.

Voici le site web pour React Native :

Ce ne sont que trois types de frameworks que vous pouvez explorer. Gardez également à l'esprit qu'il existe de nombreux frameworks. Je vous ai simplement montré quelques-uns ici.

Quelle est la différence entre une bibliothèque et un framework ?

Si vous êtes nouveau dans la programmation, vous ne connaissez peut-être pas les différences entre une bibliothèque et un framework. Mais ils ne sont pas la même chose.

Une bibliothèque est un code provenant d'une collection de fichiers que quelqu'un a écrits pré-faits pour votre projet.

Comme utiliser une pelle. Vous pouvez l'utiliser pour creuser ce que vous voulez.

Image Photo par Anna Tarazevich : https://www.pexels.com/photo/a-shovel-on-brown-dirt-ground-7299923/

Un framework est comme utiliser une pelleteuse. Bien que vous puissiez creuser plus de terre avec une pelleteuse, vous ne l'utilisez que pour des projets de construction spécifiques (grands).

Image Photo par Ilya : https://www.pexels.com/photo/construction-vehicles-at-work-5328418/

Avec une bibliothèque, vous avez le contrôle du code. Vous utilisez la bibliothèque pour ajouter de nouvelles fonctionnalités pour aider votre projet.

Avec un framework, vous êtes limité par celui-ci. Vous ne pouvez travailler que dans l'"espace" que le framework vous donne. Il y a aussi des raisons techniques à cela, que vous pouvez lire dans cet article.

Dois-je utiliser un framework ou une bibliothèque pour mon projet ?

Cela dépend de la complexité de votre projet, de qui ou quelles équipes vont le maintenir, etc.

Par analogie, imaginez que l'un des passe-temps de John est la sculpture sur bois.

Pour cela, il doit utiliser un ensemble simple d'outils pour couper le bois. Il ne peut pas utiliser sa hache.

Bien qu'elle puisse aider dans certaines phases de son projet, elle peut aussi, par accident, détruire le projet. Elle ne peut pas travailler avec suffisamment de précision.

Donc, dans ce cas, la meilleure chose à faire est de tout faire à partir de zéro. Il en va de même pour la programmation.

Si vous voulez faire un projet simple, mais avez besoin d'utiliser une fonction que vous ne savez pas comment créer, vous devriez utiliser des bibliothèques.

Si vous voulez travailler sur un projet complexe où il y a beaucoup de choses que vous ne comprenez pas actuellement, un framework pourrait vous aider à avancer.

Gardez également à l'esprit que si vous travaillez dans une grande entreprise, vous pourriez écrire le code sans utiliser de frameworks du tout. De cette façon, il y a plus d'espace pour les programmeurs et les ingénieurs pour développer des projets sans aucune limitation.

Dans de nombreux cas, les projets de programmation simples sont meilleurs avec moins de dépendances de bibliothèques.

Et en général, je crois que plus vous codez vos projets vous-même, meilleur est le projet. Au moins dans la plupart des cas. :)

Conclusion

Super ! Dans cet article, vous avez appris :

  • Qu'est-ce qu'un framework logiciel
  • 3 différents frameworks logiciels et comment en apprendre plus sur eux
  • Les différences entre un framework logiciel et une bibliothèque logicielle