El pasado mes de julio, el ingeniero de Google Chandler Carruth dio a conocer en Toronto un nuevo lenguaje de programación con el nombre de Carbon. Un lenguaje experimental de propósito general. Una alternativa al popular C++, como dicen muchos. Lo hizo en CppNorth, una conferencia que reúne a desarrolladores de software para hablar precisamente sobre C++, uno de los lenguajes de programación más populares y digno heredero de C.
C++ fue creado por el danés Bjarne Stroustrup. Empezó en 1979 con la intención de mejorar el lenguaje C y hacerlo más rápido y práctico para sus necesidades mientras trabajaba en AT&T Bell Labs en tareas relacionadas con UNIX. El resultado vio la luz en 1985. Ese año publicó la primera edición del libro The C++ Programming Language, así como la implementación comercial de C++. En 1989 salía la segunda versión. Y en 1998, la ISO aprobaba su primera estandarización.
Desde entonces, C++ siempre ha estado, más arriba o más abajo, entre los lenguajes de programación más utilizados en todo el mundo. En el último ranking de TIOBE, ocupaba la posición 4 (septiembre de 2022), misma posición que ocupaba un año antes. Solo por debajo de Python, C y Java. ¿Y por qué es tan popular? Velocidad, rendimiento y más de 40 años estando ahí. Encontramos C++ en dispositivos IoT, Google Chrome, Mozilla Firefox, Unreal Engine y en productos como los de Adobe. También está presente en Spotify, YouTube, Amazon, Windows, Office, Google, Twitter o MySQL. La lista es interminable.
Google y sus lenguajes de programación
No es la primera vez que Google anuncia su propio lenguaje de programación. En su día a día trabaja con lenguajes como JavaScript, Java, Python o PHP, pero al mismo tiempo ha creado sus propios lenguajes de programación o ha procurado que sean otros lenguajes los protagonistas. Los casos más conocidos son Kotlin, la alternativa a Java, Go, un lenguaje inspirado en C y Dart, un intento de hacer sombra a JavaScript. El primero lo encontramos en el puesto 34 de lenguajes más populares según TIOBE. Por su parte, Go puede presumir de estar ya en la posición 12 de este índice. Y Dart está por delante de Kotlin, en el puesto 32.
El apoyo a Kotlin surge de la necesidad de Google de dejar de depender de Java. Android depende mucho de este lenguaje tan popular, tanto en su código como en las aplicaciones creadas para esta plataforma. Gracias a sus características, desarrolladores de todo el mundo decidieron iniciarse en el mundo de las aplicaciones para Android. Pero a nivel legal, Google necesita alejarse de Java porque es propiedad de Oracle. Lo que ha ocasionado que ambas compañías se vean en los tribunales.
Sin embargo, el episodio más reciente de este enfrentamiento, en abril de 2021, permite a Google seguir usando Java en el código de Android y en sus aplicaciones, propias y de terceros. Lo que ha parado en parte el apoyo a Kotlin, que fue creado por JetBrains pero que ha tenido a Google como mecenas. Con todo, la herramienta de desarrollo Android Studio permite trabajar tanto con Java como con Kotlin.
Por su parte, Go (antes Golang) es el primer intento de Google para hacerle sombra a C++. Y aunque ha logrado popularidad, todavía está algo lejos de éste en las listas de lenguajes más populares. Los creadores de Go son Rob Pike, Ken Thomson, y Robert Griesemer, que crearon este nuevo lenguaje a petición de Google. En palabras del gigante de internet, está diseñado para crear “software simple, confiable y eficiente”.
En el caso de Dart, lenguaje de programación creado por Google y anunciado en 2011 como una alternativa más moderna para acabar con JavaScript, no acabó de cuajar. O mejor dicho, ha tenido mejores contendientes como TypeScript, la propuesta de Microsoft que ha logrado estar cara a cara frente a JavaScript. Y que en según qué listas de popularidad, ya está por delante. Así que Dart sigue ahí pero sin lograr su propósito.
¿Por qué Google lanza Carbon?
Según sus defensores, Go compila más rápido que C++, reduce los errores y dependencias y gestiona mejor el uso de memoria. Pero no es fácil hacerle frente a un lenguaje de programación con más de 40 años de vida y que tiene apoyos de grandes como Microsoft, Meta (antes Facebook) o la propia NASA. Y como comenté antes, la propia Google lo utiliza en sus principales productos, como el buscador Google, YouTube o su navegador Google Chrome.
Carbon se anunció este mes de julio de 2022. Pero la versión 1.0 de Carbon no estará disponible hasta 2024 o 2025. Es decir, que por ahora, para hacer frente a C++ está Go. Pero la idea es que, a futuro, se produzca una transición. Para convencer a los desarrolladores, Google usó de ejemplos la buena acogida que ha tenido TypeScript, de Microsoft, como alternativa mejorada a JavaScript. O el éxito de Swift, de Apple, como lenguaje alternativo a Objective C, el empleado durante años para desarrollar software para el ecosistema de la manzana.
Así, si C fue perfeccionado con C++, Google quiere hacer lo propio con Carbon. La pregunta es, ¿por qué? Uno de los argumentos es que la sintaxis de C y C++ es demasiado enrevesada. Lo que requiere un periodo de aprendizaje previo. Y que genera enormes cantidades de líneas de código que podrían reducirse con lenguajes más simples. Otro argumento es que las herramientas de desarrollo para lidiar con C++ podrían ser más sencillas. Y aunque existen soluciones como Microsoft Visual Studio en las que Microsoft ha solventado ese problema, es una herramienta propietaria.
Un futuro que está por ver
Para luchar contra C++, la propuesta de Google, Carbon, ofrece compatibilidad con el código C++ actual, un desarrollo de código más sencillo y una migración sin sorpresas. Todo ello con constantes guiños a Rust, un lenguaje de programación surgido en 2010 con licencia MIT y Apache y que está gestionado por su propia fundación. Precisamente, Rust es la alternativa que va en cabeza, en la carrera por desbancar C++. Y es que en los últimos años ha sido adoptada por empresas como Microsoft, Meta (antes Facebook), Amazon o la propia Google.
Que Carbon logre su objetivo dependerá de muchos factores. Las apuestas de Google por lenguajes de programación propios o de terceros no han acabado bien. Y todavía está en fase de desarrollo. Así que todo lo que digamos sobre este nuevo lenguaje es más una teoría que algo tangible como ya ocurre con Rust. ¿Aprenderá Google de sus errores pasados? Lo que está claro es que serán las comunidades de desarrolladores quienes tengan la última palabra. Así que tendremos que esperar a los rankings de lenguajes de los próximos años.