O Básico da Linguagem Ruby

5 minute read

Conceitos Básicos de Ruby

Continuando com a saga de como se tornar um programador, agora vou falar sobre o básico da linguagem ruby, não irei contar toda história de ruby e nem como instalar, vou adicionar links que vai ajudar você a lê e instalar.

Vamos entender primeiro o que é o básico do Ruby, o básico é o que serve como base, essencial, o mais relevante ou importante, fundamental, entendido isso, não tenha dúvida que esse estudo é obrigatório para entender como funciona a linguagem.

Ruby?

Como o Eustáquio comentou no livro dele “Conhecendo Ruby” ele usou uma descrição da web para falar sobre o que é Ruby, então como já tem vários conteúdos falando sobre a história do ruby, resolvi adicionar algumas partes importantes do assunto.

Um pouco da História

Ruby é uma linguagem de programação interpretada multiparadigma, de tipagem dinâmica, com gerenciamento de memória automático, originalmente planejada e desenvolvida no Japão em 1995, por Yukihiro “Matz” Matsumoto, para ser usada como linguagem de script. Matsumoto queria desenvolver uma linguagem de script que fosse mais poderosa do que Perl, e mais orientada a objetos do que Python.

Objetivos da linguagem

Ruby suporta programação funcional, orientada a objetos, imperativa e reflexiva. Foi inspirada principalmente por Python, Perl, Smalltalk, Eiffel, Ada e Lisp, sendo muito similar em vários aspectos a Python.

Matz queria uam linguagem interpretada que fosse mais poderosa que Perl e mais orientada as objetos do que Python.

Ruby está entre as 9 linguagens mais populares, de acordo com uma pesquisa conduzida pela RedMonk. (trecho retirado da Wikipédia)

Imagem

Não posso deixar de comentar sobre o pensamento que o Matz teve para criar essa linguagem,

Como está na documentação os Ideias do criador do Ruby, onde está comentado sobre o equilíbrio que o criador teve para criar o Ruby, que uniu partes das suas linguagens favoritas

(Perl, Smalltalk, Eiffel, Ada e Lisp) para formar uma linguagem equilibrada com a programação funcional e com a programação imperativa.

Antes de continuar vamos falar sobre:

Programação Funcional:

Resumo

É um paradigma de programação que trata a computação como uma avaliação de funções matemáticas e que evita estados ou dados mutáveis. Ela enfatiza mudanças no estado do programa.

Enfatizando as expressões ao invés de comandos, as expressões são utilizadas para cálculo de valores com dados imutáveis.

(texto tirado do wikipédia)

Programação Imperativa

Resumo

Baseado em instruções e comandos, o programador diz como exatamente um programa ou rotina deve realizar. É neste paradigma que surgiram os famosos laços de repetição, estrutura condicional, atribuição de valor à variáveis e controle de estado. A maioria de nós programadores utilizamos este paradigma de programação no nosso dia a dia sem, muitas vezes, nos darmos conta disso.

Instruções como if, while, switch e for são típicas de linguagens de programação imperativas.

(texto tirado do blog Alexandre Malavasi)

Tipos de dados

No ruby não existem tipos primitivos, todos os tipos são classes

  • Object é a classe mãe de todas as outras classes em Ruby

  • Numeric é uma classe abstrata que representa números

  • Integer é uma classe que representa números inteiros

  • Fixnum representa números inteiros de precisão fixa

  • Bignum representa números inteiros de precisão infinita, dependente apenas da memória disponível

  • Float é uma classe que representa números de ponto flutuante(números reais)

  • String uma cadeia de caracteres. Pode ser delimitado por apóstrofes(‘)ou aspas(“). Tudo o que há entre apóstrofes literalmente, entres aspas o programador deve utilizar de símbolos para representar caracteres específicos, como C. Exemplo: ‘azul’, “a\nb\nc\”

  • Symbol é semelhante a uma string, mas dois símbolos iguais possuem o mesmo endereço de memória, sendo assim é ótimo para se utilizar como índice numa Hash. Porém, devido à sua natureza, o coletor de lixo de ruby não os elimina. É definido com um sinal de dois pontos (:), por exemplo, :none

  • Array são arrays dinâmicos, que podem ser usados para representar matrizes e vetores. É delimitado por colchetes [ ] e cada valor é separado por vírgula. Exemplo: [4, ‘azul’, :termometro]

  • Hash representa um vetor associativo, e, assim como as Arrays, é dinâmica. É delimitada por chaves { }, e o índice precede o valor com um sinal ‘=>’. Exemplo: {:controller =>’user’, :action = ‘index’}. Qualquer objeto pode ser índice, mas os mais usados são as Strings e os Symbols

  • Regex representa expressões regulares, delimitadas por //. Funciona de forma semelhante a Perl. Exemplo: /a|ae/

Esses são os tipos de dados usados na linguagem.

Entenda isso e você vai entender a linguagem.

Um dos conceitos básicos da linguagem é a declaração das variáveis, que basta uma associação entre um nome e um valor que pronto é criada uma variável.

Exemplo:

Ano = 37

Para você testar, vamos usar o interpretador do ruby que é o IRB(Interactive Ruby Shell).

Vá no seu terminal e digite irb, veja que ele vai abrir

2.6.6 :001 >

Um console que abre informando a versão do seu ruby e o número de vezes que ele foi usado.

No primeiro exemplo declaramos uma variável do tipo inteiro que ela vai ser chamada de ano e atribuímos o valor 37 nela, mais como o interpretador sabe que ali tem uma variável do tipo inteiro.

ano = 37

Ruby tem um intérpretador que infere o tipo de variável durante a execução do código.

Uma forma interessante para você identificar o tipo da variável

ano = 37

puts ano.class

Você pediu para o puts mostrar o tipo da variável ano.

Que o resultado vai ser :

2.6.6 :001 > 2.6.6 :001 > ano = 37

=> 37

2.6.6 :002 > puts ano.class

Integer

=> nil

2.6.6 :003 >

Quando chamamos o .class depois de qualquer variável ele trás o tipo de variável.

Tipagem

Qual é a diferença entre tipagens;

Estática

Tipagem estática é quando definimos explicitamente o tipo de variáveis de um software no código que na hora da compilação do código ele é conhecido e checado.

Linguagem que usam tipagem estáticas

Java, C#, F#, Kotlin, Go.

Essa análise ajuda na chamada de segurança de tipos na utilização dos dados pelo programador.

Dinâmica

A tipagem dinâmica também é verificada mais de uma maneira diferente, ela verifica direto os tipos de dados.

Linguagem que usam tipagens dinâmicas

Ruby, Python, Clojure, Elixir

Forte

A tipagem forte não realiza conversões automaticamente.

Fraca

A tipagem fraca, vem da característica da linguagem de realizar conversões automaticamente entre diferentes tipos de dados.

Links usado na pesquisa:

treinaweb

História de Ruby

Vídeo Ruby on Rails

Ramosdainformatica