Depurador interativo de código aberto do LinkedIn para pipelines de IA K8s
15 de fevereiro de 2024Arquiteturas combináveis vs. Microsserviços: qual é o melhor?
16 de fevereiro de 2024Apesar do recente rebuliço sobre a Microsoft diminuir o uso de sua linguagem de programação C# em favor da linguagem Rust, a Microsoft diz que continua comprometida com C#.
Tudo começou quando Rafly Gilang, da MSPoweruser, detectou um anúncio de emprego da Microsoft em busca de desenvolvedores Rust para ajudar a reescrever os componentes principais criados com C#, uma linguagem de programação essencial da Microsoft, em Rust.
A função seria orientar a transição técnica dos serviços de nuvem C# existentes em grande escala para o código Rust. Esta mudança faz parte de um esforço mais amplo da Microsoft para adotar o Rust para modernizar e otimizar os serviços da plataforma global. Rust fornece segurança e desempenho de memória.
C# não vai a lugar nenhum
No entanto, a Microsoft reconhece seu interesse no Rust para vários casos de uso, mas o C# não será substituído, disse a Microsoft. Em vez disso, Rust é apenas mais uma linguagem no arsenal da empresa.
“Na Microsoft, usamos diversas linguagens de programação para desenvolver e entregar produtos e serviços aos nossos clientes. C# continua a ser uma linguagem altamente valorizada para a Microsoft e estamos comprometidos com seu crescimento e desenvolvimento contínuos”, disse um porta-voz da Microsoft ao The New Stack.
C# é uma linguagem de programação de alto nível de uso geral projetada por Anders Hejlsberg, aclamado técnico da Microsoft, fabricante de ferramentas de software e criador de linguagem de programação. A Microsoft lançou o C# em 2000.
Rust é uma linguagem de programação multiparadigma e de uso geral que enfatiza desempenho, segurança de tipo e simultaneidade. Rust entrou em cena em 2015 e é vista como uma linguagem mais moderna. A Rust Foundation atua como administradora do idioma.
“Como a Microsoft é membro fundador da Rust Foundation Platinum, nossa equipe tem visto consistentemente sua dedicação ao desenvolvimento e ao sucesso futuro da linguagem de programação Rust desde o nosso início”, disse um representante da Rust Foundation ao The New Stack. “No entanto, não vemos o compromisso da Microsoft com o Rust como uma indicação de ‘abandono’ do C#, como foi sugerido em relatórios e comentários recentes.”
A função que a Microsoft busca preencher está no grupo Substrate App Platform da empresa, que faz parte da organização Microsoft 365 Core Platform.
Ferrugem Amor
Os programadores Rust estão em alta demanda atualmente, à medida que mais organizações estão recorrendo à linguagem por causa de sua segurança e desempenho.
“É como se as pessoas dissessem ‘Ei, por que estamos reescrevendo partes do kernel Linux em Rust?’ Estas são grandes questões, porque Rust não é amigável ao desenvolvedor, comparado a algo como Python”, disse Brad Shimmin, analista da Omdia. “Mas como uma linguagem de propósito geral, ela traz algumas vantagens sérias em comparação com a família de linguagens C. E a maioria dessas vantagens parece girar em torno de uma palavra: segurança. Mais especificamente, duas palavras: segurança da memória.”
Ferrugem ficou em 18º lugarº no mais recente Índice TIOBE de linguagens de programação populares, enquanto C# ficou em quinto lugar. Enquanto isso, a pesquisa Stack Overflow de 2023 listou Rust como a linguagem mais admirada, já que mais de 80% dos desenvolvedores que a usaram no ano passado desejam usá-la novamente este ano. O relatório da pesquisa Stack Overflow de 2022 mostrou resultados semelhantes para Rust.
“Você pode escrever código bare metal tão rápido quanto C# sem ter que se preocupar com todas as ‘pegadinhas’ de memória que parecem acompanhar essa árvore genealógica”, disse Shimmin ao The New Stack. “Acho que para projetos e módulos específicos dentro de uma aplicação mais ampla, Rust é absolutamente uma ótima escolha, especialmente se desempenho e robustez estiverem em jogo. Por esse motivo, estou vendo cada vez mais projetos Linux migrando para o Rust, começando com emuladores de terminal e agora passando para gerenciadores de janelas inteiros, como no Pop!_OS.”
Na verdade, em termos de desempenho e robustez, Rust é uma boa escolha.
“Imagino que seja a ideia de que esta é uma maneira melhor e mais eficiente de codificar e também de gerenciar recursos – o valor do Rust é que ele é compilado e gerencia memória versus memória. C++ você gerencia a memória (problemas de segurança), mas é rápido, C# gerencia a memória (coletor de lixo), mas é uma compilação dinâmica de código de bytes que não é tão rápida ou eficiente em termos de espaço”, disse Thomas Murphy, analista do Gartner, ao The New Stack em um e-mail. “O Rust gerencia a memória (novo formato, não o coletor de lixo) e é compilado para ser rápido e eficiente. E isso é principalmente valioso para coisas executadas em plataformas na nuvem como o O365.”
Sobre os Benjamins?
Enquanto a Microsoft procura revisar o código de serviços executado no Azure, “suspeito que eles estão interessados em otimizar esse código porque isso lhes custa dinheiro”, disse Richard Campbell, um proeminente MVP e diretor regional da Microsoft e fundador da Campbell & Associates.
Esse código foi originalmente escrito em C# porque é rápido de desenvolver e chegar ao mercado – somente se se tornar popular você considera o tipo de otimização extrema que Rust pode trazer para a mesa, observou Campbell. Somente quando os serviços estiverem em alta demanda você consideraria esse tipo de otimização – se poucas pessoas o usassem, não valeria a pena.
“Quando você busca a otimização de pico, você tende a optar por linguagens de baixo nível – o tipo que está ‘próximo do metal’ para que você possa salvar todos os ciclos de processamento possíveis, disse Campbell ao The New Stack. “C# é uma ótima linguagem, mas vive em um tempo de execução gerenciado, otimizado para confiabilidade e simplicidade de uso. Certamente, é rápido, mas se você quiser extrair todo o desempenho possível de algum código, precisará mudar para uma linguagem de nível inferior – normalmente para C++.”
A desvantagem é que o código C++ é muito mais difícil de escrever e depurar – e são necessárias pessoas muito qualificadas para escrever um código altamente otimizado como esse.
“Rust representa uma nova geração de programação de baixo nível que facilita a criação de código de qualidade nesse nível”, disse Campbell.
Um erro?
No entanto, pode ser um erro para uma empresa simplesmente reescrever sua base de código em Rust, disse Shimmin ao The New Stack.
“Primeiro, desenvolvedores competentes de Rust são muito mais difíceis de encontrar do que aqueles mergulhados em C#, React, etc.”, disse ele. “Em segundo lugar, algumas das restrições de segurança de memória no Rust podem tornar essa linguagem mais difícil de manter ao longo do tempo, caso surjam mudanças em grande escala.”
No entanto, ele disse que pode facilmente imaginar por que a Microsoft está fazendo isso.
“É a mesma razão pela qual Linus Torvalds permitiu o Rust no kernel do Linux: desempenho e estabilidade”, disse Shimmin. “É por isso que Linus começou com motoristas. Eles operam ali mesmo contra o metal e são altamente modulares. É um bom ajuste. Assim como escrever em Python é uma boa opção para projetos de ciência de dados.”
Google aumenta a aposta na ferrugem
Enquanto isso, a Microsoft não é a única grande empresa olhando mais de perto para Rust. No início deste mês, o Google prometeu US$ 1 milhão à Rust Foundation para melhorar a interoperabilidade entre as linguagens de programação C++ e Rust.
Embora o projeto seja chamado de “Iniciativa Interop”, o objetivo é de natureza mais unidirecional, fazer com que “as organizações migrem lentamente o C++ atual para Rust”, de acordo com o anúncio, escreveu meu colega Joab Jackson.
E, novamente, neste caso, a segurança da memória é uma preocupação fundamental.
“Embora Rust possa não ser adequado para todas as aplicações de produtos, priorizar a interoperabilidade perfeita com C++ acelerará a adoção mais ampla pela comunidade, alinhando-se assim com os objetivos da indústria de melhorar a segurança da memória”, escreveu Lars Bergstrom, que é o diretor do Google para as ferramentas da plataforma Android. e bibliotecas, bem como o presidente do Conselho da Rust Foundation, em uma postagem no blog.
Para contextualizar, o uso de Rust e a implementação do Google no Android foram recentemente defendidos por Agência de Segurança Cibernética e de Infraestrutura (CISA) A diretora Jen Easterly é uma forma importante de as organizações e plataformas mitigarem vulnerabilidades de segurança de memória. Cerca de dois terços das vulnerabilidades de software conhecidas são uma classe de fraqueza conhecida como vulnerabilidades de “segurança de memória”, que introduz certos tipos de bugs relacionados à forma como a memória do computador é acessada, de acordo com a CISA.
Além disso, o Google foi o pioneiro na implementação do Rust. Até o momento, não houve nenhuma vulnerabilidade de segurança de memória descoberta no código Rust do Android, disse o Google. Embora o Google tenha visto o crescimento mais significativo no uso de Rust no Android, a empresa continua a aumentar seu uso em mais aplicativos, incluindo clientes e hardware de servidor, disse a empresa.
A história enferrujada da Microsoft
Enquanto isso, o interesse da Microsoft no Rust não é novo. Em 2020, a Microsoft disse que estava mudando gradualmente para Rust para construir seu software de infraestrutura, longe do C/C++. Em 2022, Mark Russinovich, CTO do Azure da Microsoft, postado no Twitter (agora conhecido como X): “Falando em linguagens, é hora de parar de iniciar quaisquer novos projetos em C/C++ e usar Rust para aqueles cenários onde uma linguagem não-GC é necessária. Por uma questão de segurança e confiabilidade. a indústria deveria declarar essas linguagens como obsoletas.”
Ano passado, Russo postou na mesma plataforma: “Se você está no anel Win11 Insider, está experimentando pela primeira vez o Rust no kernel do Windows!”
A postagem Microsoft: Não estamos ‘abandonando’ C# para Rust apareceu pela primeira vez em The New Stack.