| Carbon | ||
|---|---|---|
![]() | ||
|
Google github.com/carbon-language | ||
| Información general | ||
| Extensiones comunes | carbon y co2 | |
| Apareció en | 27 de abril de 2020 | |
| Diseñado por | ||
| Influido por | C++, Rust, Zig, Haskell, Kotlin, Swift[1] | |
| Licencia | Apache-2.0-with-LLVM-Exception | |
Carbon es un lenguaje de programación experimental diseñado para la interoperabilidad con C++.[2] El proyecto es de software de código abierto y fue iniciado en Google. El ingeniero de Google Chandler Carruth presentó por primera vez Carbon en la conferencia CppNorth en Toronto en julio de 2022. Declaró que Carbon fue creado para ser un sucesor de C++.[3][1][4] Se espera que el lenguaje tenga una versión experimental MVP 0.1 no antes de finales de 2026 y una versión 1.0 lista para producción después de 2028.[5]
El lenguaje pretende corregir varias deficiencias percibidas de C++[6] pero, por lo demás, proporciona un conjunto de características similar. Los principales objetivos del lenguaje son la legibilidad y la "interoperabilidad bidireccional" (que permite al usuario incluir código C++ en el archivo Carbon), en contraposición al uso de un nuevo lenguaje como Rust, que, aunque está influido por C++, no es compatible en ambos sentidos con los programas escritos en C++. Los cambios en el lenguaje serán decididos por los responsables de Carbon.[7][8][9][10] Pretende construirse sobre el ecosistema de C++ de forma análoga a la relación entre TypeScript y JavaScript, o entre Kotlin y Java.[2]
Los documentos, el diseño, la implementación y las herramientas relacionadas de Carbon están alojados en GitHub bajo la licencia Apache-2.0 con excepciones de LLVM.[11]
Ejemplo
editarEl siguiente ejemplo muestra cómo podría escribirse un programa en Carbon y en C++:[12]
| Carbon | C++ |
|---|---|
package Geometry;
import Math;
class Circle {
var radius: f32;
}
fn PrintTotalArea(circles: Slice(Circle)) {
var area: f32 = 0;
for (circ: Circle in circles) {
area += Math.Pi * circ.radius * circ.radius;
}
Print("Total area: {0}", area);
}
fn Main(args: Slice(StringView)) -> i32 {
// A dynamically sized array, like `std::vector`.
var circles: Array(Circle) = ({.radius = 1.0}, {.radius = 2.0});
// Implicitly converts `Array` to `Slice`.
PrintTotalArea(circles);
return 0;
}
|
import std;
using std::span;
using std::vector;
struct Circle {
float radius;
};
void printTotalArea(span<Circle> circles) {
float area = 0.0f;
for (const Circle& circ : circles) {
area += std::numbers::pi * circ.radius * circ.radius;
}
std::println("Total area: {}", area);
}
int main(int argc, char* argv[]) {
vector<Circle> circles{{.radius = 1.0f}, {.radius = 2.0f}};
// Implicitly converts `vector` to `span`.
printTotalArea(circles);
return 0;
}
|
Véase también
editarReferencias
editar- ↑ a b «Carbon Language: An experimental successor to C++ - Chandler Carruth - CppNorth 2022». CppNorth. 22 de julio de 2022 – vía YouTube.
- ↑ a b «README». GitHub. Consultado el 6 de septiembre de 2023. «It is designed around interoperability with C++ as well as large-scale adoption and migration for existing C++ codebases and developers.»
- ↑ «Scheduled events for Tuesday, July 19, 09:00 - 10:30». CppNorth, The Canadian C++ Conference, 17–20 de julio de 2022. CppNorth. Consultado el 21 de julio de 2022 – vía Sched.com.
- ↑ Bradshaw, Kyle (19 de julio de 2022). «Carbon, a new programming language from Google, aims to be C++ successor». 9to5Google.
- ↑ «Carbon Language: Roadmap». carbon-language. 11 de enero de 2024. Consultado el 18 de enero de 2024.
- ↑ «Difficulties improving C++». Repositorio carbon-language/carbon-lang. Google. 21 de julio de 2022 – vía GitHub.
- ↑ Carruth, Chandler; Ross-Perkins, Jon; Riley, Matthew; Hummert, Sidney (23 de julio de 2022). «Evolution and governance». Repositorio carbon-language/carbon-lang. Google – vía GitHub.
- ↑ Illidge, Myles (21 de julio de 2022). «Google's Carbon programming language aims to replace C++». MyBroadband.
- ↑ Jackson, Joab (20 de julio de 2022). «Google Launches Carbon, an Experimental Replacement for C++». The New Stack.
- ↑ Mustafa, Onsa (20 de julio de 2022). «Carbon, A New Programming Language from Google As A C++ Successor». PhoneWorld.
- ↑ «carbon-lang/LICENSE». GitHub. 16 de junio de 2020. Consultado el 24 de julio de 2022.
- ↑ «carbon-lang/docs/images/snippets.md at trunk · carbon-language/carbon-lang». GitHub (en inglés). Consultado el 16 de diciembre de 2023.
Enlaces externos
editar- Esta obra contiene una traducción derivada de «Carbon (programming language)» de Wikipedia en inglés, concretamente de esta versión del 26 de abril de 2026, publicada por sus editores bajo la Licencia de documentación libre de GNU y la Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.
Carbon en GitHub.
