Informaticienzero

Le blog d'un informaticien passionné de partage, d'échanges et surtout, pas si zéro que ça.

Un titre accrocheur, n’est-il pas ? On voit souvent fleurir ce genre d’articles, surtout en début d’année. Qu’ils soient basés sur la mode, sur les tendances du marché ou sur les goûts personnels de l’auteur, on voit sortir bien souvent les mêmes langages, les « grands classiques » : C, C++, Java, C#, Python, Ruby, SQL, JavaScript, HTML, CSS, bla bla bla. En général, c’est juste une évidence, aucune suggestion intéressante, juste le même redit déjà vu ailleurs. J’aimerai détailler les raisons qui me poussent à dire ça.

HTML et CSS

Déjà, est-ce qu’on peut les appeler « langages de programmation » ? On ne programme pas avec ces langages, on décrit, ici en l’occurrence une page web. Sachant que ces deux langages sont juste la base d’un site web, il est idiot de les mettre comme langage à apprendre, puisque c’est une évidence. Si on veut faire du web, on a pas le choix, on ne peut pas y couper, on passe forcément par là. Le summum étant de les séparer, juste pour gonfler artificiellement la liste.

SQL

De même que pour la catégorie précédente, SQL c’est obligatoire quand on fait mumuse avec des bases de données. Alors oui, y’a le NoSQL maintenant. Mais n’empêche que le SQL est juste ultra répandu et absolument incontournable dès qu’on a besoin, même de manière infime, d’une base de données (et non, les ORM ça ne fait pas tout). Qu’on l’aime ou pas, SQL est là. Après, on peut suggérer de mieux le comprendre pour mieux l’utiliser. N’empêche que suggérer SQL comme langage à apprendre, c’est évident aussi.

Les langages pour mobiles

Sont donc compris Java et Swift. Mais c’est, encore une fois, une évidence. Simplement parce que ce sont les langages utilisés pour développer sur les deux plateformes mobiles les plus populaires, Android et iOS. Même s’il est possible de développer sur ces plateformes à l’aide d’autres langages, ils restent quand même des références.

Les langages « par paire »

Avez-vous remarqué à quel point, quand on voit un langage, on lui associe par réflexe son « pendant ». Exemple : s’il y a Java, on verra souvent C#. S’il y a Python, on aura Ruby. Si c’est C, juste derrière on trouve C++. On ne donne pas vraiment d’argument, c’est juste que, par réflexe, on les mets ensemble.

Et si on proposait autre chose ?

Autre chose que la même liste déjà sortie des technos qui payent le plus ou des langages les plus utilisés sur GitHub ou StackOverflow. Je ne dis pas que ça sert à rien de les apprendre, mais que si l’on cherche les langages les mieux payés ou répondant à un besoin spécifique, il y a fort à parier qu’on a déjà la réponse.

Si on aiguillait plutôt ceux qui cherchent réellement un nouveau langage à apprendre, pour la culture ou pour s’auto-former, vers quelque chose de différent ? Tu es habitué aux langages statiques ? Pourquoi donc ne pas essayer un dynamique ? Ou bien tu programmes en impératif ? Essaye donc un langage fonctionnel. L’idée est de tester quelque chose de plus radicalement différent que juste un autre langage de la même famille.

De mon avis, il n’est pas compliqué de se former à C# si on vient de Java ou à Python si l’on est formé à Ruby. Par contre, la différence, et donc l’intérêt, est plus grande si on passe de C à Haskell, ou de JavaScript à Ada ou Erlang. Je pense qu’on a beaucoup à y gagner en ouverture d’esprit et qu’on peut s’améliorer en programmation si on fait l’effort de sortir de sa zone de confort. Par contre, ça n’empêche absolument pas de se former aux tendances du marché ni aux langages célèbres. C’est juste que j’aimerai voir des posts encourager la différence et l’ouverture plutôt que les mêmes listes de langages, encore et encore.