Carbon: a linguagem de programação que irá substituí o C++

COMPARTILHAR:

No evento C++ North desta semana em Toronto, o engenheiro de software do Google, Chandler Caruth, apresentou a linguagem de programação Carbon, conhecida como “sucessor experimental do C++”, e despertou muito interesse na comunidade C++.

“Entendemos o interesse da comunidade nesta palestra. Vamos lançar a gravação em ritmo acelerado”, disse o organizador da conferência no Twitter. Carruth é o líder técnico das principais linguagens de programação e Language Evolution do Google, representa o Google no comitê de padrões C++ e é um colaborador do LLVM e do Clang.

Os desenvolvedores da Carbon explicaram que, embora o C++ seja “a linguagem dominante para software de desempenho crítico”, seu legado e dívida técnica significam que “é extremamente difícil melhorar incrementalmente o C++”.

Uma solução é migrar para outras linguagens como Rust, Kotlin, Swift ou Go, mas essas linguagens são difíceis de migrar e em alguns casos apresentam sobrecarga de desempenho. Carbon é uma nova linguagem projetada para corresponder ao desempenho de C++, mantendo “interoperabilidade bidirecional perfeita” e uma curva de aprendizado suave para desenvolvedores de C++.

A equipe também promete “algum grau de conversão de fonte para fonte” do código C++. O projeto tem semelhanças com o TypeScript para desenvolvedores de JavaScript ou Kotlin para desenvolvedores de Java, embora a comparação não seja exata. O Carbon foi projetado para interoperar com o código C++ e simplificar as migrações. A cadeia de ferramentas Carbon dará suporte à compilação de código C++.

codigo em carbon
Um pedaço de código em Carbon

Por que C++ é tão difícil de melhorar? O próprio C++ começou como um fork de C, e a linguagem C tem 50 anos, então não é surpresa que haja muito legado. De acordo com a equipe do Carbon, ao longo do tempo, os designers de C++ adicionaram, em vez de substituir, recursos de linguagem, criando interações complexas de recursos. Manter a compatibilidade binária é outro problema herdado. Além disso, o comitê evolutivo do C++ e o processo são “padronizados em vez de orientados ao design”, lentos e às vezes impossíveis de tomar decisões.

Linguagem de programação Carbon

A linguagem de programação Carbon está comprometida em contornar esses problemas com uma nova abordagem baseada em princípios de código aberto. “Vamos até tentar fechar uma enorme lacuna no ecossistema C++ integrando o gerenciador de pacotes”, disse o documento. O roteiro atual visa concluir a versão 0.1 da linguagem este ano, a versão 0.2 em 2023 e a versão 1.0 em 2024 ou 2025.

A linguagem Carbon parecerá familiar para os desenvolvedores C++ e C, embora existam muitas diferenças. As funções são declaradas com a palavra-chave fn e as variáveis ​​são declaradas com var. Existem também tuplas fortemente tipadas. A palavra-chave auto suporta inferência de tipo. Os ponteiros são suportados, mas a aritmética de ponteiros não; as únicas operações de ponteiro são endereços e desreferências. As classes oferecem suporte à herança única, mas não à herança múltipla.

A segurança da memória é uma consideração importante, mas não o objetivo original. “A diferença entre a abordagem do Rust e a do Carbon é que o Rust começa com segurança, enquanto o Carbon começa com a migração”, diz o documento. A abordagem é simplificar a linguagem para “abrir espaço para recursos de segurança” e depois “reprojetar a base para modelar e implementar a segurança”.

O projeto está licenciado sob Apache 2, com exceção do LLVM. De acordo com a equipe, “Planejamos criar uma fundação de código aberto e transferir todos os direitos relacionados ao Carbono para ela; nosso objetivo é ter uma configuração básica semelhante a outros projetos de código aberto como LLVM ou Kubernetes”. Os colaboradores concordam com o CLA (Contributor License Agreement) do Google, o que pode ser um problema para alguns. O Google também está financiando a infraestrutura de carbon.

As perguntas frequentes abordam (FAQ) perguntas comuns, como por que não usar o Rust? “Se você quer usar Rust, e é técnica e economicamente viável para o seu projeto, então você deve usar Rust”, é a resposta.

No entanto, esse problema de Rust está no centro do sucesso da Carbon.

“Rust (do meu ponto de vista tendencioso) está se tornando a linguagem padrão de baixo nível, então não estou muito convencido de que Rust-but-with-OO seja um ponto de venda suficiente”, disse um desenvolvedor ao Hacker News.

Outro disse:

“Provavelmente há mais projetos C++ iniciados todos os dias do que projetos Rust. Portanto, qualquer coisa que vá além do C++ e seja 100% interoperável é uma boa notícia”.

Leia também: Linguagens de programação com slogans sinceros

COMPARTILHAR:
brayan

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.