Lenguajes de programación: es hora de dejar de usar C y C++ para nuevos proyectos, dice Microsoft Azure CTO

0
6
Lenguajes de programación: es hora de dejar de usar C y C++ para nuevos proyectos, dice Microsoft Azure CTO

Imagen: Acuerdo/GETTY

Mark Russinovich, la oficina principal de tecnología (CTO) de Microsoft Azure, dice que los desarrolladores deben evitar el uso de lenguajes de programación C o C ++ en nuevos proyectos y, en su lugar, usar Rust debido a problemas de seguridad y confiabilidad.

Rust, que llegó a la versión 1.0 en 2020 y nació en Mozilla, ahora se usa dentro del Proyecto de código abierto de Android (AOSP), en Meta, en Amazon Web Services, en Microsoft para partes de Windows y Azure, en el kernel de Linux, y en muchos otros lugares.

Los ingenieros valoran sus “garantías de seguridad de la memoria”, que reducen la necesidad de administrar manualmente la memoria de un programa y, a su vez, reducen el riesgo de fallas de seguridad relacionadas con la memoria que sobrecargan los grandes proyectos escritos en “memoria insegura” C o C ++, que incluye Chrome, Android, el kernel de Linux y Windows.

También: Los lenguajes de programación más populares y dónde aprenderlos

Microsoft recalcó este punto en 2019 después de revelar que el 70 % de sus parches en los últimos 12 años se corrigieron por errores de seguridad de la memoria debido en gran parte a que Windows está escrito principalmente en C y C++. El equipo de Chrome de Google intervino con sus propios hallazgos en 2020, revelando que el 70% de todos los errores de seguridad graves en la base de código de Chrome eran errores de seguridad y administración de memoria. Está escrito principalmente en C++.

“A menos que suceda algo extraño, [Rust] llegará a 6.1”, escribió Torvalds, aparentemente poniendo fin a un debate de larga duración sobre Rust convirtiéndose en un segundo lenguaje para C para el kernel de Linux.

El único calificador del CTO de Azure sobre el uso de Rust es que era preferible a C y C+ para proyectos nuevos que requieren un lenguaje no recolectado de basura (GC). Los motores de GC manejan la gestión de la memoria. Go de Google es un lenguaje de recolección de basura, mientras que el proyecto Rust promueve que Rust no lo es. A los ingenieros de AWS les gusta Rust over Go debido a las eficiencias que ofrece sin GC.

“Hablando de idiomas, es hora de detener el inicio de nuevos proyectos en C/C++ y usar Rust para aquellos escenarios en los que se requiere un lenguaje que no sea GC. En aras de la seguridad y la confiabilidad, la industria debería declarar esos lenguajes como obsoletos. ”, escribió Russinovich.

Rust es un reemplazo prometedor para C y C ++, particularmente para la programación a nivel de sistemas, proyectos de infraestructura, desarrollo de software integrado y más, pero no en todas partes ni en todos los proyectos.

De hecho, Russinovich añadido más tarde: “Hay una enorme cantidad de C/C++ que se mantendrá y evolucionará durante décadas (o más). Anoche codifiqué una función para Handle, que se suma a las aproximadamente 85 000 líneas de código C/C++ de Sysinternals que he escrito. Dicho esto, me inclinaré por Rust para nuevas herramientas”.

Rust ciertamente está avanzando y es probable que esté pronto en el kernel de Linux.

El Proyecto de código abierto de Android (AOSP), una distribución de Linux, comenzó a usar Rust en el código nuevo en abril de 2021, pero dejó su base de código C/C++ en su lugar. Ese mes, AOSP también respaldó las llamadas a Rust como una opción para el nuevo código en el kernel de Linux.

También: Cómo ejecutar sitios web como aplicaciones con facilidad en Linux

Meta promovió recientemente a Rust como el principal lenguaje del lado del servidor compatible junto con C++. AWS invierte en Rust para software de infraestructura. Los ingenieros de Azure lo han usado para crear herramientas en la nube para probar módulos WebAssembly en Kubernetes. Por otro lado, el equipo de Chrome está ligado a C++ en el futuro previsible, a pesar del interés en Rust; simplemente cambiar a Rust no eliminaría una proporción significativa de las vulnerabilidades de seguridad durante años, dijeron. En cambio, Chrome brinda seguridad de memoria a su base de código C++.

Además, Rust no debe verse como una panacea para todos los malos hábitos que practican los desarrolladores cuando codifican en C o C++.

Bob Rudis, investigador de seguridad cibernética de GreyNoise Intelligence, que anteriormente estuvo en Rapid7, señalado los desarrolladores pueden transmitir los mismos malos hábitos de seguridad a Rust.

“Dado lo que se necesita (tiempo/dinero/personas/servicios) para hacer que los proyectos C/C++ “reales” sean seguros a cualquier velocidad, tiendo a estar de acuerdo [with Russinovich]. Habiendo dicho eso, es posible llevar las mismas malas prácticas a Rust”, escribió.

Steven J. Vaughan-Nichols de ZDNet ampliamente de acuerdo con ese sentimiento:

“Como han dicho otros, puede escribir “de forma segura” en C o C++, pero es mucho más difícil, sin importar el dialecto que use, que en Rust. Eso sí, aún puede estropear la seguridad en Rust, pero evita muchos viejos problemas de memoria”.

LEAVE A REPLY

Please enter your comment!
Please enter your name here