Nesta aula iremos ver um pouco da história do professor Danilo com a linguagem Ruby, iremos aprender alguns comandos básicos e iremos aprender como você pode agilizar os seus projetos com esta linguagem.
Ruby é uma linguagem de programação interpretada multiparadigma, de tipagem dinâmica e forte, 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. Ruby suporta programação funcional, orientada a objetos, imperativa e reflexiva. Foi inspirada principalmente por Python, Perl, Smalltalk, Eiffel, Ada e Lisp, ele resultou da união de partes dessas linguagens. Ruby está constantemente entre as top 10 linguagens mais populares. A intenção do Ruby sempre foi ser uma linguagem natural. O Ruby também é totalmente livre. Não somente livre de custos, mas também livre para utilizar, copiar, modificar e distribuir.
Ele tem um sistema de threading independente do Sistema Operacional. Portanto, para todas as plataformas nas quais o Ruby roda, temos multithreading independentemente de o Sistema Operacional suportar ou não, temos multithreading até em MS-DOS! O Ruby não necessita de declarações de variáveis. Usa simples convenções de nomes para denotar o âmbito das variáveis.
Ruby tem Tipagem dinâmica e fortemente tipada. Isso significa que todas as variáveis devem ter um tipo, mas ele é inferido de acordo com a atribuição. Para comparação em linguagens fortemente tipadas como Java e C#, em cada declaração de variável você deve incluir o tipo dela:
int a = 1
Onde int é o tipo Inteiro, Ruby não permite soma de inteiro com variável. Em Ruby você não precisa dizer que vai declarar uma variável com var ou dizer seu tipo, abaixo comparações em Javascript:
var a = 1;
var b = 'a';
a + b // '1a';
b = '1';
a == b // true
a + b // '11'
var # poderia ser uma variável local.
@var # é uma variável de instância.
@@var # é uma variável de classe.
$var # é uma variável global.
Na nova versão 3 do Ruby foi adicionado entre outras coisas a possibilidade de se definir tipagem, é uma nova maneira de escrever código chamada RBS. Criando arquivos .rbs.
# Classes
class Usuario
attr_reader nome : String
attr_reader idade : Integer
def initialize : (nome: String, idade: Integer) -> [String, Integer]
end
Em 2006, o Ruby atingiu aceitação massiva, principalmente impulsionado pelo framework Ruby on Rails(RoR),
Ruby possui um sintaxe simples e enxuta, não é necessário o ;
(ponto e vírgula) para definir o fim de uma instrução.
para imprimir uma mensagem no console você pode simplesmente fazer:
puts 'Hello World!'
Em Ruby, tudo é um objeto. Cada parcela de informação e código podem receber as suas próprias propriedades e ações. A Programação orientada a objetos denomina as propriedades como variáveis de instância e as ações como métodos. A aproximação pura, da orientação aos objetos do Ruby, é geralmente demonstrada pelo seguinte trecho de código que aplica uma ação a um número.
Exemplo Loop em Ruby
10.times{|i| puts i}
Repare na forma como é escrito 10 times(vezes), literalmete fazer 10 vezes tal instrução.
Em Javascript:
for (var i = 0; i < 9; i++) {
console.log(i);
}
No exemplo acima a variável i
está acessivel fora do loop for
, porque o var
tem um escopo aberto, neste caso substituido por let
, caso tentasse acessar de fora do loop receberia um erro. O Ruby consegue entender o escopo da variável, mantendo o escopo fechado.
Sobre a instrução condicional, em outras linguagens comumente if
, ruby tem uma particularidade, o if
seria "invertido", os parenteses também são opcionais você poderia fazer algo como:
puts 'Oi!' if 1 == 1
Acesse o Try Ruby e pratique um pouco dos códigos que falamos.
10.times{|i| puts i}
a = 1
puts a
Abra seu terminal para testar os comandos shell.
$ ruby -v
# ver versão do Ruby
$ irb
# Pode-se executar qualquer código Ruby aqui
10.times{|i| puts i.to_s + " - "}
# to_s - converte o int para string(casting)
10.times{|i| puts i + " #{i} - "}
# #{} - Faz com que o i sera convertido para string na concatenação
No Ruby tudo pode receber methodos como você viu o 10
recebendo o metodo .times
1.class
# retorno o tipo da classe, neste caso Fixnum
1.methods
# Mostra os metodos disponíveis para esse objeto
Arquiteto de software, analista, programador, professor. Danilo criou o projeto torne-se um programador, para passar o seu conhecimento para a nova geração. Com o intuito de ser um bom pai, Danilo trabalha muito motivado para garantir o futuro de sua filha.