Conteúdo[Esconder][Mostrar]
Em um esforço para substituir o venerável mas lento C++, os pesquisadores do Google introduziram uma nova linguagem de programação de código aberto “experimental” apelidada de Carbon.
O Carbon pode servir como uma linguagem sucessora do C++, que fornece um ponto de partida simples para desenvolvedores de uma linguagem mais nova que aborda conceitos de desenvolvimento contemporâneos, como segurança de memória e genéricos.
Isso seria semelhante a como a Microsoft construiu o Typescript para atualizar JavaScript e Kotlin para fortalecer os pontos fracos em Java.
O Google desenvolveu várias linguagens de programação ao longo dos anos, algumas das quais ganharam notoriedade e destaque significativos.
Por exemplo, Golang (ou apenas Go) foi desenvolvido para facilitar a criação de servidores e sistemas distribuídos e posteriormente foi adotado pelo público em geral.
O dardo linguagem de programação, que foi criado como um substituto do JavaScript, não se tornou conhecido até o lançamento do Flutter.
Chandler Carruth, funcionário do Google, apresentou sua ideia para uma nova linguagem de programação chamada Carbon em 19 de julho de 2022, na convenção Cpp North em Toronto, de acordo com Conor Hoekstra, que compareceu e gravou os slides.
Para definir o cenário, Carruth demonstrou como várias das linguagens de programação mais populares da atualidade tiveram descendentes que permitem que os desenvolvedores sejam produtivos rapidamente e também se beneficiem do design de linguagem contemporânea.
Vamos começar com uma introdução geral da linguagem de programação Carbon, incluindo seus recursos, o propósito de sua invenção pelo Google e muito mais.
Introdução à linguagem de programação Carbon
Em 19 de julho de 2022, o Google revelou Carbon como a mais nova linguagem de programação criada. Destinava-se a substituir C++ experimentalmente.
Graças a um sistema de genéricos, o que elimina a necessidade de verificar novamente o código para cada instanciação, o Carbon será construído com base em conceitos de programação modernos.
Até o final do ano, o projeto planeja fornecer uma versão operacional básica (versão 0.1).
A integridade da memória é um elemento crucial que está faltando no C++. Uma das principais fontes de falhas de segurança são os problemas de acesso à memória.
O desenvolvimento de verificações de limites dinâmicos, maior rastreamento de estados não inicializados e um modo de compilação de depuração padrão completo são todos objetivos da equipe do Carbon. Os criadores pretendem criar um subconjunto de Carbono seguro ao longo do tempo.
No entanto, a seguir estão algumas características cruciais da nova linguagem de programação:
- Para nomear tipos, use expressões.
- Genéricos fortes com verificações de definição
- Os tipos realizam especificamente interfaces
- frases de introdução e gramática básica
- Ponteiros permitem acesso irrestrito e mutação.
- Os valores para os parâmetros de entrada da função são somente leitura.
- O namespace raiz é o pacote.
- As APIs podem ser importadas usando seus nomes de pacote.
- Um método é declarado por meio de um parâmetro de objeto explícito.
- As classes são finais por padrão; há apenas uma herança
Características do Carbono
Moderno e em desenvolvimento
- As atualizações entre as versões Carbon são simples e baseadas em ferramentas.
- Bases de linguagem fortes, especialmente se você usou C++, e simples de aprender
- Fundações mais seguras e uma abordagem passo a passo para um subconjunto com memória segura
Congratulando-se com a comunidade de código aberto
- Uma comunidade que se esforça para ser calorosa, receptiva e convidativa
- Seus objetivos e prioridades são uma governança distinta e forte
- Uma estratégia completa com um compilador, bibliotecas, documentação, ferramentas, gerenciamento de pacotes e muito mais
Rápido e compatível com C++
- Trabalhe junto com o Código C ++ você já tem, incluindo herança e modelos
- Com LLVM, desempenho comparável ao C++ e acesso de baixo nível a bits e endereços
- Compilações rápidas, escaláveis e compatíveis com seus sistemas de compilação C++ existentes
Por que o Google criou a linguagem de programação Carbon?
O software de desempenho crítico continua sendo escrito principalmente em C++, que possui bases de código e investimentos enormes e em expansão.
No entanto, está tendo problemas para avançar e atender às demandas dos desenvolvedores, conforme mencionado acima, em grande parte devido ao acúmulo de anos de dívida tecnológica.
É extremamente difícil melhorar incrementalmente o C++ devido à dívida técnica acumulada, bem como às dificuldades com seu processo de evolução.
A abordagem ideal para resolver esses problemas é começar com uma base de linguagem forte, como um sistema genérico contemporâneo, estrutura de código modular e sintaxe consistente e direta, em vez de herdar diretamente a tradição de C ou C++.
Go, Swift, Kotlin, Rust e muitas outras linguagens contemporâneas já oferecem uma excelente experiência de desenvolvimento. Os desenvolvedores que são capazes de usar uma dessas linguagens atuais devem fazê-lo.
Infelizmente, a adoção e a migração do C++ são severamente prejudicadas pelos designs dessas linguagens. Esses obstáculos incluem sobrecarga de desempenho e modificações no design idiomático do software.
Carbon não é uma tentativa de melhorar gradualmente o C++; em vez disso, é uma estratégia de linguagem sucessora. Seu foco está na interoperabilidade C++, bem como ampla aceitação e migração para desenvolvedores e bases de código que atualmente usam C++.
Uma linguagem de substituição C++ deve ter:
- O desempenho comparável ao C++ é uma característica crucial para os desenvolvedores.
- Uma curva de aprendizado gerenciável e nível de familiaridade para programadores C++
- Migração que é escalável e inclui alguma tradução de código C++ idiomático de origem para origem.
- Expressividade e suporte semelhantes para a arquitetura e design do software atual.
- Interoperabilidade com C++ que é perfeita e bidirecional, permitindo que qualquer biblioteca adote Carbon sem ter que portar o resto da pilha.
Com essa estratégia, o Google se soma ao ecossistema já existente para C++ e incorpora investimentos atuais, bases de código e comunidades de desenvolvimento.
Algumas linguagens adotaram essa abordagem para vários ecossistemas, e o Carbon busca desempenhar uma função semelhante ao C++ nessas situações:
- Java-Kotlin
- JavaScript – TypeScript
- C++ – Carbono
Código C++ VS Carbon
O Carbon deve ter uma curva de aprendizado baixa se você já for um desenvolvedor C++. É composto por um conjunto fixo de construções gramaticais que devem soar naturais e ser simples de ler e compreender.
Um exemplo de código C++:
Este código Carbon corresponde a:
Carbono vs Ferrugem
Outra linguagem contemporânea projetada expressamente para atender aos requisitos de aplicativos de desempenho com segurança de memória é chamada Rust.
Então, por que não simplesmente usar Rust?
Enquanto alguns argumentam que Rust, que começou como um projeto da Mozilla e posteriormente cresceu para ter um público considerável, é um sucessor do C++, Carruth duvida que o paralelo ainda seja válido.
Rust é, sem dúvida, uma linguagem fantástica para começar um novo projeto, mas como não tem a “interoperabilidade bidirecional” de linguagens como Java e Kotlin, é um desafio fazer a transição para ela gradualmente.
Carruth deu uma palestra no CPP North e incentivou as pessoas que já usavam Rust a continuarem usando. Os desenvolvedores que já possuem bases de código C++ consideráveis que são difíceis de converter para Rust devem usar o Carbon.
Em particular, Carbon é o que Carruth chamou de “linguagem sucessora”, que é construída em cima de um ecossistema existente, neste caso C++.
Para esse propósito, o Carbon deve ser totalmente compatível com o código C++ atual, mesmo que tenha muitos objetivos com Rust, como auxiliar os programadores na criação de “aplicativos de desempenho crítico”.
Além disso, pretende-se tornar a mudança de C++ para Carbon o mais simples possível.
Conclusão
Por fim, os criadores da linguagem Carbon fizeram um esforço para prestar atenção ao processo de criação. O código do projeto está disponível para solicitação e armazenado abertamente no Github, e sua cultura é definida como inclusiva e aberta tanto para cidadãos privados quanto para o setor de TI.
A equipe do Carbon pensou que o Carbon precisava ser um projeto autônomo impulsionado pela comunidade e não apenas um projeto alimentado pelo Google para se desenvolver no futuro.
Caruth acrescentou que, apesar do interesse de várias empresas de TI, esse conceito ainda está em fase experimental.
Deixe um comentário