Para responder a essas perguntas, a comunidade Rust realiza pesquisas anuais com desenvolvedores no site rust-lang.org desde 2016. O site lançou recentemente seu Resultados da pesquisa de 2019 com base nas respostas de quase 4000 desenvolvedores Rust. Aqui estão as 8 principais coisas que aprendi com a pesquisa.

Ust🏻‍💻 Rust é para “verdadeiros programadores”

A linguagem de programação Rust não foi projetada para ser "fácil de começar". Pelo contrário, ele foi projetado para ser poderoso e seguro ao mesmo tempo. O objetivo é ser a linguagem de produtividade do desenvolvedor para programadores profissionais. É desafiador, divertido e gratificante. Isso mostra na pesquisa.

Muito poucos entrevistados se consideram especialistas em Rust. A maioria das pessoas classifica seus conhecimentos em Rust como 7/10 ou menos, apesar de mais de 68% deles escreverem o código Rust semanalmente. É claramente uma linguagem que leva tempo para dominar e se destacar.

Cerca de 37% dos usuários do Rust se sentiram produtivos no Rust em menos de um mês de uso - isso não é muito diferente do percentual do ano passado (40%). Mais de 70% se sentiu produtivo no primeiro ano. Infelizmente, como no ano passado, ainda há uma luta entre os usuários - 21% indicaram que ainda não se sentem produtivos.

Ao mesmo tempo, quando perguntado por que não usar o Rust em alguns projetos, a curva de aprendizado é citada como o motivo nº 2 mais comum. O motivo número 1, é claro, é a decisão da empresa de usar uma linguagem de programação específica em um projeto.

📝 A documentação é crítica para adoção

Como os desenvolvedores superam a curva de aprendizado da Rust e se apaixonam por ela? Bem, não inesperado, a maioria dos desenvolvedores citou "melhor documentação" como o driver para a adoção. Mas, fiel aos “programadores reais”, a documentação Rust mais procurada é o conteúdo de nível intermediário que ajuda os desenvolvedores a melhorar suas habilidades e produtividades Rust.

Embora a pesquisa seja direcionada a desenvolvedores que já conheciam o básico do Rust, parece que há uma sede de conhecimento e auto-aperfeiçoamento nessa multidão.

📚 Os desenvolvedores não querem volumes de texto

A documentação tradicional do software são livros e sites. A nova geração de desenvolvedores deseja mais e melhor documentação. Como uma "nova" linguagem, a Rust já está liderando a inovação no que diz respeito à documentação da linguagem de programação.

Por exemplo, o compilador Rust é uma ferramenta de auto-documentação. Um dos recursos mais exclusivos e amados do Rust é seu compilador agressivo que ajuda a garantir a correção e a segurança antes que o programa seja executado. Como resultado, os desenvolvedores do Rust podem escrever programas de alto desempenho, mas seguros. Quando você encontra um erro de compilação no Rust, o compilador fornece uma explicação imediata do erro e sugestões sobre como corrigir o erro com base no contexto do seu programa. Este projeto inicial no GitHub, você inicia o compilador Rust e o sistema Cargo sem precisar instalar nenhuma cadeia de ferramentas de software. Você pode usar o IDE online do VSCode diretamente com este projeto.

Sites de documentação sobre ferrugem, como docs.rs e Ferrugem por exemplo (e os seus Edição estendida) use o Rust Playground para executar o código de exemplo do Rust diretamente do navegador. Esses livros interativos são muito melhores que o texto simples.

No entanto, como a pesquisa descobre, os desenvolvedores querem mais. Os desenvolvedores estão sedentos por mais conteúdo de vídeo, por exemplo. Podemos esperar mais vídeos codificados e transmissões ao vivo da comunidade em breve.

Most️ A maioria das pessoas usa o Rust para aplicativos da web, srsly!

Como uma linguagem no nível do sistema destinada a substituir C e C ++, a maioria das pessoas supõe que o Rust seria usado na programação de infraestrutura, como sistemas operacionais, bibliotecas nativas e plataformas de tempo de execução. No entanto, a pesquisa mostra claramente que, por uma grande margem, a maioria dos desenvolvedores do Rust atualmente trabalha no back-end de aplicativos da web. Não é de admirar caixas como hiper, actix-webe Foguete estão entre os desenvolvedores Rust mais populares.

Para ter certeza, a maioria dos desenvolvedores de software está trabalhando em aplicativos da web. Não é de surpreender que, à medida que a Rust obtenha a adoção principal, os projetos da Rust espelhem a maior indústria de software. No entanto, isso apresenta oportunidades para projetos e ferramentas que integram o Rust aos tempos de execução de aplicativos da web populares. Por exemplo, o Aplicativo híbrido Rust + JavaScript abordagem está ganhando força.

🔗 Blockchain é um viveiro Rusty

