Après des années à utiliser le même OS, le même langage de programmation, les mêmes technologies et les mêmes outils, on peut finir par se convaincre que nos choix sont les meilleurs et commencer à rejeter les alternatives. D'une certaine façon, nous devenons esclaves de ces choix. Quelle que soit la nature du projet ou les exigences du client, nous continuons à prendre les mêmes décisions.
Il est facile de s'en rendre compte en lançant une guerre de tranchées sur un forum : dites simplement « .NET est meilleur que Java » ou « Windows est supérieur à Linux ». Vous risquez d'être surpris par les réactions. Beaucoup de développeurs sont farouchement fidèles à une option et rejettent catégoriquement l'autre, tandis que rares sont ceux qui s'arrêtent pour discuter du fait que chacune a ses avantages et ses inconvénients.
Au final, un développeur peut devenir l'esclave d'un langage de programmation particulier, laissant le langage dicter ses choix.
Nous savons qu'il n'existe pas de solution unique à tous les problèmes. Windows peut être le meilleur choix dans certains cas, mais pas dans d'autres, tout comme C++ peut convenir à certains projets, mais pas à d'autres. Alors ne tombez pas dans le piège de croire qu'un OS, un langage ou une technologie est toujours le meilleur. Gardez l'esprit ouvert, explorez d'autres possibilités et réfléchissez aux cas où elles pourraient être utiles.
Il est toujours utile de suivre l'évolution des autres langages grand public et d'explorer de nouveaux langages de programmation.
L'évolution des langages de programmation grand public
C++: beaucoup de développeurs considèrent C++ comme très compliqué et difficile à apprendre — un langage réservé aux experts. Pourtant, beaucoup de choses ont changé depuis 2011. Jeter un œil à toutes les nouvelles fonctionnalités pourrait changer l'opinion de nombreux développeurs.
.NET et C#: chaque nouvelle version apporte de nombreuses fonctionnalités intéressantes, et un grand changement s'est produit récemment dans le framework : l'essor du framework open source .NET Core. Il est vivement recommandé d'y jeter un œil pour découvrir tous ses avantages.
Java: Java a stagné pendant de nombreuses années avant Java 9. Cependant, ce fut une bonne surprise pour de nombreux développeurs Java de découvrir que Java 10 était sorti cette semaine. C'est une bonne nouvelle pour les développeurs Java — la preuve que Java ne stagne plus.
Explorez de nouveaux langages de programmation
Rust
Rust est un langage de programmation système sponsorisé par Mozilla Research, qui le décrit comme un « langage sûr, concurrent et pratique », prenant en charge les paradigmes fonctionnel et impératif-procédural. Rust est syntaxiquement proche de C++, mais ses concepteurs entendent lui faire offrir une meilleure sécurité mémoire tout en conservant les performances.
Rust est un langage de programmation open source. Ses concepteurs ont affiné le langage à travers l'expérience de l'écriture du moteur de rendu du navigateur web Servo
[et du compilateur Rust. Une grande partie des commits actuels du projet provient de membres de la communauté.
Rust a remporté la première place du « langage de programmation le plus aimé » dans le Stack Overflow Developer Survey en 2016, 2017 et 2018.
Crystal
Crystal est un langage de programmation généraliste dont la devise est « Fast as C, slick as Ruby » (aussi rapide que C, aussi élégant que Ruby).
C'est un langage de programmation de haut niveau, à typage statique, compilé, entièrement orienté objet, avec une inférence de types avancée et un ramasse-miettes.
Les objectifs de conception de Crystal sont :
- Avoir une syntaxe proche de Ruby (mais la compatibilité avec celui-ci n'est pas un objectif).
- Être vérifié statiquement au niveau des types, sans avoir à spécifier le type des variables ou des arguments de méthode.
- Pouvoir appeler du code C en écrivant des bindings en Crystal.
- Disposer d'une évaluation et d'une génération de code à la compilation, afin d'éviter le code boilerplate.
- Compiler vers du code natif efficace.
Clojure
Clojure est un langage de programmation dynamique et généraliste, combinant l'accessibilité et le développement interactif d'un langage de script avec une infrastructure efficace et robuste pour la programmation multithread. Clojure est un langage compilé, tout en restant complètement dynamique — chaque fonctionnalité prise en charge par Clojure l'est à l'exécution. Clojure offre un accès facile aux frameworks Java, avec des indications de types optionnelles et une inférence de types, pour garantir que les appels vers Java peuvent éviter la réflexion.
Go
Go (souvent appelé golang) est un langage de programmation créé chez Google en 2009 par Robert Griesemer, Rob Pike et Ken Thompson. C'est un langage compilé, à typage statique, dans la tradition d'Algol et de C, avec un ramasse-miettes, un typage structurel limité, des mécanismes de sécurité mémoire et des fonctionnalités de programmation concurrente de style CSP. Le compilateur et les autres outils du langage, développés à l'origine par Google, sont tous libres et open source.
Conclusion
Restez toujours ouvert aux nouvelles possibilités et continuez à explorer ce qui se passe dans l'industrie. C'est une partie de la magie du métier de développeur : il n'y a pas de routine, et chaque jour apporte quelque chose de nouveau.
