Rust

Compartilhar:

As perguntas nesta seção foram mostradas aos desenvolvedores que identificaram o Rust como uma das linguagens que eles usam.

Como você utiliza o Rust?

Florian Gilcher

Diretor administrativo da Ferrous Systems

Gosto destes números. O Rust está crescendo e o fato de os números relativos aqui terem continuado os mesmos significa mais empregos e um saudável grupo de novatos que podem ser contratados para esses empregos. Minha recomendação para pessoas com cargos a preencher: eliminem a exigência de "X anos de experiência em Rust" e vocês aproveitarão um conjunto de diletantes talentosos que muitas vezes já programam profissionalmente. Há um caminho saudável para o crescimento.

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

O Rust está tendo um progresso constante no local de trabalho, com um número crescente de implantações em produção. Ao mesmo tempo, a demanda por empregos com Rust ainda é significativamente maior que o número de vagas abertas. Isso não é ideal para desenvolvedores que procuram desembarcar no seu primeiro emprego com Rust, mas definitivamente é uma boa notícia para os empregadores: há muito talento por aí, pronto para agarrar uma oportunidade de trabalhar com Rust diariamente.

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

As respostas a esta pergunta mostram que há um equilíbrio vibrante e muita diversidade dentro da comunidade Rust.

É encorajador ver um número crescente de desenvolvedores Rust que estão conseguindo ser pagos pelo desenvolvimento Rust. Comparando 2023 com 2022, vemos uma mudança de 11 pontos percentuais em um único ano.

Embora possa parecer desencorajador que apenas uma em cada cinco pessoas chegue a usar o Rust no trabalho, esse dado é consistente com um grande número de pessoas aprendendo a linguagem. Quando muitas pessoas são novatas em uma linguagem, é muito difícil que esse dado seja de mais de 50%.

Acho realmente muito saudável que as pessoas estejam usando o Rust para seus projetos pessoais paralelos. Isso significa que as pessoas estão escolhendo o Rust como uma forma de dar vazão à sua criatividade.

Há quanto tempo você utiliza o Rust?

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

Um grande viés para programadores mais novos é uma indicação de uma comunidade em crescimento exponencial.

Uma coisa a ser lembrada pelos líderes da comunidade é que mais de 75% dos usuários de Rust têm menos de um ano de experiência na linguagem.

Eu gostaria de ver mais projetos importantes no ecossistema aumentando seu número de colaboradores. No momento, há muitos crates importantes mantidos por um único desenvolvedor.

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

O Rust tem excelente retenção. Foi votado como a linguagem de programação mais amada no StackOverflow por sete anos seguidos, o que significa que os desenvolvedores que aprendem Rust querem continuar usando-o.

Ao mesmo tempo, podemos ver que a entrada de novos desenvolvedores no ecossistema do Rust continua forte: mais de metade dos que responderam estão só começando no Rust (menos de 6 meses).

A alta retenção e um saudável fluxo de novatos são uma ótima notícia para o ecossistema como um todo!

Florian Gilcher

Diretor administrativo da Ferrous Systems

Essa é uma boa notícia, especialmente para os novatos. Se você começar com o Rust agora, há uma boa chance de você se tornar um especialista na área, em comparação com outras linguagens, nas quais toda equipe tem um colega com 10 anos ou mais de experiência. O melhor momento para começar a aprender Rust é agora!

Que linguagens de programação você usa em seus projetos junto com o Rust?

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

