Rust - Uma nova linguagem de programação

Apresento-lhes o Rust. Uma linguagem de programação multiparadigma (orientada a objetos, estruturada, imperativa, compilada, concorrente e funcional) criada em 2006 por Graydon Hoare e atualmente, está sendo desenvolvida e mantida pela Mozilla Research. Se encontra sob as licenças MIT e Apache v2.0 e sua versão atual é a 0.13.0.

[ Hits: 14.183 ]

Por: Uberlan em 17/11/2014


Sobre a Rust



Saudações a todos.

Apresento-lhes uma nova linguagem de programação que está causando certo burburinho no mundo informático, a Rust.

Criada pelo canadense Graydon Hoare e atualmente desenvolvida pela Mozilla Research, esta linguagem é bastante citada pela segurança que proporciona ao código. A promessa, segundo Hoare, é atrair programadores C++.
Linux: Rust - Uma nova linguagem de programação

O burburinho em questão, é o fato de a linguagem estar sendo constantemente comparada com outras, como Google Go, Facebook Hack e Apple Swift. E isto vem sendo o assunto principal de diversas flame wars entre usuários dessas linguagens.

Deixando esta questão da briga de lado, vamos voltar a falar da Rust. Esta linguagem foi escolhida pela Mozilla para ser usada no projeto Servo, que trata de uma arquitetura paralelizada de browser com ênfase em dispositivos móveis, processadores multi-core e GPUs de alto desempenho.

Os aspectos voltados para segurança mais interessantes dessa nova linguagem, são a proteção contra criação de ponteiros nulos ou oscilantes. Outro aspecto importantes, é o gerenciamento de alocação de memória que dá maior proteção ao código contra os chamados buffers overflow.

Instalação

Para instalar Rust, é necessário atender às seguintes dependências relacionadas abaixo:
  • g++ 4.4 ou clang++ 3.x;
  • python 2.6 ou superior (nada de python 3.x);
  • perl 5.0 ou superior;
  • gnu make 3.81 ou superior;
  • curl.

Após verificar todas as dependências, instale Rust usando os comandos no terminal:

curl -O https://static.rust-lang.org/dist/rust-nightly.tar.gz
tar -xzf rust-nightly.tar.gz
cd rust-nightly
./configure
sudo make && sudo make install

Pelo Git:

git clone https://github.com/rust-lang/rust
cd rust
./configure
sudo make
sudo make install

Uma ferramenta bastante útil é a Cargo, que abordarei mais a frente. Para instalar, use:

git clone https://github.com/rust-lang/cargo
cd cargo
./configure
sudo make
sudo make install

Dependências da ferramenta:
  • rustc;
  • python;
  • curl;
  • cmake;
  • pkg-config;
  • OpenSSL headers (libssldev no Ubuntu).

Eu recomendo, fortemente, usar o comando abaixo, pois já instala Rust e a ferramenta Cargo:

curl -s https://static.rust-lang.org/rustup.sh | sudo sh

Uma breve introdução

A sintaxe da linguagem é bastante parecida com C/C++, mas é bem mais legível. Rust trabalha com a extensão .rs.

Para compilar o código, usa-se:

rustc nome_programa.rs

Um exemplo de programa em Rust:

fn main() {
    println!("Viva o Linux!")
}

Linux: Rust - Uma nova linguagem de programação

Para ver o help, digite:

rustc -h

Para ler o manual:

man rustc

Para conhecer mais detalhes sobre a estrutura da linguagem Rust, acesse o link:

A ferramenta Cargo

Cargo é uma ferramenta que auxilia na compilação de projetos verificando possíveis dependências e baixando os arquivos quando necessário.

Para demonstração, criei uma pasta chamada teste e criei os arquivos teste_rust.rs e "Cargo.toml", dentro dela.

Este é o conteúdo do arquivo teste_rust.rs:

fn main() {
    println!("Viva o Linux!")
}

O conteúdo de Cargo.toml deve se parecer com isto:

[package]
name = "teste_rust"
version = "0.0.1"
authors = [ "Uberlan G. Soares" ]

[[bin]]
name = "teste_rust"

Agora, deve-se criar uma pasta src e mover o código para seu interior. Comandos:

mkdir src
mv teste_rust.rs src/teste_rust.rs

Com tudo pronto, basta digitar o seguinte:

cargo build

Resultado:

  Compiling teste_rust v0.0.1 (file:///home/uberlan/teste)

Cargo vai criar uma pasta chamada target e vai colocar o executável dentro. Para executar o programa, basta digitar :

./target/teste_rust

Opcionalmente, você pode usar o comando cargo run para compilar e executar o programa. Resultado:

  Compiling teste_rust v0.0.1 (file:///home/uberlan/teste)
  Running 'target/teste_rust'
  Viva o Linux!


A ferramenta Cargo também pode ser usada para criar um projeto básico, já com a estrutura toda pronta. Para isso, basta usar o comando:

cargo new nome_do_programa -bin

Para ver como ficou, use o comando tree. Resultado:

  nome_do_programa
  |__Cargo.toml
  |__src
        |__main.rs


Conclusão

Bem, pessoal. Encerro este artigo, desejando boa sorte a quem desejar se aprofundar mais nessa linguagem de programação que, a meu ver, demonstra uma evolução no quesito segurança.

Espero que gostem do artigo.

Referências:
   

Páginas do artigo
   1. Sobre a Rust
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

FreeIPA - uma solução integrada de identidade e autenticação para ambientes de rede Linux/UNIX

Mais desempenho no GNU Emacs com o YASnippet

Fazendo uma conexão bridge no VirtualBox

Estratégias de backup e ferramentas livres

MenuetOS - O extraordinário mini-sistema operacional

  
Comentários
[1] Comentário enviado por tsuriu em 13/05/2015 - 10:39h

Ótimo artigo!
Cara estava me perguntando aqui, que tipo de aplicações essa linguagem é mais indicada. Pra ser sincero até fiquei interessado em estudar.

[2] Comentário enviado por Uberlan em 13/05/2015 - 13:34h


[1] Comentário enviado por tsuriu em 13/05/2015 - 10:39h

Ótimo artigo!
Cara estava me perguntando aqui, que tipo de aplicações essa linguagem é mais indicada. Pra ser sincero até fiquei interessado em estudar.

Obrigado pelo comentário. As áreas de aplicações são as mesmas de C/C++, sem os problemas de gerenciamento de memória. Pode ser usada para aplicações Web. Também pode ser muito útil em conjunto com Ruby. Se quiser saber um pouco mais leia este tutorial: http://www.rustforrubyists.com/



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts