Aller au menu - Aller au contenu

Icône Qu'est-ce que le C++ ?

Mise à jour : 27/05/2011
Difficulté : Facile Facile Durée d'étude : 30 minutes Creative Commons BY-NC-SA
75 639 visites depuis 7 jours, dont 1 696 sur ce chapitre classé 5/786
L'informatique vous passionne et vous aimeriez apprendre à programmer ? Et pourquoi pas après tout ! La programmation peut sembler difficile au premier abord, mais c'est un univers beaucoup plus accessible qu'il n'y paraît !

Vous vous demandez sûrement par où commencer, si le C++ est fait pour vous, s'il n'est pas préférable de démarrer avec un autre langage... Vous vous demandez si vous allez pouvoir faire tout ce que vous voulez, quelles sont les forces et les faiblesses du C++...

Dans ce chapitre, je vais tenter de répondre à toutes ces questions. :)

N'oubliez pas : c'est un cours pour débutants. Aucune connaissance préalable n'est requise. Même si vous n'avez jamais programmé de votre vie, tout ce que vous avez besoin de faire c'est de lire ce cours progressivement, sans brûler les étapes et en pratiquant régulièrement en même temps que moi !
Sommaire du chapitre :
Icône du chapitre
Sommaire Chapitre suivant

Les programmes

Les programmes sont à la base de l'informatique. Ce sont eux qui vous permettent d'exécuter des actions sur votre ordinateur.

Prenons par exemple cette capture d'écran de mon ordinateur :

Des programmes


On y distingue 3 fenêtres correspondant à 3 programmes différents. Du premier plan à l'arrière-plan :
  • Le navigateur web Google Chrome, qui permet de consulter des sites web.
  • L'explorateur de fichiers, qui permet de gérer les fichiers sur son ordinateur.
  • Le traitement de texte Microsoft Word, qui permet de rédiger lettres et documents.

Comme vous le voyez, chacun de ces programmes est conçu dans un but précis. On pourrait aussi citer les jeux, par exemple, qui sont prévus pour s'amuser : Starcraft II, World of Warcraft, Worms, Team Fortress 2, etc. Chacun d'eux correspond à un programme différent.

Tous les programmes ne sont pas forcément visibles. C'est le cas de certains programmes qui surveillent les mises à jour disponibles pour votre ordinateur, ou, dans une moindre mesure, de votre antivirus. Ils tournent tous en "tâche de fond", ils n'affichent pas toujours une fenêtre mais ça ne les empêche pas d'être actifs et de travailler !


Starcraft 2
Les jeux vidéo (ici Starcraft II) sont le plus souvent développés en C++


Moi aussi je veux créer des programmes ! Comment dois-je m'y prendre ?


Tout d'abord, commencez par mesurer vos ambitions. Un jeu tel que Starcraft II nécessite des dizaines de développeurs à plein temps pendant plusieurs années. Ne vous mettez donc pas en tête des objectifs trop difficiles à atteindre. ;)

En revanche, si vous suivez ce cours, vous aurez de solides bases pour développer des programmes. Nous réaliserons même notre propre navigateur web (simplifié) comme Mozilla Firefox et Google Chrome au cours d'un TP ! Vous saurez créer des programmes constitués de fenêtres. Avec un peu de travail supplémentaire, vous pourrez même créer des jeux 2D et 3D si vous le désirez. Bref, avec le temps et à force de persévérance, vous pourrez aller loin. ;)

Alors oui, je n'oublie pas votre question : vous vous demandez comment réaliser des programmes. La programmation est un univers très riche. On utilise des langages de programmation qui nous permettent d'expliquer à l'ordinateur ce qu'il doit faire. Voyons voir plus en détail ce que sont les langages de programmation.

Les langages de programmation

Votre ordinateur est une machine étonnante et complexe. A la base, il ne comprend qu'un langage très simple constitué de 0 et de 1. Ainsi, un message tel que celui-ci :

1010010010100011010101001010111010100011010010

... peut signifier quelque chose comme "Affiche une fenêtre à l'écran".

Ouah ! o_O Mais c'est super compliqué !
On va être obligé d'apprendre ce langage ?


Heureusement non. :D
S'il fallait écrire dans ce langage (qu'on appelle langage binaire), il ne faudrait pas des années pour concevoir un jeu comme Starcraft II mais plutôt des millénaires (sans rire !).

