L’univers de langage de programmation

Il existe plusieurs langages de programmations (voici la liste), bien que cette liste pourrait paraître gigantesque, il y a quelque chose de commune dans tous ces langages de programmation, c’est de simplifier la vie de ceux qui l’utilisent (les développeurs). Chaque langage de programmation répond à un ou plusieurs besoins spécifiques et plusieurs langages peuvent répondre à un besoin spécifique.

On peut se perdre facilement dans ce gigantesque univers de langage de programmation, raison pour laquelle je vous propose de catégoriser les langages de programmations pour bien se situer et faire son choix.

On peut catégoriser les langages de programmations dans plusieurs catégories, mais dans cet article, je vous propose de les en catégoriser dans 3 catégories, qui à mon avis, vous donnera une vision globale des langages de programmations.

On catégorise par :

  • Le niveau du langage
  • Le paradigme
  • L’environnement du langage

Niveau du langage

On parle du niveau du langage, son écart ou son niveau d’exécution vis-à-vis d’un autre langage ou du binaire ou encore de la partie matérielle. On parle de « Haut niveau » lorsque le langage passe par plusieurs étapes avant d’être exécuté par le processeur ou par le langage de référence  et « bas niveau » c’est le contraire.

Exemple :

  • Le langage binaire est bas niveau
  • Le langage assembleur est haut niveau par rapport au langage binaire mais il est bas niveau par rapport au langage C
  • Le langage C est bas niveau par rapport au langage PHP

Un langage n’a pas de niveau absolu, car il peut être haut niveau ou bas niveau par rapport à sa référence tel que le langage C est considéré comme étant un langage bas-niveau mais en comparant le C par rapport au langage assembleur, le C est haut niveau.

Paradigme du langage

Le paradigme pour faire simple en programmation est la manière de raisonner, de penser ou de voir les choses lors de la résolution d’un problème donné.

Par exemple chacun peut voir n’importe quelle image selon sa manière, un designer verra selon sa manière et un géomètre verra aussi la même image selon sa manière. Cette manière de voir les choses, c’est ce qu’on appelle « paradigme ».

Alors, en programmation, Il y a plusieurs paradigmes, c’est-à-dire plusieurs manières de voir les choses. Chaque langage de programmation a son ou ses paradigmes qu’il supporte. Le Java par exemple supporte le paradigme « programmation orienté objet », « programmation impérative », « programmation fonctionnelle », etc…

Il y a plus de 30 paradigmes, mais je ne vous parle que de 3 d’eux qu’à mon avis, je trouve globaux et important pour nous.

Programmation impérative

La programmation impérative pour faire simple est un paradigme de programmation qui fait à ce qu’un programmeur voie de manière séquentielle c’est-à-dire l’exécution des instructions données par la machine sont séquentielles, autrement dit, s’exécutent l’une à la suite d l’autre.

Exemple

  • Entre dans la chambre
  • Montes dans le lit
  • Dors

Avec la suite de ces instructions ci-dessus, on ne peut pas exécuter la première instruction à la place de la troisième car ça donnerait carrément une autre chose. Devinez si on transitait les instructions

  • Dors
  • Monte dans le lit
  • Entre dans la chambre

Ça donne un autre sens, et là, tu es dans un rêve quand tu montes dans le lit et dans la subconscience de ton TOI dans ce rêve, tu entres dans la chambre.

Plusieurs langages de programmations supportent ce paradigme, c’est-à-dire, plusieurs langages de programmations permettent de programmer dans cette approche tel que PHP, C, C++ et voir même le binaire.

Programmation Orienté Objet (POO)

L’approche Orienté Objet est un paradigme de programmation qui fait à ce qu’un développeur voit tout en Objet. C’est une conception très profonde que je ne parle de ça dans cette série car ce n’est tout simplement pas l’objectif de celle-ci. Mais sachez tout court qu’un Objet peut représenter n’importe quoi en tous cas (une personne, une maison, un animal, un éléphant, un ordinateur, une chaise, …etc.).

