Cel: +52 (55) 3040-5403 Correo: mariana.velazquez@recluit.com
post-tittle

¿Qué es Carbon?

Por: Reclu IT

23 de marzo de 2023

Frustrados con la lenta evolución de C++, los ingenieros de Google lanzaron un nuevo lenguaje de programación de código abierto «experimental» llamado Carbon, que ven como un posible sucesor de C++.

Así como Microsoft creó Typescript para actualizar JavaScript y Kotlin se creó para abordar las deficiencias de Java, Carbon puede ser el sucesor de C++, un lenguaje que ofrece a los desarrolladores una transición fácil a un nuevo lenguaje que cumple con los conceptos de desarrollo modernos, como la seguridad de la memoria y los genéricos ( generalización). El ingeniero de Google, Chandler Carruth, presentó el lenguaje en la conferencia CPP North C++ en Toronto.

Como explica Carruth en GitHub, C++ ha sido durante mucho tiempo el lenguaje elegido para crear aplicaciones críticas para el rendimiento. C++ tiene una serie de problemas que obstaculizan a los desarrolladores modernos. Ha acumulado décadas de problemas técnicos, trayendo consigo muchas de las prácticas heredadas que formaban parte de su lenguaje predecesor, C. Los usuarios de C++ priorizan la compatibilidad con versiones anteriores para continuar apoyando proyectos ampliamente utilizados como Linux y su ecosistema de administración de paquetes, dice Carruth.

La evolución del lenguaje también se ve obstaculizada por el proceso de comité burocrático, que se centra en la estandarización en lugar del diseño, lo que puede dificultar la adición de nuevas funciones. C++ tiene en gran medida un proceso de desarrollo aislado, en el que un comité selecto toma las decisiones importantes, en un proceso en cascada que puede llevar años.

Currut quiere construir Carbon en un entorno más abierto y liderado por la comunidad. El proyecto será apoyado en GitHub y discutido en Discord.

Aunque Carbon comenzó como un proyecto interno de Google, el equipo de desarrollo quiere reducir las contribuciones de Google o de cualquier otra empresa individual a menos del 50 % para fin de año. En última instancia, quieren entregar el proyecto a una fundación de software independiente, donde su desarrollo estará a cargo de voluntarios.

Los desarrolladores planean lanzar la versión de trabajo principal («0.1») a finales de año. Carbon se construirá en torno a principios de programación modernos, incluido un marco común que elimina la necesidad de verificar y volver a verificar el código para cada instancia.

Otra característica esencial de la que carece C++ es la seguridad de la memoria. Los errores de acceso a la memoria se encuentran entre los mayores culpables de seguridad. Los desarrolladores de Carbon buscarán formas de rastrear mejor los estados no inicializados, desarrollar API y modismos que admitan verificaciones de límites dinámicos y crear un modo de compilación de depuración predeterminado completo. Eventualmente, los diseñadores planean crear un subconjunto seguro de Carbon.

Según la documentación, Carbon soportará:

  • Software crítico para la productividad.
  • Evolución del software y lenguaje.
  • Código que es fácil de leer, comprender y escribir.
  • Mecanismos prácticos de seguridad y control.
  • Desarrollo rápido y escalable.
  • Plataformas de SO modernas, arquitecturas de hardware y entornos.
  • Interoperabilidad y migración desde código C++ existente.
  • El equipo de desarrollo también creará un administrador de paquetes incorporado, algo que realmente le falta a C++.

Beneficios de introducir carbon en un proyecto de C++

Algunos de estos se recogen del blog del Erik Engheim, desarrollador apasionado por la experiencia de usuario, la programación de Julia, la ciencia, la enseñanza, la lectura y la escritura.

Captura de errores mediante la migración a carbon

Cuando transfirí el código Objective-C a Swift, obtuve una gran cantidad de ayuda del estricto verificador de tipos de Swift. A veces, sentí que el verificador de tipo Swift era como un comandante del ejército, pero fue brillante para descubrir errores furtivos que pasó por alto el verificador de tipo Objective-C más arrogante. Eso no era simplemente una cuestión de usar el tipo equivocado. Mucho más involucraba capturar variables que no habían sido inicializadas o inicializadas en el orden incorrecto. Podría ser un código que rara vez había tomado rutas de código que el sistema de tipos advertiría que causaría fallas.

Una vez que comienza a ver estos beneficios, se engancha con la migración. Sospecho que muchos desarrolladores de C++, una vez que prueben Carbon, se sentirán atraídos por una experiencia similar. Al ver cómo un nuevo lenguaje puede ayudar a detectar errores y mejorar la calidad de su código, se convencerán.

Expandiendo la base de desarrolladores

Otro factor que noté al migrar a Swift es que amplió el grupo de personas interesadas y capaces de contribuir a la base de código. Swift fue más divertido y más identificable para muchos desarrolladores. También era más fácil de aprender. Eso significó que más personas se unieron al proyecto y se motivaron más.

Seamos realistas: C ++ no está realmente en la cima de la agenda de las personas hoy en día. Se ha convertido en un lenguaje experto peculiar que requiere años de entrenamiento para dominarlo por completo. Un lenguaje como Carbon puede dar vida a proyectos estancados que los desarrolladores han estado evitando.

Seguridad de la memoria

Realiza un mejor seguimiento de los estados no inicializados, aumentar la aplicación de la inicialización y reforzar los errores de inicialización. Diseño de API y modismos fundamentales para admitir comprobaciones de límites dinámicos en compilaciones reforzadas y de depuración. Tener un modo de compilación de depuración predeterminado que sea más completo que los modos de compilación existentes de C++.

imagen: @dashu83

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

Campos obligatorios(*)
post-tittle

¿Qué es Carbon?

Por: Reclu IT

