SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Paradigmas da Linguagem Ruby



sexta-feira, 7 de outubro de 11
Introdução
                 • Desenvolvida por Yukishiro Matsumoto
                 • Lançada em 1995
                 • Baseado na linguagem Perl, Smalltalk,
                         Python

                 • Escrita em C
                 • Multiplataforma
                 • O projeto mais famoso é o
                         meta-framework Ruby on Rails.
sexta-feira, 7 de outubro de 11
Características
               • Interpretada
                      • não é compilada
                      • analise sintática é feita em tempo de execução

               • Tipagem dinâmica e forte
                      • não é necessário declaração de variável

               • Tipos Primitivos são Classes
               • Herança Simples
                       (É usado Mixin’s, ultiliza o conceito de módulos ou coleções de métodos)


                       • Diferente das linguagens Python e C++

sexta-feira, 7 de outubro de 11
Características
                 • Multi-paradigma
                         • Orientada Objetos
                         • Funcional
                         • Programação Imperativa
                         • Open Source	 	

                 • Case-sensitive
                 • Bibliotécas (Ruby Gems)


sexta-feira, 7 de outubro de 11
Características
                 • Variáveis
                         •        Variáveis de Instância   - @cliente
                         •        Variáveis Classes        - @@cliente
                         •        Variáveis Globais        - $cliente
                         •        Variáveis Locais         - cliente




sexta-feira, 7 de outubro de 11
Características
               • Ver tudo como um Objeto
                       Cada parcela de informação e código podem receber as suas próprias
                       propriedades e ações.



                         Classe                  Classe herdando outra
                        class MyLib              class MyOtherLib < MyLib
                        ! @@name = "mylib"       ! @@name = "myotherlib"
                        !                        end
                        ! def self.name
                        ! ! @@name
                        ! end                     MyOtherLib.name
                        end                       #=> "myotherlib"

                        MyLib.name                MyLib.name
                        #=> "mylib"               #=> "myotherlib"




sexta-feira, 7 de outubro de 11
Características
            • Os métodos sempre retornam algo, nem
                    que seja nil
                        def um_metodo             def um_metodo   def um_metodo
                        end                         (1..5).to_a    1 == 2-1
                        um_metodo                 end             end
                        # nil                     um_metodo       um_metodo
                                                  # [1,2,3,4,5]   # true




            • Multiplos retornos por métodos
                             def um_metodo
                                return 1,2,3
                             end
                             a ,b,c = um_metodo
                             puts a ,b ,c
                             #1
                             #2
                             #3

sexta-feira, 7 de outubro de 11
Critérios de Avaliação
                 • Legibilidade(Facilidade de Leitura e Entendimento)
                         • Syntaxe limpa
                                  # Output “Eu gosto de Ruby”


                                   diz = "Eu gosto de Ruby"
                                   puts diz




                 • Redigibilidade (Facilidade em escrever programas)
                         • class Carro < Veiculo #suporte a abstração
                         • carro = 1
                                  carro = ”Gol” # não precisa definir o tipo da variável

                 • Confiabilidade
                         • Verificação de Tipos de variáveis (x.kind_of? Integer)
                                  • Tratamento de Exceção (raise, Throw/Catch)


sexta-feira, 7 de outubro de 11
Critérios de Avaliação
            • Facilidade de Aprendizado
                   • Documentação para aprendizado
                   • Similaridade com outras linguagens (C, Python, Smalltalk)

            • Reusabilidade
                   • Possui o Paradigma Orientado a Objetos possuindo Herança
                   • No Ruby existe o conceito de módulos (chamados categorias em
                            Objective-C). Os módulos são coleções de métodos.
                            class MyArray
                             include Enumerable
                            end




            • Portabilidade
                           • Roda em todos Sistemas Operacionais (Instalando o RVM)

sexta-feira, 7 de outubro de 11
Onde se pode usar?

           Testes Automatizados
           •Web
           •Desktop
           •Scripting
           •Computação Científica
           •Inteligência Artifícial
           •Bioinformática
           •etc...


