Mes excuses, quand je te demandais des exemples d'incompatibilité, je parlais d'un langage moderne comme Rust ou D (puisque nous en parlions).
Ces langages n'utilisent aucun garbage collector (edit:
D en utilise un, autant pour moi. Je ne parle que de Rust dans ce cas).
Je n'ai jamais fait de R, donc je ne pourrais pas répondre vis-à-vis de la "compatibilité" entre le C++ et le R. Toutefois, tu pars du principe que tout devrait tourner autour du C++: pourquoi cela devrait-il être fait en C++ ?
Si ce qui est fait avec R peut être fait avec C++, alors il y a tout autant d'intérêt à travailler avec l'un ou l'autre, non ? (ce sont de véritables questions)
Pour ma part, je trouve que le C++ demande un (très) gros investissement de la part du développeur, pour arriver au même résultat que dans un autre langage, pour être productif. Je vois aussi un autre souci, qui pousse (ou tout du moins, qui me pousse) les développeurs à utiliser un autre langage: C++ est très ambigu, il y a 100 façons de faire les choses et c'est ce qui fait sa force comme sa faiblesse, à mon avis. Le fait qu'on puisse mélanger la syntaxe (et les modules) du C, même lorsque l'on souhaite faire uniquement du C++ (pour apprendre), là où les langages modernes sont, par définition, plus jeunes, donc moins marqués par les modifications et peut-être moins compliqués.
La gestion des projets aussi, des dépendances. Personnellement, j'ai vraiment du mal avec la gestion de projet C++, là où maven (pour Java) et cargo (pour Rust) proposent de gérer les projets en suivant un modèle de projet prévu (qui est totalement configurable, et peut donc être modifié, mais reste tout de même présent si il n'est pas nécessaire d'y toucher), de gérer les dépendances d'une autre manière (e.g.
téléchargement et compilation automatiques de projets se trouvant sur un dépôt git, pour cargo).
Je ne pense pas que ça soit une simple question de bibliothèques (si ce n'était que ça, nous serions certainement tous en train de coder en C).
Très bonne journée à toi!
Partager