Carbon, a linguagem de programação que visa substituir o C++

Alguns dias atrás um funcionário do Google revelou que está desenvolvendo uma nova linguagem de programação chamada "Carvão", que está posicionado como um substituto experimental para C++, ampliando essa linguagem e eliminando as deficiências existentes.

De acordo com a apresentação de Carruth, a linguagem foi desenvolvida para poder criar softwares onde o desempenho é fundamental. Eles também queriam permitir que os desenvolvedores aproveitassem o design moderno da linguagem de programação usando o Carbon.

Algumas das coisas destacadas como destaques do Carbon em relação ao C++ foram, por exemplo, sintaxe mais simples e importações de API. De acordo com Carruth, essa nova linguagem experimental deve ser bidirecionalmente interoperável com C++, o que significa que os projetos devem ser capazes de migrar de uma linguagem para outra sem muita dificuldade.

Além disso, é objetivo desenvolver ainda mais a linguagem de forma aberta na Internet, onde quem quiser pode contribuir com código-fonte. O projeto está disponível publicamente no Github e está aberto para puxar solicitações. 

A linguagem suporta portabilidade básica de C++, pode ser integrado ao código C++ existente e fornece ferramentas para simplificar a migração de projetos existentes traduzindo automaticamente as bibliotecas C++ em código Carbon.

Por exemplo, você pode reescrever uma determinada biblioteca em Carbon e usá-la em um projeto C++ existente. O compilador Carbon é escrito usando compilações LLVM e Clang.

Das principais características do Carbono, os seguintes se destacam:

  • O desempenho do código resultante é comparável ao C++, mantendo a capacidade de acessar endereços de baixo nível e dados de nível de bits.
  • Portabilidade com código C++ existente, incluindo herança de classe e modelos.
  • Compilação rápida e capacidade de integração com sistemas de compilação existentes para C++.
  • Simplifique a migração entre diferentes versões do Carbon.
  • Fornece ferramentas seguras para memória que protegem contra vulnerabilidades causadas pelo endereçamento de uma área de memória após ela ter sido liberada, desreferenciar ponteiros nulos e estouros de buffer.

Claro que temos Rust como uma alternativa proposta para C e C++, mas esta não é realmente uma linguagem de extensão, é mais uma linguagem completa, vamos começar de novo. Carbon está tentando ser como Rust enquanto ainda é compatível com o mundo do C++, Bem, em sua página do Github, diz:

  • Correspondência de desempenho C++ usando LLVM, com acesso de baixo nível a bits e endereços
  • Interopere com seu código C++ existente, da herança aos modelos
  • Compilações rápidas e escaláveis ​​que funcionam com seus sistemas de compilação C++ existentes

O carbono é considerado necessário porque a melhoria incremental do C++ simplesmente não é mais possível devido à bagagem histórica da qual ele simplesmente não pode se livrar. Pessoalmente, eu iria além e sugeriria que as "melhorias" incrementais em C++ são parte do motivo de ser uma linguagem tão grande na prática.

“Sempre há novas linguagens tentando ser as sucessoras do C++. Congratulo-me com experimentos com linguagens de programação e estilos de programação, mas realmente não quero causar polêmica. É fácil criticar linguagens estabelecidas (conhecemos seus problemas), mas geralmente é difícil oferecer alternativas sem criar conjuntos inteiramente novos de problemas em regras de linguagem, bibliotecas e governança. O carbono é tão novo e subespecificado que não posso fazer nenhum comentário técnico significativo”, disse o inventor do C++ Bjarne Stroustrup em um e-mail.

Embora o Carbon tenha começado como um projeto interno do Google, a equipe de desenvolvimento quer reduzir as contribuições do Google, ou de qualquer outra empresa individual, para menos de 50% até o final do ano. Em última análise, eles querem entregar o projeto a uma fundação de software independente, onde seu desenvolvimento será realizado por voluntários.

Finalmente se você estiver interessado em saber mais sobre isso você deve saber que os desenvolvimentos do projeto são distribuídos sob a licença Apache 2.0 e você pode consultá-los no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.