Un langage de programmation, par sa structure et ses paradigmes, peut influencer la manière dont un programmeur peut penser, mais également définir les autres langages qu’il peut apprendre facilement et ceux auxquels il ne va jamais s’adonner. Il faut entendre par paradigme d’un langage, un style fondamental de programmation informatique qui traite de la manière dont les solutions aux problèmes doivent être formulées dans ce langage de programmation.
Parmi les principaux paradigmes, on peut citer la programmation orientée objet, la programmation fonctionnelle, la programmation impérative, la programmation relationnelle, la programmation déclarative, etc., y compris des paradigmes dérivés. Certains langages sont conçus pour supporter un paradigme (le cas de Java qui supporte la programmation orientée objet, tandis que Haskell supporte la programmation fonctionnelle), alors que d’autres supportent des paradigmes multiples (à l’image de C++ qui supporte la programmation procédurale, la programmation orientée objet et la programmation générique).
D’après Sharon Fisher, éditrice du blog Simplicity 2.0, tout cela entraine le fait que le premier langage de programmation appris ou votre langage de programmation préféré peuvent changer votre manière de penser et vous inculquer certaines habitudes de programmation. Ces habitudes vous lient dès lors à un certain nombre de langages que vous pouvez facilement apprendre alors que rejetez d’autres. D’ailleurs, Edsger Dijikstra, lauréat du prix Turing en 1975, pense la même chose.
« Les outils que nous utilisons ont une influence profonde (et sournoise) sur notre manière de penser et, par conséquent, sur nos capacités de réflexion », a-t-il écrit. Et d’ajouter qu’il est « pratiquement impossible d'enseigner la bonne programmation aux étudiants qui ont eu une exposition antérieure au BASIC : en tant que programmeurs potentiels, ils sont mentalement mutilés, au-delà de tout espoir de régénération ». Il estime encore que l’on devrait bannir l’enseignement de COBOL pour l’influence négative que ce langage pourrait avoir sur la manière de penser des développeurs : « L'utilisation de COBOL estropie l'esprit ; son enseignement devrait, par conséquent, être considéré comme une infraction pénale ».
D’après Sharon Fisher, une personne dont le premier langage de programmation a été APL réfléchit de la même manière que quelqu'un dont le premier langage a été COBOL ou l'assembleur. Pour aller dans le même sens de la déclaration d’Edsger Dijikstra sur l’impact des outils que nous utilisons, Fisher explique qu’une personne qui a commencé son apprentissage des outils informatiques avec Microsoft Excel y sera tellement accrochée qu’elle aura tendance à l’utiliser pour tout faire, même les bases de données.
À propos de cette dépendance au premier langage que l’on a appris ou à son langage de programmation préféré, elle illustre son idée par bien d’autres exemples, comme le fait que les « programmeurs C utilisent C ++ simplement comme un meilleur C ». En ce qui concerne les programmeurs du langage de scripts JavaScript, elle soutient qu’ils « manquent totalement à la fois le côté fonctionnel et le côté objet orienté ». Et d’ajouter que « les programmeurs Clojure/Scala programment fondamentalement en Java avec une syntaxe légèrement modifiée ».
Ce point de vue serait également vérifié de manière inverse. Certaines personnes peuvent en effet ne pas être en mesure de savoir comment résoudre un problème tout simplement parce que le langage qu'ils utilisent ne supporte pas le concept permettant de le faire, poursuit Sharon Fisher. Elle conclut donc ici que « nos pouvoirs créateurs sont limités par les idées qui peuvent être exprimées dans le langage de programmation que nous utilisons » et certaines solutions sont tout simplement « hors de notre portée parce qu'elles ne peuvent pas être clairement exprimées dans ces langages ».
Source : Sharon Fisher
Et vous ?
Qu’en pensez-vous ? Partagez-vous l’avis de Sharon Fisher ? Pourquoi ?
D’après vous, quels sont les langages qui pourraient avoir une mauvaise influence sur la capacité des programmeurs à résoudre certains problèmes dans d’autres langages ? Illustrez votre point de vue avec des cas concrets.
La capacité de réflexion d'un programmeur serait influencée par son premier langage ou celui qu'il utilise le plus
Partagez-vous cet avis ?
La capacité de réflexion d'un programmeur serait influencée par son premier langage ou celui qu'il utilise le plus
Partagez-vous cet avis ?
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !