 
                                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