sexta-feira, 7 de outubro de 11
Plataformas Suportadas
            • Mac OS x
            •Linux
            •MS-DOS
            •BSDs (inclui o FreeBSD e o OpenBSD)
            •Acorn RISC OS
            •Microsoft Windows 95, 98, XP, and Vista
            •OS/2
            •Amiga
            •Celulares Symbian Series 60
            •Plataformas que contém uma Máquina Virtual Java
                       (Usando JRuby ao invés de Ruby oficial)



sexta-feira, 7 de outubro de 11
Paradigmas
                Linguagem Ruby

                Faculdade Anglo Americano
                Curso: Ciência da Computação
                Nomes:	Heverson Damasceno




sexta-feira, 7 de outubro de 11

Más contenido relacionado

La actualidad más candente

Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Ramon Kayo
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de ProgramaçãoBeDMK
 
Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03Ramon Kayo
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoInstituto CENTEC
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos JavaMarcio Marinho
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Cartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoCartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoismaelfurtado
 
Estrutura de decisão switch case
Estrutura de decisão switch caseEstrutura de decisão switch case
Estrutura de decisão switch caseAlessandra Sra JM
 

La actualidad más candente (20)

Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02Lógica de Programação com Javascript - Aula #02
Lógica de Programação com Javascript - Aula #02
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03Lógica de Programação com Javascript - Aula #03
Lógica de Programação com Javascript - Aula #03
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Aula 2 - Lógica de Programação
Aula 2 - Lógica de ProgramaçãoAula 2 - Lógica de Programação
Aula 2 - Lógica de Programação
 
Revisao php
Revisao phpRevisao php
Revisao php
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Apostila de Fundamentos Java
Apostila de Fundamentos JavaApostila de Fundamentos Java
Apostila de Fundamentos Java
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Cartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acessoCartilhas uca.6-configuracao-do-ponto-de-acesso
Cartilhas uca.6-configuracao-do-ponto-de-acesso
 
BD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DMLBD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DML
 
Estrutura de decisão switch case
Estrutura de decisão switch caseEstrutura de decisão switch case
Estrutura de decisão switch case
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Visualg
VisualgVisualg
Visualg
 

Destacado

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyDiego Rubin
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacaopablogranola
 
Atps paradigmas da linguagem
Atps paradigmas da linguagemAtps paradigmas da linguagem
Atps paradigmas da linguagemRafael Cianci
 
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional DesignInteraccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional DesignIsmar Silveira
 
Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2Ismar Silveira
 
Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009Ismar Silveira
 
MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013Ismar Silveira
 
#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - Methodologies#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - MethodologiesIsmar Silveira
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLtarginosilveira
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoJosé Meirelles
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11Ismar Silveira
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoAdriano Teixeira de Souza
 
Charla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinalCharla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinalIsmar Silveira
 
Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13Ismar Silveira
 
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Ismar Silveira
 

Destacado (20)

Introdução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação RubyIntrodução a Linguagem de Programação Ruby
Introdução a Linguagem de Programação Ruby
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
Atps paradigmas da linguagem
Atps paradigmas da linguagemAtps paradigmas da linguagem
Atps paradigmas da linguagem
 
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional DesignInteraccion2014 - Presentation about Open Books, MOOCs and Instructional Design
Interaccion2014 - Presentation about Open Books, MOOCs and Instructional Design
 
wei2010
wei2010wei2010
wei2010
 
Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2Um Sistema De Recomendacao para Web 2
Um Sistema De Recomendacao para Web 2
 
Sinatra - Primeiros Passos
Sinatra - Primeiros PassosSinatra - Primeiros Passos
Sinatra - Primeiros Passos
 
Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009Apresentação WAvalia - SBIE 2009
Apresentação WAvalia - SBIE 2009
 
MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013MOOC e Educação Aberta - Painel @ #cbie2013
MOOC e Educação Aberta - Painel @ #cbie2013
 
Fundcompsis 1.1
Fundcompsis 1.1Fundcompsis 1.1
Fundcompsis 1.1
 
Ismar webinar-udelar
Ismar webinar-udelarIsmar webinar-udelar
Ismar webinar-udelar
 
