RUST : Rust es un lenguaje de programación compilado multipropósito de propósito general desarrollado por Mozilla Research. Está diseñado para ser un “lenguaje seguro, concurrente, práctico”, compatible con estilos puramente funcionales, de actor concurrente, imperativo-procesal y orientado a objetos.
Entrevista con Steve Klabnik: Cómo Rust se compara con otros idiomas y más
¿Cómo se compara el lenguaje de programación de Rust con C ++, Ocaml, Go y Erlang?
Con 273 repositorios en GitHub, Steve Klabnik es conocido por su contribución a proyectos de código abierto, donde se encuentra en 15 organizaciones. Actualmente ocupa el puesto número 32 en la lista de colaboradores de Rails de todos los tiempos , y ha escrito la guía Rust for Rubyists . Rust es un lenguaje de programación relativamente nuevo para el desarrollo de sistemas confiables y eficientes. A partir de junio de 2014, Steve se unió a Mozilla para trabajar en la documentación oficial de Rust .
¿Recomendaría codificar a los novatos para aprender Rust o deberían aprender otro idioma como Ruby primero?
Creo que deberían usar lo que los emocione. Elige algo, cualquier cosa, y solo inténtalo. Si no te gusta, prueba con otra cosa. Los humanos son todos diferentes, y no hay una sola respuesta aquí. Dicho esto, creo que Ruby es un primer idioma fantástico. El óxido tiene una falta significativa de recursos porque es muy nuevo y, por lo tanto, es mucho más difícil como primera lengua.
- ¿Qué banda da la mejor actuación en vivo?
- ¿Cuál es el mejor libro para estudiar por sí mismo la ciencia de los materiales computacionales?
- ¿Cuál es la mejor manera de desarrollar una carrera en tributación internacional en Contadores Públicos?
- ¿Cuál es el mejor canal de noticias en la India, que muestra el contenido correcto y exacto de las noticias que un canal debería mostrar?
- ¿Cuáles son algunas de las mejores películas / programas de televisión para ver?
Usted ha dicho antes que Rails hace que sea difícil hacer el TDD “verdadero” y las pruebas unitarias difíciles. ¿Cómo se compara Rust?
Rust tiene pruebas de unidad integradas en el lenguaje, pero son solo los conceptos básicos: aseveraciones y demás. Esperamos que otros construyan cosas ordenadas a medida que la comunidad crezca.
¿Cómo compararías Rust con otros lenguajes de programación del sistema como C ++? ¿Por qué crees que debería reemplazar a C ++?
Históricamente, los lenguajes de programación han tenido una compensación: puede tener un lenguaje que sea seguro, pero cede el control, o puede tener un lenguaje con control, pero no es seguro. C ++ cae en esa última categoría. C ++ más moderno es significativamente más seguro de lo que solía ser, pero hay aspectos fundamentales de C ++ que hacen que sea imposible estar realmente seguro. Rust intenta darle un lenguaje con un control del 100%, pero ser absolutamente seguro. Lo hace a través de una extensa verificación en tiempo de compilación, por lo que paga poco (y, a menudo, no!) Costo en tiempo de ejecución por sus características de seguridad. Sin embargo, este problema de seguridad no se trata solo de la conveniencia del programador. C ++ no es seguro en formas que causan serias vulnerabilidades de seguridad. Por ejemplo, en la última competencia de Pwn2Own, Firefox tenía algunas vulnerabilidades graves, debido a que C ++ no era seguro. Y también lo hicieron los otros navegadores en esa página. Muchos de estos errores habrían sido errores de compilación si esos navegadores se escribieran en Rust, y los de tiempo de ejecución no hubieran producido una vulnerabilidad de seguridad.
Para las aplicaciones que requieren un alto rendimiento, la gente elige C ++, pero C ++ es definitivamente demasiado complicado, y Java podría ser demasiado pesado debido a la naturaleza de la ejecución en la parte superior de JVM. Hay una D que intenta ser un mejor C ++, pero parece que solo le importa un poco. Ahora hay Go que comienza a despegar. ¿Crees que Rust podría vencer a Go en este lugar?
Rust and Go son idiomas muy diferentes, y compararlos no tiene mucho sentido. Es como preguntar si Ruby y C están compitiendo. Ahora, es cierto que hay algunos programas que están escritos en C y que podrían estar escritos en Ruby, pero los idiomas hacen concesiones fundamentalmente diferentes. Hay ciertos tipos de aplicaciones en las que Rust puede funcionar bien y que Go nunca puede. Por ejemplo, escribir una gema de Ruby en Rust es bastante fácil, pero no puedes hacer eso con Go. Dos recolectores de basura peleando por la memoria del otro es un mal momento. Dicho esto, Rust hace que te preocupes por muchos detalles de los que no tienes que preocuparte si estás programando en Go, y si estás contento con las desventajas de Go, la programación en Go tiene más sentido que en Rust. Como siempre, realmente depende de cuáles sean sus requisitos y qué compromisos está dispuesto a realizar.
Si todo lo que estamos hablando es de seguridad, rendimiento y programación funcional. ¿Crees que Rust podría ser mejor que OCaml? ¿O Rust comenzaría a concienciar a la gente sobre la programación funcional? Como la gente habla de programación funcional, pocos escogen realmente un lenguaje de programación funcional para desarrollar cosas.
El óxido es vagamente funcional, pero no está en toda regla. OCaml es un lenguaje funcional mejor que Rust. Dicho esto, podría hacer que sea más fácil comenzar a usar algunos conceptos funcionales, ya que no tiene que irse completamente. Esta es la razón por la que OCaml suele ser más fácil que Haskell, por ejemplo.
El óxido es un lenguaje bastante ambicioso que intenta ser eficaz, por lo tanto es bajo en cierto grado, al mismo tiempo que conserva la seguridad y es conveniente. Para la programación de sistemas, C domina todo lo demás. ¿Crees que Rust podría reemplazar a C en tal lugar?
Absolutamente, puede usar Rust en cualquier lugar que use C. Hay razones prácticas por las que puede elegir no hacerlo, por ejemplo, no hay tantas bibliotecas. Pero Rust puede funcionar bien con bibliotecas de C …
Para la concurrencia, Rust parece apoyar todo desde Go y Erlang. ¿Crees que Rust podría reemplazarlos en esos lugares?
Entonces esta pregunta es complicada, y cambiante. Actualmente estamos eliminando el soporte de subprocesos verdes de Rust, porque los subprocesos 1: 1 tienen sentido como predeterminado para un lenguaje de sistemas. Sin embargo, estarán disponibles en una biblioteca. Rust tiene algunas ventajas importantes en el departamento de concurrencia debido a su modelo de propiedad. Por ejemplo, compartir un estado mutable a través de un límite de concurrencia sin un mutex es un error en tiempo de compilación en Rust. Esto es super enorme en el lado de la corrección. Erlang es el rey en este espacio, por lo que si puede comprar un recolector de basura y no le importa la sintaxis más excéntrica de Erlang, sigue siendo el líder en la creación de software resistente.
¿Te ves volviendo a mejorar Rails con lo que has aprendido de Rust? ¿Cuáles son tus planes para el futuro?
Mi trabajo es cada vez menos en Rails en estos días, por lo que no espero hacerlo. Aunque nunca se sabe! Mi plan es continuar apoyando el ecosistema de Rust en todo lo que pueda. Por ahora, eso implica continuar trabajando con Mozilla, pero no soy un oráculo. Cualquier cosa puede cambiar.