Quando se trata de software de infraestrutura, o Rust realmente brilha como uma linguagem de programação para sistemas blockchain. Para todos os setores da indústria relacionados a software, a pesquisa mostra que a blockchain ocupa apenas a 35ª posição para todos os desenvolvedores de software, mas a 11ª para os desenvolvedores da Rust. Isso não é em grande parte devido à adoção agressiva da Rust por grandes projetos de blockchain, como Polkadot / Substrato, Oásis, Solanae Segundo Estado etc.

De várias maneiras, as cadeias de blocos são perfeitas para o Rust. Blockchains representam o esforço da comunidade para reconstruir a infraestrutura da Internet de maneira descentralizada. Eles exigem software de alto desempenho que também é muito seguro. Se você está interessado em uma carreira como engenheiro de blockchain, Rust é uma habilidade essencial hoje em dia.

Rust ❤️ WebAssembly

A pesquisa revela que o WebAssembly é um ambiente de tempo de execução popular para programas Rust. Rust e WebAssembly são inventados na Mozilla. O Rust está focado no desempenho e na segurança da memória, enquanto o WebAssembly está focado no desempenho e na segurança do tempo de execução. Como um contêiner de tempo de execução, o WebAssembly também torna os programas Rust multiplataforma e mais gerenciáveis. De fato, há muita sinergia entre as duas tecnologias.

O WebAssembly foi originalmente inventado como uma máquina virtual do lado do cliente para executar aplicativos no navegador. Mas, como Java e JavaScript antes, o WebAssembly agora está fazendo a migração do lado do cliente para o lado do servidor. O Rust-in-WebAssembly é um bom presságio com a tendência de acelerar a adoção do Rust em aplicativos da web de back-end. Você pode iniciar o desenvolvimento de aplicativos Rust e WebAssembly a partir de um projeto inicial em este repositório do GitHub.

Programming A programação assíncrona está decolando

Nos últimos anos, duas novas linguagens de programação ganharam força significativa entre os desenvolvedores. Um é Rust e o outro é GO. Grande parte de seu sucesso é o suporte superior a modelos de programação de simultaneidade. De fato, um slogan inicial do Rust é "concorrência sem medo". Ele promete produtividade do desenvolvedor ao escrever programas assíncronos multithread otimizados para as arquiteturas de CPU multinúcleo atuais. Como o Node.js demonstrou, a programação assíncrona fácil é crucial para o sucesso de uma linguagem ou estrutura no lado do servidor.

A pesquisa mostra que 4 das 10 caixas Rust mais importantes (ou seja, bibliotecas de terceiros), Tokio, assíncrono, futurose hiper, são estruturas para aplicativos multithread assíncronos.

🤖 R, Python e JavaScript

À medida que a adoção do Rust aumenta, os desenvolvedores precisam integrar cada vez mais os programas Rust com programas escritos em outros idiomas. No passado, C e C ++ são as linguagens mais comuns para "conversar" com Rust, pois são usadas em projetos de software de infraestrutura. À medida que o Rust cresce em projetos de software de aplicativo, mais interfaces e pontes no nível do idioma são necessárias agora. Um bom exemplo é o Ponte JavaScript de ferrugem que suporta Funções de ferrugem no Node.js formulários.

A pesquisa constatou que, além de C / C ++ e JavaScript, os desenvolvedores do Rust estão interessados ​​em integrar-se ao R e Python. Isso indica o interesse do desenvolvedor em aplicativos de aprendizado de máquina, big data e inteligência artificial (IA). De fato, muitos pacotes estatísticos e de aprendizado de máquina Python e R são implementados em módulos binários nativos. Rust é uma das melhores linguagens de programação para escrever módulos nativos. Este exemplo mostra como usar o Rust para executar modelos do Tensorflow em um aplicativo Node.js. No futuro, prevemos que esses módulos Rust sejam executados em contêineres gerenciados de alto desempenho, como o WebAssembly.

Conclusão

O ano de 2019 é um ano de crescimento e melhorias incrementais para a Rust. À medida que o Rust se torna uma linguagem de programação convencional, esperamos obter mais documentação, mais ferramentas, mais suporte ao ecossistema, mais interoperabilidade com outros idiomas, uma curva de aprendizado mais suave e o mais importante de tudo, para fazer mais amigos e se divertir com os mais amados linguagem de programação no mundo!

Sobre o autor

Dr. Michael Yuan é o autor de 5 livros em engenharia de software. Seu último livro Criando aplicativos Blockchain foi publicado por Addison-Wesley em dezembro de 2019. Dr. Yuan é co-fundador da Segundo Estado, uma startup financiada por VC que traz as tecnologias WebAssembly e Rust para nuvem, blockchaine AI formulários. Permite que os desenvolvedores implantem rápido, seguro, portátil e sem servidor Funções de ferrugem no Node.js.

Antes do Segundo Estado, o Dr. Yuan trabalhou por muito tempo como colaborador de código aberto na Red Hat, JBoss e Mozilla. Fora do software, o Dr. Yuan é um pesquisador principal nos Institutos Nacionais de Saúde, com vários prêmios de pesquisa em pesquisas sobre câncer e saúde pública. Ele é PhD em astrofísica pela Universidade do Texas em Austin.