• [^] # Re: Comment est-ce possible ?

    Posté par (site web personnel) . En réponse au lien Un 29 février ? C'est quoi ça ? C'est nouveau ?. Évalué à 10.

    Je pense qu'il y a sans doute le fait que les libs en question sont quand même un peu obscur.

    Mon premier code python était en python 2.2 ou 2.3 (et pendant longtemps, j'ai pensé que 2.4 était un peu bleeding edge), j'ai fait du python depuis le début de ma carrière, je parle régulièrement à pycon, et pourtant, la semaine derrière, j'ai du utiliser datetime en python, et j'ai encore eu du mal à m'y retrouver pour faire ce que je voulais (à savoir avoir un chaîne avec la date/heure dans 1h et 2h pour une API REST distante, avec la gestion des timezones).

    je dit pas que c'est impossible ni compliqué, vu que j'ai fini par écrire les 2 lignes requises, mais bon, je peux voir comment des gens avec finalement moins d'expérience peuvent se planter et avoir du mal.

    Et ça, c'est avec python qui a une lib correct. Tu parles des langages à la mode, mais si tu regardes la liste donnée plus haut, les 2 premiers sont des problèmes sur des terminaux de paiement, donc probablement de l'embarqué, probablement du C ou du C++, donc sans doute du code fait main.

    Dans la catégorie medium, il y a deux fois des smartwatchs (donc encore du C), et coreboot (encore du C).

    J'ai rien contre le C ou l'embarqué, mais ça rentre pas dans "langages à la mode avec une bibli toute faite".

    Dans la liste aussi, l'exemple le plus intéressant est celui la: https://github.com/phoenixframework/phoenix/issues/5737

    Le code rajoute 1 an sur l'année et le correctif est de rajouter 365 jours à la place. J'aurais sans doute pu faire la même connerie en python, car c'est plus simple de décomposer l'année que d'utiliser deltatime(year=1).

    Quand tu regardes les autres, j'ai le sentiment que c'est le genre de bug qui vont découler du fait que les biblis fancys dont tu parles n'ont pas les fonctions toutes faites, ou peuvent avoir des bugs.

    Par exemple, ça va tomber sur les calculs de récurrences. Si tu fait un cronjob qui se lance automatiquement au bout d'un 1 an à la même date (par exemple, à l'installation d'un système), il faut pas que tu le fasse un 29 février, car une implémentation naïve (à savoir la date du jour dans la ligne cron) va se lancer 1 fois tout les 4 ans.

    Je pense qu'il y a plein de soucis subtiles qui ne sont pas évident quand tu fais des choses qui ne semblent pas être de la gestion de temps classique.