Índice analítico[Ocultar][Mostrar]
Nun esforzo por substituír o venerable pero lento C++, os investigadores de Google presentaron unha nova linguaxe de programación "experimental" de código aberto chamado Carbon.
Carbon podería servir como unha linguaxe sucesora de C++, que proporciona un sinxelo punto de partida para os desenvolvedores a unha linguaxe máis nova que aborda conceptos de desenvolvemento contemporáneos como a seguridade da memoria e os xenéricos.
Isto sería similar a como Microsoft construíu Typescript para actualizar JavaScript e Kotlin para reforzar as debilidades en Java.
Google desenvolveu unha serie de linguaxes de programación ao longo dos anos, algúns dos cales gañaron unha importante notoriedade e protagonismo.
Por exemplo, Golang (ou simplemente Go) foi desenvolvido para facilitar a creación de servidores e sistemas distribuídos e, posteriormente, foi aceptado polo público en xeral.
O Dardo linguaxe de programación, que foi creado como un substituto de JavaScript, non se fixo ben coñecido ata o lanzamento de Flutter.
Chandler Carruth, un empregado de Google, presentou a súa idea para unha nova linguaxe de programación chamada Carbon o 19 de xullo de 2022 na convención Cpp North en Toronto. segundo Conor Hoekstra, que asistiron e gravou as diapositivas.
Para establecer o escenario, Carruth demostrou como varias das linguaxes de programación máis populares dos nosos días tiñan descendentes que permiten aos desenvolvedores ser produtivos rapidamente e tamén beneficiarse do deseño da linguaxe contemporánea.
Comecemos cunha introdución xeral da linguaxe de programación Carbon, incluíndo as súas características, o propósito da invención de Google e moito máis.
Introdución á linguaxe de programación Carbon
O 19 de xullo de 2022, Google revelou Carbon como a linguaxe de programación máis nova que creara. Pretendíase substituír C++ experimentalmente.
Grazas a un sistema xenérico, o que elimina a necesidade de verificar dúas veces o código para cada instanciación, Carbon construirase sobre unha base de conceptos de programación modernos.
Para finais de ano, o deseño prevé proporcionar unha versión operativa básica (versión 0.1).
A integridade da memoria é un elemento crucial que falta en C++. Unha das principais fontes de fallos de seguridade son os problemas de acceso á memoria.
O desenvolvemento de comprobacións de límites dinámicos, un maior seguimento dos estados non inicializados e un modo de compilación de depuración predeterminado completo son todos os obxectivos do equipo de Carbon. Os creadores pretenden crear un subconxunto de carbono seguro ao longo do tempo.
Non obstante, as seguintes son algunhas características cruciais da nova linguaxe de programación:
- Para nomear tipos, use expresións.
- Genéricos fortes con comprobacións de definición
- Tipos específicamente realizar interfaces
- frases introdutorias e gramática básica
- Os punteiros permiten o acceso e a mutación sen restricións.
- Os valores dos parámetros de entrada das funcións son de só lectura.
- O espazo de nomes raíz é o paquete.
- As API pódense importar usando os nomes dos seus paquetes.
- Un método declárase mediante un parámetro de obxecto explícito.
- As clases son definitivas por defecto; só hai unha herdanza
Características do carbono
Moderno e en desenvolvemento
- As actualizacións entre versións de Carbon son sinxelas e baseadas en ferramentas.
- Bases de linguaxe fortes, especialmente se usaches C++, e sinxelas de aprender
- Fundamentos máis seguros e un achegamento paso a paso a un subconxunto seguro para a memoria
Dando a benvida á comunidade de código aberto
- Unha comunidade que se esforza por ser cálida, acolledora e invitadora
- Os seus obxectivos e prioridades son unha gobernanza distinta e forte
- Unha estratexia todo en un cun compilador, bibliotecas, documentación, ferramentas, xestión de paquetes e moito máis
Rápido e compatible con C++
- Traballar xunto co Código C ++ xa tes, incluíndo a herdanza e os modelos
- Con LLVM, rendemento comparable ao C++ e acceso de baixo nivel a bits e enderezos
- Compilacións rápidas, escalables e compatibles cos seus sistemas de compilación C++ existentes
Por que Google creou a linguaxe de programación Carbon?
O software crítico para o rendemento segue a escribirse principalmente en C++, que ten bases de código e investimentos enormes e en expansión.
Non obstante, está a ter problemas para avanzar e satisfacer as demandas dos desenvolvedores, como se mencionou anteriormente, en gran parte debido a acumular anos de débeda tecnolóxica.
É extremadamente difícil mellorar gradualmente o C++ debido á débeda técnica que acumulou e ás dificultades co seu proceso de evolución.
O enfoque ideal para resolver estes problemas é comezar cunha base de linguaxe sólida, como un sistema xenérico contemporáneo, unha estrutura de código modular e unha sintaxe consistente e sinxela, en lugar de herdar directamente a tradición de C ou C++.
Go, Swift, Kotlin, Rust e moitos outros idiomas contemporáneos xa ofrecen unha excelente experiencia de desenvolvemento. Os desenvolvedores que sexan capaces de usar un destes idiomas actuais deberían facelo.
Desafortunadamente, a adopción e migración desde C++ vense gravemente obstaculizada polos deseños destas linguaxes. Estes obstáculos inclúen sobrecarga de rendemento e modificacións no deseño idiomático do software.
Carbon non é un intento de mellorar gradualmente C++; máis ben, é unha estratexia lingüística sucesora. O seu foco está na interoperabilidade de C++, así como na aceptación e migración xeneralizadas para os desenvolvedores e bases de código que utilizan actualmente C++.
Unha linguaxe de substitución C++ debe ter:
- Un rendemento comparable ao C++ é unha característica crucial para os desenvolvedores.
- Unha curva de aprendizaxe manexable e un nivel de familiaridade para os programadores de C++
- Migración escalable e que inclúe algunha tradución de código C++ idiomático de fonte a fonte.
- Similar expresividade e soporte para a arquitectura e deseño do software actual.
- Interoperabilidade con C++ que é perfecta e bidireccional, o que permite que calquera biblioteca adopte Carbon sen ter que portar o resto da pila.
Con esta estratexia, Google súmase ao ecosistema que xa existe para C++ e incorpora investimentos actuais, bases de código e comunidades de desenvolvemento.
Algunhas linguaxes adoptaron este enfoque para varios ecosistemas, e Carbon busca desempeñar unha función similar a C++ nestas situacións:
- Java - Kotlin
- JavaScript - TypeScript
- C++ - Carbono
C++ VS Código de carbono
Carbon debería ter unha curva de aprendizaxe baixa se xa es un programador de C++. Está composto por un conxunto fixo de construcións gramaticais que deben soar naturais e ser sinxelas de ler e comprender.
Un exemplo de código C++:
Este código de carbono corresponde a:
Carbono vs óxido
Outra linguaxe contemporánea deseñada expresamente para satisfacer os requisitos das aplicacións de rendemento seguras para a memoria chámase Rust.
Entón, por que non usar Rust?
Aínda que algúns argumentan que Rust, que comezou como un proxecto de Mozilla e que posteriormente creceu ata ter un número considerable de seguidores, é un sucesor de C++, Carruth dubida de que o paralelismo aínda sexa válido.
Rust é, sen dúbida, unha linguaxe fantástica coa que comezar un novo proxecto, pero como carece da "interoperabilidade bidireccional" de linguaxes como Java e Kotlin, é un reto facer a transición a ela gradualmente.
Carruth deu unha conferencia no CPP North e animou ás persoas que xa estaban usando Rust a seguir facéndoo. Os desenvolvedores que xa teñen bases de código C++ considerables que son un reto para converterse en Rust deben usar Carbon.
En particular, Carbon é o que Carruth chamou unha "linguaxe sucesora", que se constrúe sobre un ecosistema existente, neste caso C++.
Para iso, Carbon está destinado a ser completamente compatible co código C++ actual, aínda que teña moitos obxectivos con Rust, como axudar aos programadores a crear "aplicacións críticas para o rendemento".
Ademais, preténdese que o paso de C++ a Carbon sexa o máis sinxelo posible.
Conclusión
Finalmente, os creadores da lingua Carbon fixeron un esforzo por prestar atención ao proceso de creación. O código do proxecto está dispoñible para solicitar e almacenar abertamente Github, e a súa cultura defínese como inclusiva e aberta tanto á cidadanía como ao sector informático.
O equipo de Carbon pensou que Carbon debía ser un proxecto autónomo impulsado pola comunidade e non só un proxecto impulsado por Google para poder desenvolverse no futuro.
Caruth engadiu que a pesar do interese de varias empresas de TI, este concepto aínda está en fase experimental.
Deixe unha resposta