TUTORIEL ALGO/METHODES 
5 conseils pour choisir son premier langage de programmation
A vérifier au moment de plonger dans le monde du développement logiciel ou Web : verbosité, spécificité, ancienneté, ouverture et familiarité. (21/02/2005)

Le premier langage conditionne souvent une vision de la programmation, une approche des problèmes et même un style de rédaction du code. Au risque pour l'apprenti d'être confiné dans un certain mode de pensée, ou au contraire de négliger les structures nécessaires à un code robuste.

  En savoir plus
COMPARATIF  14 langages au crible

Parmi les langages disponibles, il devrait être facile de choisir sur la base de la popularité -c'est d'ailleurs le parti pris par nombre de formations- mais si l'apprenti en a la possibilité, se poser quelques questions fondamentales est crucial. Nous en avons sélectionné 5.

Verbosité

Aborder la programmation, c'est se lancer dans l'apprentissage d'une nouvelle langue et donc d'une nouvelle logique. Dès lors il est nécessaire de travailler de manière atomique, en augmentant le niveau petit à petit, et ne pas "apprendre des phrases par cœur" (pour poursuivre l'analogie), ce qui donnerait l'illusion de parler la langue sans pour autant la comprendre, et avec le risque supplémentaire d'être rebuté dès le départ.

C'est pourquoi il est préférable de choisir un langage ni trop verbeux, ni pas assez.

Un langage verbeux englobe ses fonctionnalités dans une coquille de mécanismes internes. Nous pensons précisément aux langages Java et C#, cousins ennemis et très orientés-objet : avant même d'avoir pu afficher la moindre ligne dans une console texte, l'apprenti aura dû créer une classe, appeler des méthodes, voire utiliser des espaces de noms et des packages… Exemple canonique : afficher un texte en Java :

class HelloWorldApp {
  public static void main(String[] args) {
    System.out.println("Hello World!");
    }
  }

Comparons avec Ruby :

print "Hello World!"

Certains langages ne nécessitent ainsi que quelques notions d'anglais pour être compris.
De la même manière, certains langages peuvent être à l'inverse trop concis, parfois au moyen de raccourcis excessifs et d'une syntaxe que seul le développeur aguerri peut reconnaître... En Scheme par exemple, (* 3 6 9) correspond au calcul 3*6*9…

Spécificité
L'objectif d'un premier langage, sauf exception, est aussi l'apprentissage de la programmation. Dans cette optique, il serait préférable de commencer son apprentissage avec un langage suffisamment généraliste, et donc d'éviter les langages qui ne s'appliquent qu'à un environnement ou une méthode. Tombent dans cet écueil les langages Web comme PHP, ASP.NET, JSP et consorts (à des degrés différents). Idem, les langages de script pur comme Perl, qui tire ses racines de l'environnement Shell UNIX, et par certains aspects lui est encore trop attaché.
Signalons également le nombre de langages utilisant des paradigmes différents des langages courants, comme les langages fonctionnels (Scheme, Haskell, Erlang) qui ne parleront probablement qu'aux mathématiciens.

Ancienneté
Les langages s'inspirent les uns des autres pour s'améliorer et proposer de nouvelles possibilités de développement. Si la plupart des concepts encore en vogue aujourd'hui ont été implémentés il y a une vingtaine d'années (Simula et Smalltalk pour la programmation orientée-objet, par exemple), il n'en reste pas moins que les langages modernes combinent les avantages d'avoir digéré les leçons apprises en étudiant ces précédents langages, et qu'ils devraient disparaître bien après leurs ancêtres. Choisir un langage moderne signifie en pratique voir plus loin dans le temps.

Ouverture
Simplement : il vaut mieux éviter les langages rattachés à une plate-forme ou un outil, car le développeur prend le risque de s'enfermer. Exemples actuels : .NET qui, malgré Mono, reste limité au monde Windows ; Delphi qui ne peut se programmer qu'avec l'outil éponyme de Borland ; ou JavaScript qui de son côté est limité au navigateur qui veut bien l'afficher. Favoriser un langage "libre" permet non seulement de s'affranchir du bon vouloir d'un éditeur, mais également de ne pas devoir bourse délier quand il s'agit de trouver les outils de développement qui se rattachent au langage.

  Forum

Réagissez dans les forums de JDN Développeurs

Familiarité
Nombre de langages répondent aux critères ci-dessus : Python, Ruby ou Lua sont des langages modernes, rapidement compréhensibles et faiblement liés à un environnement. Leur problème cependant : ils ne mèneront pas beaucoup plus loin que l'apprentissage, car il s'agit encore aujourd'hui de langages exotiques, qui donc n'ont pas beaucoup de poids pour l'expérience d'un développeur (même si Python commence à devenir populaire). Qu'un langage permette d'apprendre à programmer est suffisant, mais idéalement il faudrait qu'il puisse servir à quelque chose, notamment sur un CV.

 
Xavier Borderie, JDN Développeurs
 
Accueil | Haut de page
 
 





Quand achetez-vous le plus en ligne ?
Du lundi au vendredi
Le samedi
Le dimanche

Tous les sondages