Mais da metade dos que responderam está trabalhando em projetos poliglotas, aproveitando o Rust ao lado de outras tecnologias. Dependendo da linguagem de programação, podemos presumir algumas coisas sobre os padrões predominantes: um front-end em JavaScript/TypeScript apoiado por uma API Rust, extensões nativas (Rust+Python), projetos com mistura de linguagens (C/C++) e interações on-line entre microsserviços (Go, Python, C#, Java, etc.).

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

É maravilhoso ver que o Rust se dá bem com outras linguagens. Posso enxergar aqui a influência do uso do Rust em back-ends de Web (JS/TS, SQL) e CLIs (linguagens de scripts de shell).

É um sinal muito interessante ver o Rust sendo usado para estender linguagens da JVM, ou pelo menos sendo usado em conujunto com elas, e em menor grau com linguagens criadas com o CLR (C#). Minha expectativa é de que à medida que aumentar a adoção comercial, haja uma maior pressão para garantir que o Rust possa funcionar bem em sistemas que compilam ou fazem builds com várias linguagens.

Você migrou para o Rust a partir de qual linguagem de programação?

Florian Gilcher

Diretor administrativo da Ferrous Systems

O resumo das estatísticas acima continua o mesmo ao longo dos anos: o Rust foi e continua sendo uma linguagem que não atende apenas ao público da programação de sistemas e tem uma abrangência muito maior!

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

Uau! A proporção de "não substituiu nenhuma linguagem de programação" é muito maior do que eu esperava, talvez 10 vezes maior ou mais.

Isso é um bom sinal de que o Rust está ficando mais acessível, mas fortalece minha crença pessoal de que, enquanto comunidade, precisamos melhorar no ensino de Rust.

Como o código do Rust interage com as outras partes?

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

Eu estava esperando que o WebAssembly/WASI aparecesse aqui, mas 22% é muito mais do que eu teria imaginado!

Seria interessante nos aprofundarmos mais nos padrões de interoperatividade que o WebAssembly permite. Estamos falando em estender as bases de código do Rust com plug-ins fornecidos pelos usuários e escritos numa linguagem arbitrária? Ou estamos pensando no Rust para criar componentes executados por outras aplicações? Ou será que estamos vendo o sucesso do experimento Spin/Fermyon, criando aplicativos a partir de módulos de WebAssembly escritos em linguagens de programação diferentes?

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

Rust para back-ends de Web!

A queda na proporção de projetos que usam FFI é interessante.

Espero ver o WebAssembly continuar a se fortalecer. Os módulos do Wasm fornecem uma forte barreira a ataques à cadeia de suprimentos, aos quais o ecossistema de código aberto do Rust é bastante vulnerável no momento.

Florian Gilcher

Diretor administrativo da Ferrous Systems

A diversidade de opções de integração usadas na prática é impressionante. Além disso, como a maioria dos projetos tem algum tipo de componente de integração, eu gostaria de ver mais atenção à ampla integração do Rust em outros sistemas.

Quais plug-ins/utilitários você usa para o Rust no seu IDE?

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

A verdadeira surpresa aqui é que haja tão poucas opções comerciais disponíveis. Aplaudo a JetBrains por ser proativa em seu suporte ao Rust por vários anos.

Florian Gilcher

Diretor administrativo da Ferrous Systems

Estou contente de ver que as duas principais opções de editores estão crescendo: o rust-analyzer parece ter devorado o que restou do RLS/Racer, que saiu de linha, enquanto o IntelliJ Rust continua sendo a escolha-padrão daqueles que desejam ter uma experiência integrada.

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

Um ano atrás, o rust-analyzer entrou para a organização do Rust e substituiu o RLS como o servidor "oficial" da linguagem, culminando um processo que havia começado mais de dois anos antes. A pesquisa confirma que a base de usuários do RLS está finalmente migrando para o rust-analyzer, mas isso também serve como um lembrete sério: migrar um ecossistema inteiro é um processo complexo e lento, não importa o quanto a alternativa seja superior e quanta pressão e coordenação estejam sendo aplicadas.

Quais IDEs ou editores você usa para o desenvolvimento em Rust?

De quais recursos do Rust você mais sente falta nos IDEs?

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

Percorrer esta lista de recursos me faz querer muito mais do meu IDE! Também tenho esperanças quanto à visualização de tempos de vida, mas fico imaginando se isso ajudaria em casos complicados. Talvez isso acabasse se tornando outra minilinguagem que eu precisaria aprender a interpretar.

É impressionante o quanto as macros procedurais são bem avaliadas. Eu não fazia ideia de que tantas pessoas estavam escrevendo suas próprias macros procedurais!

Uma coisa que a JetBrains poderia oferecer seria uma experiência semelhante à do GitHub Codespaces. Eu realmente adoro usar áreas de trabalho na nuvem, mas o preço sempre me desestimula.

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

Vamos começar pelo lado positivo: um terço dos que responderam está satisfeito com o estado do suporte dos IDEs ao Rust. É muita coisa!

Mas nem tudo são rosas. Precisamos fazer mais para ajudar os usuários naqueles aspectos exclusivos do Rust, como os tempos de vida. Macros procedurais continuam sendo um desafio. Elas estão por toda parte em bancos de dados complexos, devido à sua utilidade, mas elas degradam a experiência do IDE quando amplamente usadas.

Depois que esses construtos essenciais da linguagem estiverem bem cobertos, seria empolgante ver os IDEs se ramificando em casos de uso mais especializados, como o suporte incorporado a frameworks específicos de Web.

Quais sistemas de build você usa para compilar código em Rust?

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

6% dos que responderam estão usando Make nas suas builds!? Uau, algumas pessoas realmente adoram se agarrar às suas ferramentas antigas. Uma coisa que notei sobre os desenvolvedores é que eles têm uma forte preferência por estarem no controle.

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

Nenhuma surpresa aqui. O Cargo reina soberano quando se trata de projetos em Rust.

Como você geralmente depura seu código Rust?

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

O quadro não mudou muito em comparação com o ano passado: a depuração com println! tem a menor barreira de entrada e continua sendo a principal técnica entre os participantes. Definitivamente, aqui há uma defasagem de ferramental, mas acho que não é só isso: também há uma defasagem educacional. Há muito pouco material disponível para ensinar às pessoas como aproveitar as ferramentas existentes de depuração.

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

Não é vergonha nenhuma usar o println! (para soar melhor, você pode chamá-lo de "depuração por rastreamento"). Mas é bom que os desenvolvedores de IDEs tenham dedicado tanto esforço para tornar a depuração de verdade muito fácil de usar. Aprender como usar um depurador para acompanhar passo a passo a execução de um programa realmente aumenta a produtividade.

Florian Gilcher

Diretor administrativo da Ferrous Systems

Estou frustrado com essa situação. Acho que é possível haver uma melhor experiência de depuração e os IDEs parecem ser um bom caminho nessa direção. Porém, acho que a prática tem estado bem estagnada nos últimos anos. Isso mostra, na verdade, que "apenas imprimir no console" ainda é a opção preferida.

Quais ferramentas de profiling você utiliza para o Rust?

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

Esse é um aumento marcante no número de desenvolvedores que usam um profiler em seus projetos de Rust!

Isso se deve quase totalmente ao uso maior do profiler incluído no IDE. Quando ferramentas poderosas se tornam fáceis de usar, os desenvolvedores tiram proveito delas.

Porém, ainda temos muito mais trabalho a fazer. Deveríamos poder fazer profiling de aplicações nos nossos ambientes de produção com a mesma facilidade, mas ainda estamos bem longe de termos uma ótima experiência de desenvolvimento nessa área.

Florian Gilcher

Diretor administrativo da Ferrous Systems

A relativa popularidade dos profilers incorporados valida minha premissa geral de que muitas vezes, o profiling não é feito porque não se tem fácil acesso a ele.

Que tipo de projeto você desenvolve em Rust?

Luca Palmieri

Consultor Principal de Engenharia na Mainmatter

É por isso que eu adoro pesquisas — elas desafiam as narrativas predominantes com o poder dos dados brutos.

Rust rima com "programação de sistemas" na cabeça da maioria das pessoas, mas a realidade tem muito mais nuances: 38% dos que responderam estão usando Rust no desenvolvimento para a Web, contrariando as narrativas de que o Rust seria "um exagero" ou "difícil demais" para esse caso de uso. Acredito fortemente que esta será a próxima grande vertical do Rust e será interessante ver este palpite confirmado pelos dados.

Florian Gilcher

Diretor administrativo da Ferrous Systems

Estou contente de ver que, com todo o crescimento que está acontecendo com o Rust, o uso dessa linguagem em sistemas embarcados e na IoT continua no mesmo nível. Este ano, a surpresa positiva para mim foi o quanto aumentou o uso do Rust em aplicações de desktop — sempre há algum número que não coincide com o seu instinto. O fato de que os números não mudam muito em relação uns aos outros sugere um ecossistema relativamente bem formado e estável que está indo em alguma direção.

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

Ver esse amplo espectro de projetos é tão reconfortante! Uma coisa que adoro sobre a linguagem é que suas garantias de segurança dão às pessoas confiança para experimentarem em domínios que antes eram inacessíveis.

Qual é plataforma alvo em seus projetos Rust?

Tim McNamara

Fundador da Accelerant.dev, autor de "Rust in Action"

É realmente fascinante ver a diversidade aqui. Eu esperava que o Linux no lado do servidor tivesse uma porcentagem mais alta, bem acima de 90%. Suponho que isso esteja ligado ao grande número de pessoas que estão usando o Rust para criar CLIs e com a maioria dos desenvolvedores usando-o para hobbies e projetos pessoais.

A proporção de desenvolvedores de sistemas embarcados parece muito alta. Penso nos sistemas embarcados como um nicho razoavelmente pequeno, mas está claro que há um amplo e dedicado grupo de pessoas usando o Rust em projetos que não dependem de um sistema operacional.

Florian Gilcher

Diretor administrativo da Ferrous Systems

De novo, nenhuma surpresa aqui. Está em andamento uma adoção do Rust em empresas mais conservadoras e isso aumenta a relevância do Windows como alvo.

Obrigado pelo seu tempo!

Esperamos que você tenha achado nosso relatório útil. Compartilhe este relatório com seus amigos e colegas.

Se tiver dúvidas ou sugestões, entre em contato conosco em surveys@jetbrains.com.