Pour se simplifier la vie, les informaticiens ont créé des langages intermédiaires, plus simples que le binaire. Il existe aujourd'hui des centaines de langages de programmation. Vous pouvez retrouver une liste des langages de programmation sur Wikipédia pour vous faire une idée. Chacun de ces langages a des spécificités, nous y reviendrons.

Tous les langages de programmation ont un seul but : vous permettre de parler à l'ordinateur plus simplement qu'en binaire. Voici comment ça fonctionne :

  1. Vous écrivez des instructions pour l'ordinateur dans un langage de programmation (par exemple le C++ ;) ).
  2. Les instructions sont traduites en binaire grâce à un programme de "traduction".
  3. L'ordinateur peut alors lire le binaire et faire ce que vous avez demandé !

Résumons ces étapes dans un schéma :

Compilation


Le fameux "programme de traduction" s'appelle en réalité le compilateur. C'est un outil indispensable. Il vous permet de transformer votre code, écrit dans un langage de programmation, en un vrai programme exécutable.

Reprenons le schéma précédent et utilisons un vrai vocabulaire d'informaticien. ^^

Compilation détaillée


Voilà ce que je vous demande de retenir pour le moment, ce n'est pas bien compliqué mais c'est la base à connaître absolument !

Mais justement, comment dois-je faire pour choisir le langage de programmation que je vais utiliser ? Tu as toi-même dit qu'il en existait des centaines !
Lequel est le meilleur ? Est-ce que le C++ est un bon choix ?


Les programmeurs (aussi appelés développeurs) connaissent en général plusieurs langages de programmation et non pas un seul. On se concentre rarement sur un seul langage de programmation.

Bien entendu, il faut bien commencer par l'un d'eux. La bonne nouvelle, c'est que vous pouvez commencer par celui que vous voulez ! Les principes des langages sont souvent les mêmes, vous ne serez pas trop dépaysés d'un langage à l'autre.

Néanmoins, voyons voir plus en détail ce qui caractérise le C++ par rapport aux autres langages de programmation... Ben oui, c'est un cours de C++ ne l'oubliez pas ! ;)
Que vaut le C++ par rapport aux autres langages ?

Le C++ face aux autres langages

Le C++ : langage de haut ou de bas niveau ?



Parmi les centaines de langages de programmation qui existent, certains d'entre eux sont plus populaires que d'autres. Sans aucun doute, le C++ est un langage très populaire. Des sites comme langpop.com tiennent à jour un classement des langages les plus couramment utilisés si cette information vous intéresse. Comme vous pourrez le constater, le C, le Java et le C++ tiennent régulièrement le haut du classement.

La question est : faut-il choisir un langage parce qu'il est populaire ? Il existe des langages très intéressants mais peu utilisés. Le souci avec les langages peu utilisés, c'est qu'il est difficile de trouver des gens pour vous aider et vous conseiller quand vous avez un problème. Voilà entre autres pourquoi le C++ est un bon choix pour qui veut débuter : il y a suffisamment de gens qui développent en C++ pour que vous n'ayez pas à craindre de vous retrouver tout seuls !

Bien entendu, il y a d'autres critères que la popularité. Le plus important à mes yeux est le niveau du langage. Il existe des langages de haut niveau et d'autres de plus bas niveau.

Qu'est-ce qu'un langage de haut niveau ? :o


C'est un langage assez éloigné du binaire (et donc du fonctionnement de la machine), qui vous permet généralement de développer de façon plus souple et rapide.
Par opposition, un langage de bas niveau est plus proche du fonctionnement de la machine : il demande en général un peu plus d'efforts mais vous donne aussi plus de contrôle sur ce que vous faites. C'est à double tranchant.

Le C++ ? On considère qu'il fait partie de la seconde catégorie : c'est un langage dit "de bas niveau". Mais que cela ne vous fasse pas peur ! Si programmer en C++ peut s'avérer assez complexe, vous aurez entre les mains un langage très puissant et particulièrement rapide. En effet, si l'immense majorité des jeux sont développés en C++, c'est parce qu'il s'agit du langage qui allie le mieux puissance et rapidité. Voilà ce qui en fait un langage incontournable.

Le schéma ci-dessous représente quelques langages de programmation, classés par "niveau" :

Image utilisateur



Vous constaterez qu'il est en fait possible de programmer en binaire grâce à un outil très basique appelé l'assembleur. Etant donné qu'il faut déployer des efforts surhumains pour coder ne serait-ce qu'une calculatrice, on préfère le plus souvent utiliser un langage de programmation. ;)