23 de marzo de 2023

Frustrados con la lenta evolución de C++, los ingenieros de Google lanzaron un nuevo lenguaje de programación de código abierto «experimental» llamado Carbon, que ven como un posible sucesor de C++.

Así como Microsoft creó Typescript para actualizar JavaScript y Kotlin se creó para abordar las deficiencias de Java, Carbon puede ser el sucesor de C++, un lenguaje que ofrece a los desarrolladores una transición fácil a un nuevo lenguaje que cumple con los conceptos de desarrollo modernos, como la seguridad de la memoria y los genéricos ( generalización). El ingeniero de Google, Chandler Carruth, presentó el lenguaje en la conferencia CPP North C++ en Toronto.

Como explica Carruth en GitHub, C++ ha sido durante mucho tiempo el lenguaje elegido para crear aplicaciones críticas para el rendimiento. C++ tiene una serie de problemas que obstaculizan a los desarrolladores modernos. Ha acumulado décadas de problemas técnicos, trayendo consigo muchas de las prácticas heredadas que formaban parte de su lenguaje predecesor, C. Los usuarios de C++ priorizan la compatibilidad con versiones anteriores para continuar apoyando proyectos ampliamente utilizados como Linux y su ecosistema de administración de paquetes, dice Carruth.

La evolución del lenguaje también se ve obstaculizada por el proceso de comité burocrático, que se centra en la estandarización en lugar del diseño, lo que puede dificultar la adición de nuevas funciones. C++ tiene en gran medida un proceso de desarrollo aislado, en el que un comité selecto toma las decisiones importantes, en un proceso en cascada que puede llevar años.

Currut quiere construir Carbon en un entorno más abierto y liderado por la comunidad. El proyecto será apoyado en GitHub y discutido en Discord.

Aunque Carbon comenzó como un proyecto interno de Google, el equipo de desarrollo quiere reducir las contribuciones de Google o de cualquier otra empresa individual a menos del 50 % para fin de año. En última instancia, quieren entregar el proyecto a una fundación de software independiente, donde su desarrollo estará a cargo de voluntarios.

Los desarrolladores planean lanzar la versión de trabajo principal («0.1») a finales de año. Carbon se construirá en torno a principios de programación modernos, incluido un marco común que elimina la necesidad de verificar y volver a verificar el código para cada instancia.

Otra característica esencial de la que carece C++ es la seguridad de la memoria. Los errores de acceso a la memoria se encuentran entre los mayores culpables de seguridad. Los desarrolladores de Carbon buscarán formas de rastrear mejor los estados no inicializados, desarrollar API y modismos que admitan verificaciones de límites dinámicos y crear un modo de compilación de depuración predeterminado completo. Eventualmente, los diseñadores planean crear un subconjunto seguro de Carbon.

Según la documentación, Carbon soportará:

  • Software crítico para la productividad.
  • Evolución del software y lenguaje.
  • Código que es fácil de leer, comprender y escribir.
  • Mecanismos prácticos de seguridad y control.
  • Desarrollo rápido y escalable.
  • Plataformas de SO modernas, arquitecturas de hardware y entornos.
  • Interoperabilidad y migración desde código C++ existente.
  • El equipo de desarrollo también creará un administrador de paquetes incorporado, algo que realmente le falta a C++.

Beneficios de introducir carbon en un proyecto de C++

Algunos de estos se recogen del blog del Erik Engheim, desarrollador apasionado por la experiencia de usuario, la programación de Julia, la ciencia, la enseñanza, la lectura y la escritura.

Captura de errores mediante la migración a carbon

Cuando transfirí el código Objective-C a Swift, obtuve una gran cantidad de ayuda del estricto verificador de tipos de Swift. A veces, sentí que el verificador de tipo Swift era como un comandante del ejército, pero fue brillante para descubrir errores furtivos que pasó por alto el verificador de tipo Objective-C más arrogante. Eso no era simplemente una cuestión de usar el tipo equivocado. Mucho más involucraba capturar variables que no habían sido inicializadas o inicializadas en el orden incorrecto. Podría ser un código que rara vez había tomado rutas de código que el sistema de tipos advertiría que causaría fallas.

Una vez que comienza a ver estos beneficios, se engancha con la migración. Sospecho que muchos desarrolladores de C++, una vez que prueben Carbon, se sentirán atraídos por una experiencia similar. Al ver cómo un nuevo lenguaje puede ayudar a detectar errores y mejorar la calidad de su código, se convencerán.

Expandiendo la base de desarrolladores

Otro factor que noté al migrar a Swift es que amplió el grupo de personas interesadas y capaces de contribuir a la base de código. Swift fue más divertido y más identificable para muchos desarrolladores. También era más fácil de aprender. Eso significó que más personas se unieron al proyecto y se motivaron más.

Seamos realistas: C ++ no está realmente en la cima de la agenda de las personas hoy en día. Se ha convertido en un lenguaje experto peculiar que requiere años de entrenamiento para dominarlo por completo. Un lenguaje como Carbon puede dar vida a proyectos estancados que los desarrolladores han estado evitando.

Seguridad de la memoria

Realiza un mejor seguimiento de los estados no inicializados, aumentar la aplicación de la inicialización y reforzar los errores de inicialización. Diseño de API y modismos fundamentales para admitir comprobaciones de límites dinámicos en compilaciones reforzadas y de depuración. Tener un modo de compilación de depuración predeterminado que sea más completo que los modos de compilación existentes de C++.

imagen: @dashu83

Deja tu comentario

Tu dirección de correo electrónico no será publicada.

Campos obligatorios(*)

Política de privacidad de www.recluit.mx

Para recibir la información sobre sus Datos Personales, la finalidad y las partes con las que se comparte,
contacten con el Propietario.