Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuáles son los pros y los contras de Rust y C?

¿Cuáles son los pros y los contras de Rust y C?

Rust es tan ambicioso para reemplazar C que cuando alguien te pregunta qué piensas de Go, solo responderá: Nuestro objetivo es C, y Go también es un gran lenguaje balabala.

GitHub Wiki Hay un simple Comparación de Rust para programadores de CXX en la página - Rust-lang/ Rust-wiki - GitHub

La diferencia más intuitiva es que Rust no tiene el bagaje histórico de C ni el bagaje de C, por lo que todo es Bueno, más claro. Rust Wiki - GitHub

La diferencia más intuitiva es que Rust no tiene el bagaje histórico de C, por lo que todo puede ser más limpio, y también tiene un sistema de módulos moderno. Pero si eso es todo, entonces será una C mejor.

Pero Rust tiene una verificación en tiempo de compilación más elaborada. Adopta el modo RAII de C, realiza una verificación estricta en tiempo de compilación y realiza una reconstrucción determinista implícita en tiempo de compilación. Al mismo tiempo, también distingue entre mutaciones y no mutaciones, lo que lo hace más adecuado para la concurrencia y al mismo tiempo protege la invariancia de los datos. Hace cumplir la seguridad de tipos tanto como sea posible. (¡Excelente respuesta de un usuario anónimo!)

Además, mientras C también toma prestada funcionalidad, Rust lo hace de forma más exhaustiva, combinando la coincidencia de patrones con tipos de datos algebraicos. El manejo de errores se realiza de esta manera, sin excepciones y sin valores de retorno adicionales como en Go.

El soporte de Rust para genéricos es muy bueno, y si cometes un error al usar genéricos, los mensajes de error del compilador son muy amigables, a diferencia de la programación de plantillas de C... De hecho, todos los mensajes de error son muy amigables, explican claramente el problema que está encontrando de una manera humana y, a veces, lo ayudan con sugerencias de modificaciones.

Al mismo tiempo, existen macros de estilo de coincidencia de patrones para garantizar la seguridad de la generación de código. Esto es lo que escuché de @quanzuanzhen (upsuper)…. Dijo que la declaración estaba intercalada en un montón de macros. Fue a IRC para quejarse y otros respondieron que deberías ir al grupo Servo para usar Rust. No existe tal problema...

Aunque el concepto de ciclo de vida es un poco confuso, el lenguaje en sí no tiene tantos elementos que aprender, y los constructores en C tienen todo tipo de detalles y trampas que simplemente no podía imaginar. Algo así como una interfaz y sin herencia puede incomodar a algunas personas, pero ¿realmente necesitas herencia?

Muchas de las personas involucradas en el desarrollo de Rust son programadores de C experimentados y el lenguaje es muy adecuado para programadores de C. Es fácil comenzar y tiene versiones de los punteros más utilizados. El operador namespace :: es aún más familiar.