La notion de "niveau" est relative en programmation. Globalement, on peut dire que le C++ est "bas niveau" par rapport au Python, mais il est plus "haut niveau" que l'assembleur. Tout dépend de quel point de vue on se place. ;)


Résumé des forces du C++



  • Il est très répandu. Comme nous l'avons vu, il fait partie des langages de programmation les plus utilisés sur la planète. On trouve donc beaucoup de documentation sur Internet et on peut facilement avoir de l'aide sur les forums. Il paraît même qu'il y a des gens sympas qui écrivent des tutos pour débutants dessus. :-°
  • Il est rapide, très rapide même, ce qui en fait un langage de choix pour les applications critiques qui ont besoin de performances. C'est en particulier le cas des jeux vidéo, mais aussi des outils financiers ou de certains programmes militaires qui doivent fonctionner en temps réel.
  • Il est portable : un même code source peut être transformé en exécutable sous Windows, Mac OS et Linux théoriquement sans problème. Vous n'aurez pas besoin de réécrire votre programme pour d'autres plateformes !
  • Il existe de nombreuses bibliothèques pour le C++. Les bibliothèques sont des extensions pour le langage, un peu comme des plug-ins. De base, le C++ ne sait pas faire grand chose, mais en le combinant avec de bonnes bibliothèques on peut créer des programmes 3D, réseau, audio, fenêtrés, etc.
  • Il est multi-paradigme (outch !). Ce mot barbare signifie qu'on peut programmer de plusieurs façons différentes en C++. Vous êtes encore un peu trop débutants pour que je vous présente tout de suite ces techniques de programmation, mais l'une des plus célèbres est la Programmation Orientée Objet (POO). C'est une technique qui permet de simplifier l'organisation du code dans nos programmes et de rendre facilement certains morceaux de codes réutilisables. La partie II de ce cours sera toute entière dédiée à la POO !


Bien entendu, le C++ n'est pas LE langage incontournable. Il a lui-même ses défauts par rapport à d'autres langages. On peut citer une certaine complexité : vous avez beaucoup de contrôle sur le fonctionnement de votre ordinateur (et sur la gestion de la mémoire) : c'est une puissance, mais si vous l'utilisez mal vous pouvez plus facilement faire planter votre programme. Ne vous en faites pas, nous découvrirons tout cela progressivement dans ce cours. ;)


Petit aperçu du C++



Pour vous donner une idée, voici un programme très simple affichant le message "Hello world!" à l'écran. Ce sera l'un des premiers codes source que nous étudierons dans les chapitres suivants.


Code : C++
1
2
3
4
5
6
7
8
9
#include <iostream>
 
using namespace std;
 
int main()
{
	cout << "Hello world!" << endl;
	return 0;
}

La petite histoire du C++

La programmation a déjà une longue histoire derrière elle. Au début, il n'existait même pas le clavier pour programmer ! On utilisait des cartes perforées comme celle ci-dessous pour donner des instructions à l'ordinateur :

Carte perforée


Autant vous dire que c'était long et fastidieux !

De l'Algol au C++



Les choses ont ensuite évolué, heureusement. Le clavier et les premiers langages de programmation sont apparus :

  1. 1958 : il y a longtemps, à l'époque où les ordinateurs pesaient des tonnes et faisaient la taille de votre maison, on a commencé à inventer un langage de programmation appelé l'Algol.
  2. 1960-1970 : ensuite, les choses évoluant, on a créé un nouveau langage appelé le CPL, qui évolua lui-même en BCPL, puis qui pris le nom de langage B (vous n'êtes pas obligés de retenir tout ça par coeur hein :-° ).
  3. 1970 : puis, un beau jour, on en est arrivé à créer encore un autre langage qu'on a appelé... le langage C. Ce langage, s'il a subi quelques modifications, reste encore un des langages les plus utilisés aujourd'hui.
  4. 1983 : un peu plus tard, on a proposé d'ajouter des choses au langage C, de le faire évoluer. Ce nouveau langage, que l'on a appelé "C++", est entièrement basé sur le C. Le langage C++ n'est en fait rien d'autre que le langage C avec plusieurs nouveautés. Il s'agit de concepts de programmation poussés comme la programmation orientée objet, le polymorphisme, les flux... Bref, des choses bien compliquées pour nous pour le moment, mais dont nous aurons l'occasion de reparler par la suite !

Une minute... Si le C++ est en fait une amélioration du C, pourquoi y a-t-il encore tant de gens qui développent en C ?


Tout le monde n'a pas besoin des améliorations apportées par le langage C++. Le C est à lui seul suffisamment puissant pour être à la base des systèmes d'exploitation comme Linux, Mac OS X et Windows.
Ceux qui n'ont pas besoin des améliorations (mais aussi de la complexité !) apportées par le langage C++ se contentent donc très bien du langage C, et ce malgré son âge. Comme quoi, un langage peut être vieux et rester d'actualité. ;)

Le concepteur


Bjarne Stroustrup

C'est Bjarne Stroustrup, un informaticien originaire du Danemark, qui a conçu le langage C++. Insatisfait des possibilités offertes par le C, il a créé en 1983 le C++ en y ajoutant les possibilités qui manquaient selon lui.

Bjarne Stroustrup est aujourd'hui professeur d'informatique à l'université du Texas, aux Etats-Unis. Il s'agit d'une importante figure de l'univers informatique qu'il faut connaître, au moins de nom (du moins si vous arrivez à retenir le sien :-° ).

De nombreux langages de programmation se sont par la suite inspirés du C++. C'est notamment le cas du langage Java.

Le langage C++, bien que relativement ancien, continue à être amélioré. Une nouvelle version, appelée C++1x, est d'ailleurs en cours de préparation. Il ne s'agit pas d'un nouveau langage mais d'une mise à jour du C++. Les nouveautés qu'elle apporte sont cependant trop complexes pour nous, nous n'en parlerons donc pas ici !

Q.C.M.

Le C++ a été inventé parce que le C n'était plus utilisable sur les nouveaux ordinateurs...
Par qui a été inventé le C++ ?
Quel est le langage utilisé par la majorité des jeux vidéo ?
Comment s'appelle l'outil qui fait la traduction de votre code écrit dans un langage de programmation vers le langage binaire ?
Le C++ est un langage...

Statistiques de réponses au QCM

Cette petite introduction avait pour but de vous faire découvrir les langages de programmation et de vous expliquer dans les grandes lignes comment tout ceci fonctionne.

Résumons :

  • Les programmes sont à la base de l'informatique. Ils demandent à votre ordinateur d'exécuter des actions.
  • Pour écrire des programmes, on utilise un langage de programmation. Il en existe des centaines.
  • Le C++ est un des langages de programmation les plus utilisés dans le monde.
  • Le C++ est un descendant du C. Il le complète en rajoutant un certain nombre de possibilités.
  • Le C++ est un langage de bas niveau : il est plus proche du langage machine (le binaire) et peut parfois être assez complexe.
  • Le C++ est un langage extrêmement rapide, ce qui en fait le langage de prédilection de la plupart des jeux vidéo avides de performances.


Nous n'avons encore rien manipulé sur votre ordinateur, mais nous commencerons dès le prochain chapitre en installant les logiciels nécessaires pour programmer ! :D
Sommaire Chapitre suivant

Partager

13 commentaires pour "Qu'est-ce que le C++ ?"
Note moyenne : 3.85 / 4 (1749 votes)
Pseudo Commentaire
Hors ligne nat97 # Posté le 24/01/2012 à 16:20:26

Avis : Très bon

Moi qui suis nouveau et moins bon qu'un Zero - XD - en programmation, j'aime déjà beaucoup ce tutoriel !
Hors ligne nat97 # Posté le 24/01/2012 à 16:24:13

Avis : Très bon

Moi qui suis nouveau et moins bon qu'un Zero - :D - en programmation, je trouve déjà ce tutoriel magnifique !
Hors ligne maramu # Posté le 11/02/2012 à 18:28:14

Avis : Bon

Très bonne introduction, il n'y a rien à redire.
Hors ligne blackwolffire # Posté le 15/05/2012 à 13:42:39
Être là avant d'être là
Avatar

Avis : Très bon

est-ce qu'il y a quelqu'un qui a acheté le livre du tuto? si oui est-ce qu'il me dire si c'est aussi bien expliquer dedans? merci

Cherche pas j'étais là avant toi.
 
Connecté Nanoc # Posté le 15/05/2012 à 14:59:12
Aimez-vous le C++ ?
Avatar
Validateurs

Ville : Durham
Pays : Royaume-Uni
Études : EPFL

Le livre contient le meme texte que le tuto disponible sur le site et deux chapitres supplementaires.
Tu peux consulter le livre en regardant la version PDF du cours si cela t'interesse.
 

Voir tous les commentaires