#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - Methodologies#latinproject @openeducationweek2014 - Methodologies
#latinproject @openeducationweek2014 - Methodologies
 
Mini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOLMini-curso RubyOnRails CESOL
Mini-curso RubyOnRails CESOL
 
Plp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliaçãoPlp aula-02-critérios de avaliação
Plp aula-02-critérios de avaliação
 
E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11E:\Plp 2009 2\Plp Aula11
E:\Plp 2009 2\Plp Aula11
 
Paradigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - IntroduçãoParadigmas de Linguagens de Programação - Introdução
Paradigmas de Linguagens de Programação - Introdução
 
Charla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinalCharla juegos udelar2015_vfinal
Charla juegos udelar2015_vfinal
 
Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13Fundamentos de Sistemas de Informacao - Aula 13
Fundamentos de Sistemas de Informacao - Aula 13
 
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2Fundamentos de Sistemas de Informacao - Aula #14 2009_2
Fundamentos de Sistemas de Informacao - Aula #14 2009_2
 

Similar a Paradigmas do Ruby

Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on RailsSergio Henrique
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Railsismaelstahelin
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)George Mendonça
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHPAugusto Pascutti
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4javamanrj
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on railsCOTIC-PROEG (UFPA)
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAThiago Cifani
 
Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)Daniel Lopes
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Marcelo Bohn
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Julio Monteiro
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-phpJuan Maiz
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHPJuan Maiz
 
Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013Marcelo Bohn
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Zarathon Maia
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para phpFabio B. Silva
 

Similar a Paradigmas do Ruby (20)

Conhecendo Ruby on Rails
Conhecendo Ruby on RailsConhecendo Ruby on Rails
Conhecendo Ruby on Rails
 
Esta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com RailsEsta começando a programar para a web? Então começe com Rails
Esta começando a programar para a web? Então começe com Rails
 
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
Uma Abordagem Prática de Orientação a Objetos com PHP (FLISOL DF 2011)
 
Orientação a Objetos com PHP
Orientação a Objetos com PHPOrientação a Objetos com PHP
Orientação a Objetos com PHP
 
Workshop ExtJS4
Workshop ExtJS4Workshop ExtJS4
Workshop ExtJS4
 
Abordagem geral - Ruby on rails
Abordagem geral - Ruby on railsAbordagem geral - Ruby on rails
Abordagem geral - Ruby on rails
 
Palestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVAPalestra Desenvolvimento Ágil para Web com ROR UVA
Palestra Desenvolvimento Ágil para Web com ROR UVA
 
Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)Introdução ao Rails (Linguagil)
Introdução ao Rails (Linguagil)
 
Java virtual machine quantas linguas fala a jvm2
Java virtual machine   quantas linguas fala a jvm2Java virtual machine   quantas linguas fala a jvm2
Java virtual machine quantas linguas fala a jvm2
 
Apresentação ruby + rails 2014
Apresentação ruby + rails 2014Apresentação ruby + rails 2014
Apresentação ruby + rails 2014
 
Curso ruby on rails
Curso ruby on railsCurso ruby on rails
Curso ruby on rails
 
Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)Ruby, Rails e Diversão (Campus Party Brasil 2009)
Ruby, Rails e Diversão (Campus Party Brasil 2009)
 
Ruby para-programadores-php
Ruby para-programadores-phpRuby para-programadores-php
Ruby para-programadores-php
 
Ruby para programadores PHP
Ruby para programadores PHPRuby para programadores PHP
Ruby para programadores PHP
 
Ruby
RubyRuby
Ruby
 
Introdução ao Ruby on Rails
Introdução ao Ruby on RailsIntrodução ao Ruby on Rails
Introdução ao Ruby on Rails
 
Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013Apresentação ruby - IEI 2013
Apresentação ruby - IEI 2013
 
Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014Minicurso de Rails - WTISC 2014
Minicurso de Rails - WTISC 2014
 
Doctrine 2 camada de persistência para php
Doctrine 2   camada de persistência para phpDoctrine 2   camada de persistência para php
Doctrine 2 camada de persistência para php
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 

