Red de conocimiento informático - Espacio del host - ¿Por qué debería elegir Rust?

¿Por qué debería elegir Rust?

Hola, estaré encantado de responder a tu pregunta.

Entrevista exclusiva con el programador senior Zhuang Xiaoli: ¿Por qué debería elegir Rust?

Rust es un lenguaje de programación desarrollado por Mozilla que se centra en la seguridad, el rendimiento y la concurrencia. Este lenguaje ha sido muy elogiado por programadores nacionales y extranjeros desde su lanzamiento. Rust afirma haber resuelto los problemas de seguridad de la memoria que los lenguajes tradicionales C y C++ han sido criticados durante décadas, al tiempo que mantiene una eficiencia operativa extremadamente alta, un control subyacente extremadamente profundo y una gama extremadamente amplia de aplicaciones. Sin embargo, no hay muchos documentos de aprendizaje sobre Rust en China. No hace mucho, el autor se puso en contacto con Zhuang Xiaoli, un colaborador del código de la versión Rust 1.0 (maravillosa publicación de blog: Por qué digo que Rust es un lenguaje de programación confiable) y le preguntó. para compartir las características del lenguaje Rust y las experiencias de aprendizaje.

CSDN: ¿Cuándo entraste en contacto por primera vez con el lenguaje Rust? ¿Qué te atrajo de este lugar?

Zhuang Xiaoli: Comencé a tener un contacto profundo con el lenguaje Rust probablemente en la segunda mitad de 2013. En realidad, pretende resolver el problema de seguridad de la memoria que el lenguaje C tradicional y el lenguaje C++ han sido criticados durante décadas, al mismo tiempo que mantiene una eficiencia operativa extremadamente alta, un control subyacente extremadamente profundo y un alcance de aplicación extremadamente amplio.

El mecanismo de propiedad es llamativo, sin máquina virtual (VM), sin recolector de basura (GC), sin tiempo de ejecución (Runtime), sin puntero nulo/puntero salvaje/memoria fuera de límites/desbordamiento de búfer/ falla de segmentación, sin carrera de datos (Data Race) ... todo esto me ha atraído profundamente: un programador que ha sido torturado por el lenguaje C durante más de diez años y está feliz.

CSDN: En tu opinión, ¿qué tipo de lenguaje es Rust? ¿Para qué tipo de proyectos es adecuado? ¿Por qué dice que Rust no le teme a ningún competidor? No solo puede reemplazar el estado del lenguaje C, sino que también puede desafiar el mercado de C ++ y también puede tomar una parte de Java y Python; En comparación con estos lenguajes, ¿cuáles son las características superiores de Rust?

Zhuang Xiaoli: Rust es un lenguaje de programación de sistemas, especialmente adecuado para desarrollar software de sistemas que es muy sensible al uso de CPU y memoria, como máquinas virtuales (VM), contenedores (Containers), bases de datos/juegos/ servidores de red, motores de navegador, simuladores, etc., que siempre han sido el territorio tradicional de C/C++.

Además, Rust también tiene sólidas capacidades en el campo del desarrollo de sistemas subyacentes, como bare metal (bare metal), sistema operativo (OS), kernel (kernel), módulo de kernel (mod), etc. ., lo cual es suficiente para desafiar a este lenguaje C que es el líder tradicional en el campo. Las ricas características del lenguaje de Rust, los conceptos de diseño avanzados y la conveniente gestión de proyectos le permiten flexionar sus músculos en el desarrollo de aplicaciones de nivel superior, al menos en términos de rendimiento de ejecución, que es mejor que los lenguajes con VM y GC. El mecanismo de seguridad de la memoria sin GC, el mecanismo de concurrencia sin competencia de datos y el mecanismo de abstracción sin sobrecarga de tiempo de ejecución son las características únicas y superiores de Rust.

Es difícil para otros lenguajes lograr estos objetivos al mismo tiempo. Por ejemplo, C/C++ tradicional no puede garantizar la seguridad de la memoria y Java/Python no puede eliminar la sobrecarga del tiempo de ejecución. Pero, después de todo, Rust todavía es un proyecto muy joven. Tomará tiempo para liberar su influencia y ser ampliamente aceptado por el mundo. Tomará tiempo para probar si se puede liberar su potencial. Sólo tenemos que tener paciencia y esperar.

