Las 8 cosas principales que aprendí de 4000 desarrolladores de Rust

¿Sabes que la mayoría de los programadores de Rust están trabajando en aplicaciones web? ? ¡Rust es desafiante, pero también gratificante y muy divertido! Aprenda Rust con el ejemplo, o abra este repositorio de GitHub para comenzar con VSCode.

¿El óxido es uno de los más calientes? lenguajes de programación hoy. Es el lenguaje de programación más querido de StackOverflow durante los últimos 4 años. Sin embargo, todavía tiene la reputación de ser el lenguaje de programación para geeks alfa.

Según algunas estimaciones, hay 600.000 desarrolladores de Rust en todo el mundo, que es un número significativo. Pero todavía es pequeño en comparación con decenas de millones de desarrolladores de JavaScript, Java y Python.

¿Quiénes son esos desarrolladores de Rust? ¿Para qué están usando Rust? ¿Por qué aman tanto a Rust? Y lo más importante, ¿cómo te unes a sus filas y ves por ti mismo por qué Rust es tan querido? No te quedes atrás.

Para responder a esas preguntas, la comunidad de Rust ha realizado encuestas anuales para desarrolladores desde rust-lang.org desde 2016. El sitio publicó recientemente los resultados de la encuesta de 2019 según las respuestas de casi 4000 desarrolladores de Rust. Aquí están las 8 cosas principales que aprendí de la encuesta.

??‍? Rust es para programadores profesionales

El lenguaje de programación Rust no está diseñado para ser "fácil de comenzar". Más bien, está diseñado para ser potente y seguro al mismo tiempo. Su objetivo es ser el lenguaje de productividad del desarrollador para programadores profesionales. Es desafiante, divertido y gratificante. Eso se muestra en la encuesta.

Muy pocos encuestados se autodenominan expertos en Rust. La mayoría de la gente califica su experiencia en Rust como 7/10 o menos, a pesar de que más del 68% de ellos escribe código Rust semanalmente. Claramente, es un idioma que requiere tiempo para dominarse y sobresalir.

Aproximadamente el 37% de los usuarios de Rust se sintieron productivos en Rust en menos de un mes de uso; esto no es muy diferente del porcentaje del año pasado (40%). Más del 70% se sintió productivo en su primer año. Desafortunadamente, como el año pasado, todavía hay una lucha entre los usuarios: el 21% indicó que aún no se sentía productivo.

Al mismo tiempo, cuando se le pregunta por qué no se usa Rust en algunos proyectos, la curva de aprendizaje se cita como la segunda razón más común. La razón número uno, por supuesto, es la decisión de la empresa de utilizar un lenguaje de programación en particular en un proyecto.

? La documentación es fundamental para la adopción

¿Cómo superan los desarrolladores la curva de aprendizaje de Rust y se enamoran de ella? Bueno, como era de esperar, la mayoría de los desarrolladores citaron una "mejor documentación" como el impulsor de la adopción.

Pero fiel a los "programadores profesionales", la documentación de Rust más buscada es el contenido de nivel intermedio que ayuda a los desarrolladores a mejorar sus habilidades y productividad de Rust.

Si bien la encuesta está sesgada hacia los desarrolladores que ya conocían los conceptos básicos de Rust, parece que hay sed de conocimiento y superación personal en esta multitud.

? Los desarrolladores no quieren tomos de texto

La documentación de software tradicional generalmente consta de libros y sitios web completos. Las nuevas generaciones de desarrolladores quieren más y mejor documentación. Como un "nuevo" lenguaje, Rust ya está liderando la innovación cuando se trata de documentación de lenguajes de programación.

Por ejemplo, el compilador de Rust es una herramienta de auto-documentación. Una de las características más exclusivas y queridas de Rust es su agresivo compilador que te ayuda a garantizar la corrección y la seguridad incluso antes de que se ejecute el programa. Como resultado, los desarrolladores de Rust pueden escribir programas de alto rendimiento pero seguros.

Cuando encuentra un error de compilación en Rust, el compilador le da una explicación inmediata del error y sugerencias sobre cómo corregirlo según el contexto de su programa.

Este proyecto de inicio en GitHub le permite comenzar con el compilador Rust y el sistema Cargo sin tener que instalar ninguna cadena de herramientas de software. Puede utilizar el IDE en línea de VSCode directamente con este proyecto.

Los sitios web de documentación de Rust como docs.rs y Rust by Example (y su Extended Edition) utilizan Rust Playground para ejecutar el código de ejemplo de Rust directamente desde el navegador. Esos libros interactivos son mucho mejores que un simple texto.

Sin embargo, como revela la encuesta, los desarrolladores quieren más. Los desarrolladores están sedientos de más contenido de video, por ejemplo. Podemos esperar más videos de codificación y transmisiones en vivo de la comunidad pronto.

? ️ La mayoría de la gente usa Rust para aplicaciones web, ¡srsly!

Como lenguaje de nivel de sistema destinado a reemplazar C y C ++, la mayoría de la gente asume que Rust se usaría en programación de infraestructura, como sistemas operativos, bibliotecas nativas y plataformas de tiempo de ejecución.

Sin embargo, la encuesta muestra claramente que, por un amplio margen, la mayoría de los desarrolladores de Rust actualmente están trabajando en backends de aplicaciones web. No es de extrañar que cajas como hyper, actix-web y Rocket se encuentren entre las más populares entre los desarrolladores de Rust.

Sin duda, la mayoría de los desarrolladores de software están trabajando en aplicaciones web. No es sorprendente que, a medida que Rust obtenga la adopción generalizada, los proyectos de Rust reflejarán la industria del software más grande.

