• [^] # Re: Pas mieux

    Posté par . En réponse au lien Apprendre la programmation en Python n'est pas plus facile qu'en Java ou en C++. Évalué à 5.

    Même au-delà de mon exemple, il y a un point fondamental en mathématique : toutes les valeurs sont immuables et vivent, pour ainsi dire, dans le monde Platonicien des idées. D'où ma référence à Haskell où tout est immuable et qui nécessite la monade IO pour faire des entrées sorties.

    Mais de manière générale, la mutabilité est une source d'emmerdes sans nom dont on n'a rarement besoin, si ce n'est pour des raisons de performances en programmation bas niveau. Et dans ce cas, mieux vaut du Rust qui contrôle cela via le borrowing et le lifetime. Raisonner, sans erreur, avec des choses mutables sur une large échelle est une gageure.

    Ensuite, mon expérience m'a appris que les programmeurs ne comprennent pas toujours réellement les structures qu'ils manipulent, en particulier avec la POO (qui se représente réellement un objet comme une paire constituée d'une algèbre et d'une valeur de son support ? ce qu'il est pourtant réellement).

    Enfin, l'algorithmie est bien une branche des mathématiques. Pour l'anecdote, et en revenir à Platon (cf. le dialogue du Ménon), la première crise des mathématiques remonte à l'antiquité et concernait un problème de non terminaison d'un algorithme. Algorithme qui pour nous termine toujours, les pythagoriciens pensaient qu'il devait aussi en être ainsi mais ils ont trouvé un cas de non terminaison qui les laissa perplexe. Je veux parler de l'algorithme d'Euclide pour le calcul du plus petit diviseur commun. Il s'en servait pour trouver la commune mesure entre deux grandeurs géométriques, jusqu'à ce qu'il l'essaye sur un carré et sa diagonale. La non terminaison signifiant l'irrationalité de racine de 2. ;-)

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.