Rust, a linguagem de programação da Mozilla, será substituta da linguagem C?

RRust é uma linguagem de programação multi-paradigma compilada desenvolvida pela Mozilla Research. É projetada para ser “segura, concorrente e prática”, suportando os estilos puramente funcional, procedural, e orientado a objetos.

A linguagem apareceu como um projeto pessoal do empregado da Mozilla Graydon Hoare. A organização começou a apoiar o projeto em 2009 e anunciou-o em 2010. No mesmo ano, os esforços mudaram do compilador original (escrito em OCaml) para um auto-hospedado feito em Rust. Conhecido por rustc, conseguiu compilar-se pela primeira vez em 2011 e utiliza o LLVM como back-end.

rust

Rust é uma nova linguagem de programação com o objetivo de tornar simples a construção de sistemas eficientes e confiáveis. Rust combina o controle de baixo nível sobre o desempenho com comodidade e segurança de alto nível. Melhor ainda, ela atinge estes objetivos sem a necessidade de um coletor de lixo em tempo de execução, tornando possível usar bibliotecas Rust como um “substituto drop-in” para C.

Rust se baseia nos seguintes princípios: Segurança sem coletor de lixo, concorrência sem corrida de dados e abstração sem overhead. Estes princípios fazem com que Rust seja rápida para ser usada em aplicações de baixo nível como o browser Servo e também prática para projetos de alto nível.

Em Rust não existem ponteiros nulos ou ponteiros soltos, impossibilitando falhas de segmentação. Rust gerencia memória e recursos automaticamente, sem necessitar de um coletor de lixo.A linguagem impede corridas de dados entre threads pois não é possível que duas threads possam modificar um mesmo valor ao mesmo tempo. Para que uma referência possa ser compartilhada entre várias threads, ela deve ser somente leitura. Existem diversas técnicas seguras de comunicação entre threads. O princípio de abstração sem overhead vem do C++. Nas palavras de Bjarne Stroustrup: “Você não paga por aquilo que você não usa. E mais: Aquilo que você usa, não conseguiria programar melhor a mão”. Rust permite um alto grau de abstração através do sistema de traits, que são interfaces que podem ser implementadas separadamente da declaração de um tipo. Tipos genéricos são utilizados extensamente.

Fonte