le remplaçant de C++ imaginé par Google leaves perplex

La semaine dernière, Google a lancé Carbon, un langage experimental open source license Apache 2.0 voué à remplacer C++. Despite this ambition, the sector’s professionals are skeptical.

The language C++ is a pillar of development in enterprise, but it presents disadvantages and some developers estimate that it should be replaced. Les raisons en sont nombreuses, notably un code difficile à apprendre et à lire, des méchanismes de sécurité dépassés et un manque d’adequation aux nombreuses et environnements matériel modernes, list Chandlerloriciel’scareurruth ouverture à la conference CppNorth le 18 juillet 2022. « Carbon s’apuiera sur l’ecosystem C++ pour tryer de résolve ces problèmes, en offering une interoperability et une migration plus facile- du code-“, .

Carbon is presented comme étant bien adapté aux projects comportant une grande quantité de code C++. Cependant, le passage à un nouveau langage ne sera pas aisé.

“Le problème, c’est qu’il ya beaucoup de code C++,” confirms Andrew Cornwall, principal analyst at Forrester Research. “Changer de langage signifierait qu il faudrait réécrire une grande quantité de code C++ délicat à Optimiser, parfois des deciennes après le départ à la retreat de son auteur. Ce ne serait pas impossible, mais simplement coûteux.’

Outside, the modernization of C++ pourrait être un pointable disputable. Developers who wish to benefit from new features have already turned to other languages ​​such as Rust, a programming language supported by Google, Microsoft and AWS, according to the analyst.

Eliminate the oddities of C++ and security problems

Lorsque le C++ inherited du C, il amorcé l’ensemble de l’ecosystème C++, ce qui a été étésential à son success, recalls Chandler Carruth during his opening speech. Cependant, à ces avantages – notably la rapidité de la migration – se sont ajouté des specificités de codage.

“Par exemple, nous mettons co_ devant les mots clés parce que nous sommes terrifiés à l’idée de casser le code existant,” illustrate Chandler Carruth.

« Les nombreuses bizarreries du C++ en font un langage complex. La syntaxe peut être difficile à comprendre et à écrire, ce qui peut entrainer des errors et des bugs whose correction is longue et costueuse “, d’après Morshed Alam, fondateur et éditeur de Savvy des Programmer’sapprentage, . “Outside out, le C++ n’est pas bien adapté au développement d’applications d’entreprise”.

Andrew Cornwall agrees that C++ is not the best language for the development of enterprise applications, but it is a good service for building a series of basic infrastructures.

” [C++] est puissant “, declares-t-il. “Il vous permet de faire beaucoup de choses, y compris de vous tirer une balle dans le pied”.

” [C++] est puissant. Il vous permet de faire beaucoup de choses, y compris de vous tirer une balle dans le pied.’

Andrew CornwallisForrester Analyst

Un autre problem avec C++ touche à la sécurité de la memorye, qui pose un risque de sécurité significant, previent Dhaval Sarvaiya, cofondateur d’Intelivita, une agence de développement de jeux, mobile websites. Les données C++ stockées en mémoire ne dispensant de contrôles d’accès ou d’écrasement, ce qui rend les vulnerables aux attaques par ébordement de mémoire tampon, où des acteurs malveillants variables’untrients.

Ce défi majeur n’est pas une priority pour l’équipe Carbon, on the team’s GitHub page. “Notre priorité originale est de nous attaquer immediately aux problèmes important et facilis à réusseur dans le domaine de la sécurité”, before the Google engineers.

L’absence d’une réelle gouvernance asks a question

According to Google’s Chandler Carruth, solving problems in C++ runs afoul of the norm established by the Organization Internationale de Normalization (ISO). Et les règles strictes de l’ISO obligent à garantir que les nations et les entreprises sont représentées dans sa definition. This will slow down the travaux de modernization du langage.

” This mode of representation does not make sense if the developer tackles complex problems such as this technology of C++, which involves difficult arithmetic rules to understand the syntax, the plus ne contrariante, the contrariante, the ce qu’il semble faire », tranche-t-il.