Paradigmas do Ruby

  • 1. Paradigmas da Linguagem Ruby sexta-feira, 7 de outubro de 11
  • 2. Introdução • Desenvolvida por Yukishiro Matsumoto • Lançada em 1995 • Baseado na linguagem Perl, Smalltalk, Python • Escrita em C • Multiplataforma • O projeto mais famoso é o meta-framework Ruby on Rails. sexta-feira, 7 de outubro de 11
  • 3. Características • Interpretada • não é compilada • analise sintática é feita em tempo de execução • Tipagem dinâmica e forte • não é necessário declaração de variável • Tipos Primitivos são Classes • Herança Simples (É usado Mixin’s, ultiliza o conceito de módulos ou coleções de métodos) • Diferente das linguagens Python e C++ sexta-feira, 7 de outubro de 11
  • 4. Características • Multi-paradigma • Orientada Objetos • Funcional • Programação Imperativa • Open Source • Case-sensitive • Bibliotécas (Ruby Gems) sexta-feira, 7 de outubro de 11
  • 5. Características • Variáveis • Variáveis de Instância - @cliente • Variáveis Classes - @@cliente • Variáveis Globais - $cliente • Variáveis Locais - cliente sexta-feira, 7 de outubro de 11
  • 6. Características • Ver tudo como um Objeto Cada parcela de informação e código podem receber as suas próprias propriedades e ações. Classe Classe herdando outra class MyLib class MyOtherLib < MyLib ! @@name = "mylib" ! @@name = "myotherlib" ! end ! def self.name ! ! @@name ! end MyOtherLib.name end #=> "myotherlib" MyLib.name MyLib.name #=> "mylib" #=> "myotherlib" sexta-feira, 7 de outubro de 11
  • 7. Características • Os métodos sempre retornam algo, nem que seja nil def um_metodo def um_metodo def um_metodo end (1..5).to_a 1 == 2-1 um_metodo end end # nil um_metodo um_metodo # [1,2,3,4,5] # true • Multiplos retornos por métodos def um_metodo return 1,2,3 end a ,b,c = um_metodo puts a ,b ,c #1 #2 #3 sexta-feira, 7 de outubro de 11
  • 8. Critérios de Avaliação • Legibilidade(Facilidade de Leitura e Entendimento) • Syntaxe limpa # Output “Eu gosto de Ruby” diz = "Eu gosto de Ruby" puts diz • Redigibilidade (Facilidade em escrever programas) • class Carro < Veiculo #suporte a abstração • carro = 1 carro = ”Gol” # não precisa definir o tipo da variável • Confiabilidade • Verificação de Tipos de variáveis (x.kind_of? Integer) • Tratamento de Exceção (raise, Throw/Catch) sexta-feira, 7 de outubro de 11
  • 9. Critérios de Avaliação • Facilidade de Aprendizado • Documentação para aprendizado • Similaridade com outras linguagens (C, Python, Smalltalk) • Reusabilidade • Possui o Paradigma Orientado a Objetos possuindo Herança • No Ruby existe o conceito de módulos (chamados categorias em Objective-C). Os módulos são coleções de métodos. class MyArray include Enumerable end • Portabilidade • Roda em todos Sistemas Operacionais (Instalando o RVM) sexta-feira, 7 de outubro de 11
  • 10. Onde se pode usar? Testes Automatizados •Web •Desktop •Scripting •Computação Científica •Inteligência Artifícial •Bioinformática •etc... sexta-feira, 7 de outubro de 11
  • 11. Plataformas Suportadas • Mac OS x •Linux •MS-DOS •BSDs (inclui o FreeBSD e o OpenBSD) •Acorn RISC OS •Microsoft Windows 95, 98, XP, and Vista •OS/2 •Amiga •Celulares Symbian Series 60 •Plataformas que contém uma Máquina Virtual Java (Usando JRuby ao invés de Ruby oficial) sexta-feira, 7 de outubro de 11
  • 12. Paradigmas Linguagem Ruby Faculdade Anglo Americano Curso: Ciência da Computação Nomes: Heverson Damasceno sexta-feira, 7 de outubro de 11