Linguagem de programação Histórico Concebida em 1993 por Yukihiro Matsumoto Primeiro livro em inglês saiu em setembro de 2000 Ruby on Rails é lançado em 2004 Aspectos gerais Tipagem dinâmica e forte Gerenciamento de memória automático Linguagem de script Orientada a objeto Motivação Matsumoto queria uma linguagem de script que fosse mais poderosa do que Perl, e mais orientada a objetos do que Python. Tipos de dados Não existem tipos primitivos, todos os tipos são classes Object é a classe mãe de todas as outras classes em Ruby Exemplo puts "Olá, Mundo!" Features da Linguagem Dynamic Typing e Duck Typing Suporte a herança, mixins e metaclasses Tudo é expressão e tudo é executado de forma imperativa Features da Linguagem Suporte a Reflection Sintaxe única de blocos Possibilidade de colocar pedaços de código dentro de strings Features da Linguagem 4 níveis de escopo para as variáveis Coletor de Lixo First Class Continuations Regras restritas para boolean Features da Linguagem Shell Interativo Eval Suporte nativo a threads Suporte a unicode Features da Linguagem Suporte a tratamento de exceções Gerenciador de pacotes RubyGems Distribuições para as principais plataformas Extensa biblioteca padrão Aplicações da Linguagem Ruby on Rails Ruby on Rails é um framework livre (codigo aberto) para criação de aplicações para web feito para a linguagem Ruby Ruby on Rails Esse framework usa a arquitetura MVC (Model-ViewController) para organizar a estrutura das aplicações Ruby on Rails O Ruby on Rails é separado em vários pacotes, esses sendo: Active Record: é uma camada de mapeamento objetorelacional, responsável pela interoperabilidade entre a aplicação e o banco de dados e pela abstração dos dados. Active Pack: Compreende o Action View (interface com usuário) e o Action Controller (lógica da aplicação) Active Resource, Active Mailer, Active Support: Serviços web e outras funções Ruby on Rails O Ruby on Rails usa os principios CoC (Convention over Configuration) e o Dry (Don't repeat yourself) para acelerar o desenvolvimento de aplicações CoC: Significa que o desenvolvedor só precisa especificar aspectos não convencionais da aplicação, por exemplo, se tem uma classe "Venda" no modelo, a tabela correspondente no banco de dados é nomeada "Vendas" automaticamente Dry: É o conceito por trás da técnica de definir nomes, propriedades e códigos em somente um lugar e reaproveitar essas informações em outros. JRuby é a implementação da linguagem Ruby para a Plataforma Java em desenvolvimento pela JRuby Team. Ele é fortemente integrado ao Java, permitindo interação facil entre o Ruby e o Java na mesma aplicação. O JRuby tambem suporta o Ruby on Rails o que o torna uma ferramenta poderosa. RPG Maker O RPG Maker XP e a versão mais recente RPG Maker VX ambas permitem o uso de Scripts RGSS (Ruby Game Scripting System) para adicionar diferentes tipos de features e sistemas em jogos feitos pela ferramenta, embora seja um pouco limitado o RGSS aumentou consideravelmente a customização e variedade de jogos feitos em RPG Maker RPG Maker VX RPG Maker XP Referências http://en.wikipedia.org/wiki/Variable_interpolation#Interpolation http://stackoverflow.com/questions/355633/what-are-some-good-examplesof-mixins-and-or-traits http://en.wikipedia.org/wiki/Continuation#First-class_continuations http://en.wikipedia.org/wiki/Interactive_Ruby_Shell http://en.wikipedia.org/wiki/Programming_paradigm http://en.wikipedia.org/wiki/Reflection_(computer_science) http://en.wikipedia.org/wiki/Ruby_(programming_language) http://en.wikipedia.org/wiki/Duck_typing http://www.sagadoprogramador.com.br/2009/11/nao-e-por-que-e-dinamicoque-a-tipagem-e-fraca/ Pequena Demostração de Ruby