Pour des problèmes compliqués comme celui ci, il s’agit rather de mettre en place des experts dotéte d’un bon processus de decision, conseille Chandler Carruth. For reasons of changing priorities, before the development of Carbon se Fera sur GitHub avec Google Docs pour l’édition collaborative de la documentation, annonce-t-il.

“Le processus de développement se résuméra à des pull requests sur GitHub – c’est tout”, explains M. Carruth.

Cependant, ce changement d’orientation par aux processus de l’ISO n’enlève rien au fait that Carbon will be confronted with the same problems as C++, comme l’interopérabilité et les utilisers qui veulent des soulstel’s building, .

“If Carbon succeeds and establishes a significant code base, the committers of Carbon will be obliged to establish a process to accept or reject the new features of the language,” he concluded. “Ce processus deviendra aussi bureaucratique que le processus C++ l’est aujourd’hui.” »

The open source development model for Carbon poses un problème supplémentaire. “La plupart des développeurs souhaient que les langages evolvent lentement, et le modèle de Carbon, qui permet à quiconque de contributar à une nouvelle functionality, entravera son adoption”, predicts Andrew Cornwall.

According to the road map of the project, Google hopes that there will be no more than 50% of the origin of the organization. Independently, the Carbon Governance will remain in the hands of Google’s engineers until 2024-2025, the period when those responsible for the project hope to entrust it to an open source foundation.

“La plupart des développeurs souhaient que les langages evolvent lentement, et le modell de Carbon, qui permet à quiconque de contributar à une nouvelle functionality, entravera son adoption”.

Andrew CornwallisAnalyst, Forrester

Clearly, les responsibles de Carbon peuvent receiver ou non les pull requests on GitHub, and discussions about communication.

After the real C++ alternative

Par le passé, des langages tels que D et Objective-C ont brought des améliorations par rapport au C++, mais l’énorme de code du C++ est difficile à remplacer, selon M. Cornwall. Rust is not an ideal substitute for C++, because it is not compatible with its source code and does not have classes – a master idea of ​​object-oriented programming. However, it takes care of modern features such as memory allocations that are safer than C++, informe-t-il.

“Le problème est aggravé par le fait que l’introduction de tous nouveaux langages – even s’ils ne sont pas expérimentaux – entraine la frustration des développeurs”, consider the analyst.

“Demandez aux développeurs qui ont commencement à utiliser Swift ou Kotlin lorsque ces langages sont apparus, et comment ils ont dû sadapter à l’évolution de ces langages. Ils était souvent frustrés de devoir revoir le code qu’ils avaient déjà écrit et de le réécrire pour prendre en charge la nouvelle version du langage “, he continues.

Étant donné que Carbon en est encore au stade expérimental, il est peu probable que les entreprises l’adoptent, rappelle Leonid Ivankin, un developpeur Android chez MTS group, un opérateur télécom russe. ” Carbon va sans doute prospérer dans les startups qui démarrént un projet à partir de nero “, imagine-t-il.

Pour le moment, Carbon n’est même pas prêt à l’usage, renseigne la project GitHub page, qui évoque une hypothétique fin des expérimentos en 2023. Mais la présence even de Google à la tête du project n’est suranteé, only for Android development.

“Google, comme l’histoire l’a montré, peut non seulement lancer des projects, mais aussi les clore”, remarks Leonid Vankin, faisant reférence aux cimetières de projects de Google qui ont laissé les développeurs No, unam laissé les développeurs en, remarque Leonid Vankin, faisant référence aux cimetières de projets de Google qui ont laissez les développeurs en, Non, Laisse les clore from experimental programming, and AngularJS, an open source front-end framework with JavaScript.

Cast l’instant, le projet Carbon a obtenu 21 000 étoiles sur GitHub, a fait l’objet de 830 forks dénombre déjà une sixantaine de contributors.

Leave a Comment