[stextbox id= »info »] En approche Orienté Objet, ce sont les objets qu’on crée. Mais pour l’exécution de ses objets, d’autres paradigmes interviennent tel que la programmation impérative, programmation fonctionnelle [/stextbox]

Ex :

  • Objet Homme entre dans Objet chambre
  • Objet Homme monte dans Objet lit
  • Objet Homme dort

La POO est supporté par JAVA, PHP, C++, RUBY, PYTHON …etc. mais il n’est pas supporté par le langage C par exemple.

La programmation descriptive

Les langages descriptifs tel que Html, XML sont dans ce paradigme de programmation qui répond à la question « Quoi » et non « Comment »

Donc, je crois que vous avez assez d’informations sur le paradigme, je vous rappelle qu’il en existe plus de 30 que je vous laisse bien découvrir au cas où vous en aurez besoin.

Et on peut catégoriser un langage de programmation sur base de son environnement

Environnement du langage

L’environnement du langage c’est la plateforme sur laquelle un programme écrit dans un langage de programmation quelconque peut être exécuté. Cela peut être un Système d’exploitation (Windows, Android), une application (Web), l’architecture du processeur (x86, PowerPC), la machine (Ordinateur, Smartphone, Système embarqué tel que Play station) etc…

Exemple :

  • Le programme écrit en Java peut être exécuté sur le Web (application), sur Android(SE), sur Mobile (machine) …etc.

On peut aussi sous-catégoriser les langages de programmations par rapport à son environnement. De manière générale et c’est ce qui est plus rependu d’ailleurs, on a

  • Les langages Desktop
  • Les langages Mobiles (Technologie mobile)
  • Les langages Web (Technologies web)

Les langages Desktop

Les langages desktop sont les langages qui peuvent écrire des programmes pouvant s’exécuter dans un Ordinateur, techniquement, on parle des programmes compatibles à un ordinateur. Voyez qu’on peut sous-catégoriser aussi les langages desktop en disant par exemple « langages desktop Windows, linux, MacInTosh » mais au final c’est inutile car la plus part de langage de programmation sont scallables. Referez-vous à ce schéma pour mieux comprendre

Categories-desktop-language

Les langages mobiles

Quant aux langages mobiles, cela assemble tous les langages pouvant s’exécuter avec les téléphones mobiles ou les smartphones ou encore les systèmes d’exploitations mobile tel que Android, IOS, Windows Phone (WP).

De même que pour Desktop, on peut le sous-catégoriser par exemple en langage pour Android, qui lui aussi peut être sous-catégorisé en langage natif et langage hybride et cela est de même pour IOS, WP, bref, une véritable arborescence…

langage de programmation mobile

Les langages Web

Quant aux langages web, cela regroupe tous les langages susceptibles d’être utilisés pour le développement web, c’est-à-dire, les langages utilisés pour la création des sites web.

De même pour les autres, Les langages web aussi sous-catégorisés aux langages frotend et langages backend.

Voici donc le schéma pour la technologie web

Categorie-web-language

Et voilà on vient de parcourir ensemble l’univers de langages de programmation. C’est vrai que beaucoup de notions n’ont pas été citées mais grosso-modo vous avez une vision général sur la programmation et ses dérivées.

Qui à vous maintenant de décider quoi faire dans la programmation parce que déjà, vous venez de voir que c’est tellement vaste qu’on peut être meilleur en tout, c’est-à-dire être meilleur dans toute sorte de programmation.

Généralement, le choix se fait sur base de l’environnement du langage.

Par exemple :

  • Etre développeur ou programmeur web
  • Etre développeur mobile
  • Etre programmeur des logiciels de bureau (desktop)

Une fois que le choix est fait, vous n’avez qu’à vous orientez sur des formations précises… et moi personnellement, c’est la programmation web qui m’a passionnée et c’est ce que je fais bien que j’ai déjà touché à la programmation desktop, je suis mieux avec la programmation web précisément dans le backend.

Suite à cela, dans la prochaine épisode je veux vous parler de la programmation web en particulier, et évidemment comment s’y mettre, l’apprendre, des ressources qu’il faut lire pour ne pas se compliquer la vie.

 

Catégorisé: