Arrêtez d'enseigner la programmation en C ou en Java !
Publié le 25/11/2013
Je suis toujours surpris quand je parle à des gens qui suivent (ou ont suivi) des cours de programmation : Dans la majorité des cas autour de moi, l'enseignement de la programmation se fait en C ou en Java. Sérieusement, en C ?! C'est quoi cette idée à la con ?
Ce n'est pas parce qu'un langage est très utilisé que c'est un bon langage pour apprendre à programmer, je dirais même que c'est même plutôt l'inverse. Pourquoi le C est-il encore utilisé ?
Attention, je n'ai jamais dit que les langages non-typés étaient mieux ! Le typage statique vous sauve la vie quand vous voulez maintenir un gros projet, mais quand vous voulez apprendre les bases de la programmation à un électronicien, à un thermicien ou à n'importe qui sauf un développeur, se prendre la tête avec un langage typé est toujours contre-productif.
Ce n'est pas parce qu'un langage est très utilisé que c'est un bon langage pour apprendre à programmer, je dirais même que c'est même plutôt l'inverse. Pourquoi le C est-il encore utilisé ?
- Parce que c'est un langage compilé (donc performant)
- Parce que c'est un langage proche de la machine (donc pratique pour faire des système embarqués où chaque Ko de RAM compte)
- Ça fait chier de devoir compiler un programme juste pour faire un "hello world", d'autant que ça implique d'installer un compilateur et de savoir le faire marcher.
- Devoir affecter et désaffecter soi-même sa mémoire c'est utile, mais pas vraiment pertinent pour débuter en programmation.
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
return 0;
}
#include <iostream>
int main()
{
std::cout << "Hello, new world!" << std::endl;
return 0;
}
/* Affichage console */
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Vous voyez le problème ? Pour écrire un simple "Hello world", - en C et C++ vous êtes obligé d'écrire une fonction main et de faire un appel à #include
- en Java vous devez déclarer une classe et une fonction, les 2 avec un syntaxe effrayante.
- un langage de script : comme ça on s'évite les joies de la compilation et on peut directement s'amuser à tester des trucs dans la console.
- un langage non typé (ou typé dynamiquement si vous préférez) : ça rend toute les déclarations plus légère et ça évite de se prendre la tête.
Attention, je n'ai jamais dit que les langages non-typés étaient mieux ! Le typage statique vous sauve la vie quand vous voulez maintenir un gros projet, mais quand vous voulez apprendre les bases de la programmation à un électronicien, à un thermicien ou à n'importe qui sauf un développeur, se prendre la tête avec un langage typé est toujours contre-productif.
Aucun commentaire
Flux RSS des commentaires de cet article