Désolé, mais je désapprouve un peu prés tous les arguments que tu avances
ton application C++ en 30ans tu l'a réécrite 2 fois au moins (une fois pour prendre en compte C++98 et une pour C++11) si tu t'en es bien sorti. Oui tu as aussi dû réécrire ton application python pour passer à python3 on est d'accord. C'est juste pour dire que la maintenance de ce genre de code même en C++ ce n'est pas trivial du tout.
En pratique tu ne fais jamais ça. Sauf si ton software lead est incompétent.
C++20 est toujours compatible avec C++98, tu ne réécris pas pour le plaisir de réécrire. Tu migres lentement la code-base pièce par pièce en utilisant les nouvelles fonctionnalités du C++ moderne quand requises.
Certaines code-base C++ dépasse plusieurs millions de ligne de code, ré-écrire ça tous les 6 mois est impensable.
il est beaucoup plus simple d'écrire des tests, mais vraiment beaucoup. Le duck typing (ou le typage structurel) est un bonheur pour ça
Boost.UnitTest ou Catch2 permet d'écrire des tests en 5 lignes de code.
Les templates te permettent de généraliser tes testes automatiquement à N types si nécessaire.
Le duck typing n'apporte rien ici, le duck typing et le typage dynamique ont généralement l'effet inverse. Ils rendent nécessaires des batteries de testes larges et complexes pour gérer le large eventail d'input / possibilité que le duck typing autorise sur ton code et tes fonctions.
il existe un outillage autour de python beaucoup plus riche que pour C++.
5 ans en arrière j'aurai dit oui. Aujoud'hui je dis non.
C++ a maintenant ses lintians, C++ a ses analyseurs statiques (plus puissants que en python car typage statique), C++ a ses auto-formateurs, remote-debugger, sanitizer, etc etc.
L'ecosystème n'a plus grand chose à envier à python si ce n'est son propre package manager, qui comme je l'ai déja dit X fois ici est une fausse bonne idée.
[^] # Re: Performance
Posté par Firwen (site web personnel) . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 5. Dernière modification le 05 juin 2019 à 10:41.
Désolé, mais je désapprouve un peu prés tous les arguments que tu avances
En pratique tu ne fais jamais ça. Sauf si ton software lead est incompétent.
C++20 est toujours compatible avec C++98, tu ne réécris pas pour le plaisir de réécrire. Tu migres lentement la code-base pièce par pièce en utilisant les nouvelles fonctionnalités du C++ moderne quand requises.
Certaines code-base C++ dépasse plusieurs millions de ligne de code, ré-écrire ça tous les 6 mois est impensable.
Boost.UnitTest ou Catch2 permet d'écrire des tests en 5 lignes de code.
Les templates te permettent de généraliser tes testes automatiquement à N types si nécessaire.
Le duck typing n'apporte rien ici, le duck typing et le typage dynamique ont généralement l'effet inverse. Ils rendent nécessaires des batteries de testes larges et complexes pour gérer le large eventail d'input / possibilité que le duck typing autorise sur ton code et tes fonctions.
5 ans en arrière j'aurai dit oui. Aujoud'hui je dis non.
C++ a maintenant ses lintians, C++ a ses analyseurs statiques (plus puissants que en python car typage statique), C++ a ses auto-formateurs, remote-debugger, sanitizer, etc etc.
L'ecosystème n'a plus grand chose à envier à python si ce n'est son propre package manager, qui comme je l'ai déja dit X fois ici est une fausse bonne idée.