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
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…
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
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.
Salut goms ,quels sont les meilleurs langage pour créer des jeux ? Par quel langage commencer pour avoir une base en programmation pour les jeux?
Cela est fortement dépendant. Certains crée des jeux avec le C++, C# mais je ne saurais te dire plus vu que je me base pas trop sur ça. Fais un peu de recherche sur google concernant le sujet
Merci
Salut goms, j’ai téléchargé un cours sur html/css à partir du lien que vous avez donné dans un de vos articles que j’ai bien compris après lecture du cours .maintenant il me faut complèter ses acquis avec du PHP,My SQL,Javascript .Votre aide sera d’une grande utilité pour un débutant comme moi .
Tout ce que je peux vous conseiller c’est de lire ce cours que moi j’ai appris grâce à cela…
Merci Goms pour tous tes astuces surtout pour la programmation…j’ai apprécié et je crois que je m’y mettrai.
Je te remercie beaucoup et serai heureux que tu puisses commencer la programmation suite à la lecture de ces articles…
hey maître goms
je viens de lire le 4 cours
mais il y a un point que vous n’avez pas abordé
pour créer un language de programmation( ex : java script, c++…)
il faut taper des programmes, et ces programmes doivent être écrit en binaire.
mais l’homme ne comprend pas le binaire, comment il a réussi à créer
1. un compilateur
2. un language de programmation
Salut Snipe,
Très bonne question et un point très important que t’as soulevé, j’ai déjà traité de ce sujet dans cet article, mais pour résumer l’article, je peux te dire que le compilateur a été programmé dans un langage assembleur… un langage de programmation comme PHP, JavaScript, Ruby, ont été programmé en C, et le langage C++ est basé sur le langage C qui est lui même programmé en Assembleur, et l’assembleur comme l’article le mentionne est l’équivalent du binaire un peu simplifié, autrement dit, en une syntaxe un peu compréhensible à l’homme.
Mais tu dois savoir que dans un langage quelconque, le plus important c’est pas le langage mais ce qui comprend le langage…