Sin embargo, eso presenta oportunidades para proyectos y herramientas que integran Rust en tiempos de ejecución de aplicaciones web populares. Por ejemplo, el enfoque de la aplicación híbrida Rust + JavaScript está ganando impulso.

? Blockchain es un semillero oxidado

Cuando se trata de software de infraestructura, Rust realmente brilla como lenguaje de programación para sistemas blockchain.

Para todos los sectores de la industria relacionados con el software, la encuesta muestra que blockchain solo ocupa el puesto 35 para todos los desarrolladores de software, pero el 11 para los desarrolladores de Rust. Eso se debe en gran parte a la adopción agresiva de Rust por parte de grandes proyectos de blockchain como Polkadot / Substrate, Oasis, Solana y Second State, etc.

En muchos sentidos, las cadenas de bloques encajan perfectamente con Rust. Las cadenas de bloques representan el esfuerzo de la comunidad para reconstruir la infraestructura de Internet de manera descentralizada. Requieren un software de alto rendimiento que además sea muy seguro. Si está interesado en una carrera como ingeniero de blockchain, Rust es una habilidad imprescindible hoy.

Óxido ❤️ Montaje web

La encuesta revela que WebAssembly es un entorno de ejecución popular para los programas de Rust. Rust y WebAssembly se inventaron en Mozilla.

Rust se centra en el rendimiento y la seguridad de la memoria, mientras que WebAssembly se centra en el rendimiento y la seguridad del tiempo de ejecución. Como contenedor de tiempo de ejecución, WebAssembly también hace que los programas de Rust sean multiplataforma y más manejables. De hecho, existe mucha sinergia entre las dos tecnologías.

WebAssembly se inventó originalmente como una máquina virtual del lado del cliente para ejecutar aplicaciones en el navegador. Pero como antes Java y JavaScript, WebAssembly ahora está realizando la migración del lado del cliente al lado del servidor.

Rust-in-WebAssembly es un buen augurio con la tendencia de acelerar la adopción de Rust en aplicaciones web back-end. Puede comenzar con el desarrollo de aplicaciones Rust y WebAssembly desde un proyecto de inicio en este repositorio de GitHub.

? La programación asincrónica está despegando

En los últimos años, dos nuevos lenguajes de programación han ganado una tracción significativa entre los desarrolladores. Uno es Rust y el otro es Go. Una gran parte de su éxito es su soporte superior para modelos de programación de concurrencia.

De hecho, un eslogan temprano de Rust es "concurrencia intrépida". Promete la productividad del desarrollador al escribir programas asíncronos de múltiples subprocesos optimizados para las arquitecturas de CPU de múltiples núcleos de hoy. Como demostró Node.js, la programación asincrónica sencilla es crucial para el éxito de un lenguaje o marco en el lado del servidor.

La encuesta muestra que 4 de las 10 cajas de Rust más importantes (es decir, bibliotecas de terceros), tokio, async, futures e hyper, son marcos para aplicaciones asincrónicas de múltiples subprocesos.

? R, Python y JavaScript

A medida que crece la adopción de Rust, los desarrolladores necesitan cada vez más integrar programas de Rust con programas escritos en otros lenguajes. En el pasado, C y C ++ eran los lenguajes más comunes para "hablar" con Rust, ya que todos se utilizan en proyectos de software de infraestructura.

A medida que Rust se convierte en proyectos de software de aplicación, ahora se necesitan más interfaces y puentes a nivel de lenguaje. Un buen ejemplo es el puente de JavaScript de Rust que admite funciones de Rust en aplicaciones Node.js.

La encuesta encontró que, además de C / C ++ y JavaScript, los desarrolladores de Rust están interesados ​​en integrarse con R y Python. Eso indica el interés de los desarrolladores en aplicaciones de aprendizaje automático, big data e inteligencia artificial (IA). De hecho, muchos paquetes estadísticos y de aprendizaje automático de Python y R se implementan en módulos binarios nativos.

Rust es uno de los mejores lenguajes de programación para escribir módulos nativos. Este ejemplo muestra cómo usar Rust para ejecutar modelos de Tensorflow en una aplicación Node.js. En el futuro, prevemos que dichos módulos de Rust se ejecuten en contenedores gestionados de alto rendimiento como WebAssembly.

Conclusión

2019 fue un año de crecimiento y mejoras incrementales para Rust. A medida que Rust se convierta en un lenguaje de programación convencional, esperamos más documentación, más herramientas, más compatibilidad con el ecosistema, más interoperabilidad con otros lenguajes y una curva de aprendizaje más suave.

Y lo más importante de todo, ¡estamos ansiosos por hacer más amigos y divertirnos con el lenguaje de programación más querido del mundo!

Sobre el Autor

El Dr. Michael Yuan es autor de 5 libros sobre ingeniería de software. Su último libro Building Blockchain Apps fue publicado por Addison-Wesley en diciembre de 2019. El Dr. Yuan es el cofundador de Second State, una startup financiada por VC que lleva las tecnologías WebAssembly y Rust a aplicaciones de nube, blockchain e inteligencia artificial. Permite a los desarrolladores implementar funciones Rust rápidas, seguras, portátiles y sin servidor en Node.js.

Antes de Second State, el Dr. Yuan fue colaborador de código abierto durante mucho tiempo en Red Hat, JBoss y Mozilla. Fuera del software, el Dr. Yuan es investigador principal en los Institutos Nacionales de Salud, con múltiples premios de investigación sobre cáncer y salud pública. Tiene un doctorado en astrofísica de la Universidad de Texas en Austin.