Quand apprendre un framework ?

Les frameworks nous font gagner un temps énorme !

Mais quand on débute on différencie mal le framework du langage de programmation …

On me pose souvent la question : 

Dois je apprendre le langage Angular ou le React ?

Dois je apprendre le langage Spring ?

Je vois donc clairement une confusion entre langages et frameworks.

Les langages de programmation.

Comme le Java, Javascript, C++, Python, PHP, Ruby etc …

Ont une grammaire, des symboles, des règles syntaxiques. 

Comme les langues parlées. (Français Anglais Espagnol)

Par exemple pour créer une variable name qui contient mike 

Il y aura un syntaxe par langage : 

$name = ‘mike’  // en PHP
var name = ‘mike’ // en JS

String name = ‘mike’ // en Java

C’est comme dire salut:

Hello
holà
Salut

Les frameworks sont en règle général basés sur un langage.

Quelques exemples :

Symfony / Laravel pour le langage PHP.

Spring / JEE / JavaFX pour le langage Java.

React / Angular / Vue pour le langage Javascript.

Ruby on Rails pour le langage Ruby

Mais c’est quoi un framework ?

La traduction simple veut dire un cadre

C’est exactement ça !

Un framework fourni un cadre pour le développement d’une application, d’un logiciel.

Prenons un exemple simple

Tu veux faire un logiciel de bureau en Java

Première chose à faire.

Essayer de coder ton premier écran.

Comment ?  En partant de zéro ? tu vas coder une fenêtre ?

Tu va coder un bouton fermeture de fenêtre ?

Tu vas coder le mécanisme de redimensionnement de la fenêtre ?

Tu va gérer les différences entre MacOS, Windows et Linux ?

Selon quels patterns ? selon quelles règles ?  

Tu vas y passer des semaines …

Alors que si tu utilises un framework comme JavaFX.

En 2 lignes de code ta fenêtre sera prête.

Avec toutes les fonctionnalités de bases pour gérer les fenêtres de bureaux.

Compatible sur tous les OS directement.  

Pourquoi coder les fonctionnalités de bases d’une fenêtre ?

Des milliers de projets démarrent chaque année.

Pourquoi des milliers de développeurs devraient recoder ça à chaque fois ?

Aucun intérêt … 

L’idée est de te concentrer sur l’essentiel : Les fonctionnalités de ton logiciel

L’idée d’un framework c’est de t’offrir un cadre générique, souple.

En Java j’adore le framework Spring.

Il te fournis un cadre pour coder en MVC (Model Vue Controller)

Il gère l’injection de dépendances et l’inversion de control (IOC)

L’accès aux bases de données (ORM)

La sécurité (Spring security)

Et plein d’autres choses utiles pour les développeurs Java.

Quand faut-il apprendre un framework ? 

Souvent on me dit : 

J’attend de maîtriser PHP pour attaquer le framework Symfony.

Ou bien

J’attend de maîtriser Javascript pour attaquer Angular / React.

On ne maîtrise jamais à 100% un langage.

C’est dure de s’auto évaluer pour savoir quand on est prêt.

Je recommande de basculer le plus tôt possible 

Cela ne sert à rien d’attendre des mois pour démarrer avec un framework.

Dès que tu as les bases du langage : choisi ton framework et fonce !

Le framework utilise le même langage que celui que tu apprends

Autant progresser avec les 2 en même temps.

Cette semaine on va parler frameworks

À demain,
Mike

Un commentaire