Il y a près de deux ou trois ans, je suis passé à Python. A l'époque, je cherchais un langage permettant de scripter des tâches courantes (adminsys, utilitaires...). De Bash, je suis passé à perl qui m'a beaucoup séduit par l'expression du code et ses regexp. Il possède aussi beaucoup de bibliothèques (cf cpan), ce qui le rend intéressant.
Néanmoins, perl ne rime pas vraiment avec science, en tout cas dans mon domaine (il semble que perl ait une bonne communauté chez les bioinformaticiens). Matlab fait largement référence, mais puisque ce n'est pas éthiquement acceptable, je me suis tourné vers python qui se défend très bien. Il se trouve aussi que Python, contrairement à matlab, est un vrai langage de programmation, utilisé par des développeurs pour faire des outils bureau et web. C'est, selon moi, une (et non pas la) raison pour laquelle ce langage devrait être privilégié par rapport à matlab dans l'enseignement car il s'adresse potentiellement à une plus grande diversité de tâches, donc un plus large public.
Mais ce n'est pas ce que je veux traiter dans cet article, je veux plutôt parler de ce que Python m'a apporté et que je n'ai pas découvert au cours de mes études où j'ai appris C et C++.
- Faire des tests unitaires. Je me limite encore aux situations simples, mais j'apprécie grandement cet investissement car sur le logn terme, retoucher un code ne donne plus la grosse sueur froide de tout casser. Pour une raison que j'ignore, je n'ai pas découvert ces tests avec perl.
- Intégration continue. Contribuant à des projets sur github, j'ai découvert Travis-CI. Ce n'est pas libre, mais néanmoins plutôt pratique. Comme pour github, si ce service fermait, je pourrai le remplacer à terme par un service auto-hébergé et ce n'est pas critique pour moi. Cette découverte m'a poussé à faire de l'intégration continue pour latex.
- Faire une documentation systématique. Découvert avec doxygen en C++, j'ai commencé à documenter mes fonctions quasi-systématiquement avec python et j'ai l'occasion d'apprendre à faire une doc correcte grâce aux contributions que je peux faire dans des libs scientifiques.
Ces éléments, je les ai appris ou perfectionné avec python. Je ne dis pas que je ne l'aurais pas appris autrement, mais le fait est que c'est grâce à Python !