CSDN: ¿Existe algún caso de uso real específico de Rust en China?

Zhuang Xiaoli: Debido a que la versión oficial de Rust 1.0 se lanzó hace menos de un mes y su influencia en el país no es grande, no podemos exigir que tenga casos de aplicación práctica en el país. Pero en el extranjero, OpenDNS y Skylight ya aplicaron Rust en entornos de producción hace uno o dos años. También hay "dos casos y medio de aplicaciones grandes", como el motor de navegador Servo, el compilador y biblioteca estándar Rust y el administrador de proyectos Cargo. Estos son suficientes para ilustrar la madurez y practicidad del lenguaje Rust.

CSDN: Usted participó en la contribución del código de la versión Rust 1.0. Se lanzó la versión oficial de esta versión. ¿Ha alcanzado el idioma una etapa relativamente madura?

Zhuang Xiaoli: Participé activamente en el proyecto de código abierto del lenguaje Rust y contribuí con el código fuente muchas veces. Aparecí tres veces seguidas en la lista de contribuyentes de Rust 1.0 alfa, Rust 1.0 beta y. la versión oficial de Rust 1.0 anunciada en el blog oficial de Rust. Durante el lanzamiento de la versión oficial de Rust 1.0 y durante mucho tiempo antes, los desarrolladores han hecho grandes esfuerzos para garantizar que la versión oficial de Rust 1.0 mantenga la compatibilidad con versiones anteriores según la especificación Semver 2.0, a menos que se encuentren errores importantes que no se reparen. .

Creo que después del lanzamiento oficial de 1.0, Rust ha entrado en una etapa relativamente madura. Además, Rust todavía está en el proceso de desarrollo iterativo rápido. 1.1 se lanzará 6 semanas después del lanzamiento de 1.0, y 1.2 se lanzará 6 semanas después. Inevitablemente, paso a paso se volverá más maduro y estable.

CSDN: Además de la prioridad de las funciones, en su opinión, ¿en qué dirección se está desarrollando Rust? ¿Qué tipo de características podemos esperar en el futuro de Rust?

Zhuang Xiaoli: Rust definitivamente continuará desarrollándose en la dirección establecida de "garantizar la seguridad de la memoria, sin gastos operativos, alta eficiencia y practicidad". Las características del lenguaje que vale la pena esperar a corto plazo incluyen: caída dinámica, especialización parcial, herencia, comprobador de préstamos mejorado, macros mejoradas y expansión de sintaxis. Otras características que vale la pena esperar a corto plazo incluyen: API de sistema de archivos mejorada, API de lanzamiento de aplicaciones de memoria, mejor soporte para Windows y ARM, velocidad de compilación más rápida, mecanismo de distribución binaria (MUSL) más conveniente, herramientas más prácticas, etc.

CSDN: Hasta donde yo sé, solías admirar el lenguaje Go. ¿Por qué pensaste en dejar Go y cambiarte a Rust?

Zhuang Xiaoli: Ni siquiera puedo hablar de admirar el lenguaje Go, pero he tratado de aceptarlo. Desde finales de 2011, pasé casi medio año prestando mucha atención a él. Vaya al proceso de desarrollo y presente muchas sugerencias y sugerencias específicas para mejorar, y ha intentado contribuir con el código fuente muchas veces. Más tarde, consideré que la filosofía de diseño del lenguaje Go era demasiado diferente a la mía y que su comunidad no era muy amigable, por lo que poco a poco me alejé de él. Una vez escribí un blog sobre "Por qué dejé el lenguaje Go" y hablé sobre muchas razones específicas.

CSDN: ¿Hay muchos desarrolladores participando en contribuciones de código Rust en China? ¿Tiene personal central? ¿Qué comunidades mantienen Rust?

Zhuang Xiaoli: No hay muchos desarrolladores nacionales que participen en las contribuciones del código Rust, pero también hay bastantes nombres que parecen chinos en la lista oficial de contribuyentes. Los desarrolladores principales de Rust son básicamente empleados de Mozilla. Son responsables del desarrollo y mantenimiento del lenguaje Rust y los proyectos relacionados. La comunidad Rust está organizada y administrada principalmente por ellos. Las discusiones de los miembros de la comunidad se concentran principalmente en la página de inicio del proyecto GitHub RFC/PR/Issue official, foro de discusión/IRC, Reddit, HN, StackOverflow, etc.