Suite du sujet Faut-il être bon en math pour être développeur ?:
je ne pense pas, développer ne se limite pas à créer des algos de maths
un bon développeur doit connaître les outils, savoir bien les choisir et les assembler, faire des choses maintenables
Mathématiques et programmation peuvent être très éloignés, voire antagonistes.
En partant de concepts simples en programmation, comme l’affectation, on peut arriver à des aberrations mathématiques.
Exemple : x = x + 1
se lit “j’additionne 1 à la valeur de la variable x et j’affecte l’évaluation du résultat à la variable x”. En programmation c’est plutôt simple. En mathématiques, on vient d’écrire 0 = 1
, la fin des haricots.
La programmation fonctionnelle (avec des langages comme Scala, ou d’autres) vient réconcilier mathématiques et programmation avec des axiomes comme l’immuabilité des variables -qui interdit ce type d’affectation- ou l’interdiction d’effet de bord -qui force à ce qu’une fonction renvoie toujours la même valeur pour les mêmes paramètres comme une application au sens mathématique du terme.
Exemple : f(4) doit toujours renvoyer 6 et pas 2 avant 3:00 du matin, 21 si l’user est un homme, etc. Si la valeur de retour dépend de la date et du sexe de l’user alors ces informations doivent être des paramètres de f)
Pour ma part, j’ai toujours aimé les maths et la programmation et aller loin en maths m’a permi de mieux appréhender le développement et d’apprendre plus vite.
L’affection en informatique n’est pas une aberration mathématique. C’est juste que, quand on parle mathématique, on se réfère souvent à uniquement la théorie des ensembles mais si on prends le modèle mathématique de la machine de Turing, l’assignation prends tout son sens. Au final, on suppose que c’est une aberration car c’est bien loin des mathématiques conventionnelles qu’on voit au lycée mais elle prends tout son sens dès qu’on entre dans le domaine des mathématiques discrètes.
C’était pour illustrer, et je trouve ça plutôt joli mais effectivement l’affectation n’est pas tant une aberration que ça.
On peut l’assimiler à une “définition” en mathématiques, avec un symbole souvent utilisé le deux-point-égal “:=”.
Un énoncé peut être :
“Soit A := (1,0,-1)” ou tout autre définition/affectation.
On retrouve le “Soit” dans la programmation fonctionnelle d’ailleurs, avec le mot-clef “let” présent dans certains langages.