• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ruby versus Python
 

Ruby versus Python

on

  • 4,629 views

Apresentação de Ruby versus Python para a Universidade Metodista de São Paulo

Apresentação de Ruby versus Python para a Universidade Metodista de São Paulo

Statistics

Views

Total Views
4,629
Views on SlideShare
4,623
Embed Views
6

Actions

Likes
0
Downloads
27
Comments
1

2 Embeds 6

http://paper.li 4
http://dev.mayogax.me 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Ruby versus Python Ruby versus Python Presentation Transcript

      • Ruby versus Python
      Fernando Favini - 168824 Henrique Lira - 138459 Lukal Cândido - 157079 Priscila Mayumi Sato - 148968 Willians Vieira - 169080 Universidade Metodista de São Paulo
    • Ruby x Python
    • Dinâmica e Interpretada
      • Alto nível
      • Compilação no runtime
      • Operações de compilação no runtime
        • Redefinição de classes
        • Redefinição de métodos
        • Modificação de tipos de váriaveis
      • Eval
      • Closures
      • Programação funcional
      • Reflexão
    • Ruby
      • Tipagem dinâmica
      • Não há tipos primitivos
      • operadores que são métodos e podendo ser redefinidos
      • Escrita em C
      • Open Sorce
      • Sem especificações
      • Reflêxiva
      • Enxuta
      • Multiparadigma
        • Funcional
        • Orientada a objetos
        • Imperativa
        • Reflexiva
    • Framework Rails
      • Meta Framework
        • Active Record
        • Action Pack
        • Action Mailer
        • Active Support
        • Action WebServices
      • Desenvolvimento:
        • DRY (Don't Repeat Yourself, Não se repita)
        • Convention over configuration
      • Altamente Escalavel
      • Seguido por outras linguagens
        • Groovy
    • Ruby
      • Ruby fez 18 anos de criação no dia 24/02
      • É tida como a décima linguagem de programação mais utilizada
      • Foi criada por Yukihiro Matsumoto
      • O nome “Ruby” teria sido escolhido por ser uma pedra zodiacal de um dos colegas de Matz
      • O primeiro livro de Ruby foi lançado em setembro de 2000
    • Python
      • Altíssimo nível
      • Tipagem dinâmica porém forte
      • Licença compatível com a GPL
      • Blocos de códigos separados por indentação e não por chaves
      • Qualquer tipo de dado pode ser considerado um objeto
      • Coletor de lixo automático
      • Portável. Basta ter o interpretador
      • Multi paradgma
      • Pilhas incluídas. É só chamar a biblioteca XYZ que está tudo resolvido
      • Código aberto
    • Python
      • Pronuncia-se “Páifon” com o th fazendo som de f
      • Criada em 1990 por Guido Van Rossum
      • A imagem da linguagem é associada a cobra píton por causa do livro Programming Python da editora O’Reily
      • O nome surgiu por causa do grupo inglês de humor Monty Python, da qual o criador Guido Van Rossum era fã. O nome era para ser provisório
      • Muito usada pela NASA e pela Google, e até mesmo era usada em celulares Nokia e PlayStation 2
      • Basiada nas linguagens ABC
      • É a quinta linguagem mais usada no muno
    • Framework DJango
      • Voltado para a web
      • Padrão MVC
      • Código aberto
      • Mapeamento Objeto-Relacional 
      • URL's Elegantes
    • Closure
        • Closures criam funções com escopo alem do contexto léxico
        • Função acessando variáveis de outras funções
        • Implementação dummy de objeto
        • Variável semi estática
      Função A Função B Variavel A Função A Função B Retorno
    • Exemplo de closure – Python Contador def foo(): counter = [0] def bar(): counter[0] = counter[0] + 1 return counter[0] return bar count = foo() // 1 print count() // 2 print count() // 3 print count() // 4 print count() // 5
    • Exemplo de closure – Ruby Contador def new_counter i = 0 lambda { i += 1 } end c1 = new_counter puts c1.call // 1 puts c1.call // 2 puts c1.call // 3 puts c1.call // 4 puts c1.call // 5
    • Closure – Outros Exemplos Ruby Python def managers(emps) return emps.select {|e| e.isManager} end def managers(emps): return filter(lambda e: e.isManager, emps) def highPaid(emps) threshold = 150 return emps.select {|e| e.salary > threshold} end def highPaid(emps): threshold = 150 return filter(lambda e: e.salary > threshold, emps) def paidMore(amount) return Proc.new {|e| e.salary > amount} end def paidMore(amount): return lambda e: e.salary > amount
    • Teste Ruby versus Python
        • Teste: criar um livro de visitas e ver a resposta
        • Teste usando:
        • Ruby, banco de dados SQLite, rodando localmente sobre Mongrel, framework Rails
        • Python, Google Datastore rodando sobre GoogleAppEngine localmente, framework Webapp/Django
    • Resultado do teste
      • Tempo de desenvolvimento: 13 min
      • Linhas de código: 64
      • Tempo de resposta: 80ms
      • Tempo de desenvolvimento: 7 min
      • Linhas de código: 31
      • Tempo de resposta: 122 ms
      Python Ruby
    • Património e Filosofia
      • Herda da ABC, Algol e ModulaThree
      • “ Deve haver um meio mais simples”
      • Linguagem produtiva, depois divertida
      • Herda da Smaltalk e da Perl
      • “ Tudo é um Objeto”
      • Linguagem divertida, depois produtiva
      Python Ruby
    • Popularidade
      • É mais usada que Ruby
      • É menos pesquisada no Google, tendo sido pesquisada 5.000.000
      • É mais usada no ensino e pesquisa do que Ruby
      • Está em maior evidencia que Python
      • É mais pesquinada no Google, tendo sido pesquisada 6.120.000
      • É mais usado comercialmente que Python
      Python Ruby
    • Aplicações Ruby
      • RubyTorrent
      • Ruby Pong
      • Ruby Sudoku
      • ScreenSvr
      • RTranscoder
    • Aplicação Python
      • BitTorrent
      • Blender (scripts)
      • Vampire: The Masquerade – Bloodlines
      • Gajim
      • YUM
      • GNU Mailman
      • Civilization IV
      • Battlefield 2 (Add-Ons)
      • Freedom Force
      • The Temple of Elemental Evil
      • Frets on Fire
    • Caso de Sucesso Ruby on Rails
      • Grupon
      • Orangotag
      • Twitter
      • Github
    • Caso de sucesso Python/Django
      • Lupo
      • Universidade de Caxias do Sul
      • Muito usado pela Google
      • Muito usado pela NASA
      • Usado pela Industrial Light and Magic (empresa de George Lucas)
    • Webgráfia - 14/04/2011
      • http://c2.com/cgi/wiki?PythonVsRuby
      • http://en.wikipedia.org/wiki/Dynamic_programming_language
      • http://en.wikipedia.org/wiki/Interactive_Ruby_Shell
      • http://en.wikipedia.org/wiki/Python_(programming_language)
      • http://hilgenstieler.com/blog/main/modulos_em_python
      • http://ivan.truemesh.com/archives/000392.html
      • http://ivan.truemesh.com/archives/000411.html
      • http://ligeirinhos-ufs.blogspot.com/2008/10/histria-do-ruby.html
      • http://los.io.usp.br/matcurso/just.html
      • http://pt.wikipedia.org/wiki/Closure
      • http://pt.wikipedia.org/wiki/Ruby_on_Rails
      • http://rubyforge.org/
      • http://rubyonrails.org/applications
      • http://rubytorrent.rubyforge.org/
      • http://sourceforge.net
      • http://twitter.com/about/opensource
      • http://www.async.com.br/projects/python/pnp/basicoo.html
      • http://www.compute-rs.com/pt/conselho-711570.htm
      • http://www.freelancersbrasil.com/linguagens-compiladas-x-linguagens-interpretadas/
      • http://www.gpr.com.br/download/python21.pdf
      • http://www.pion.com.br/python/curso_python.html
      • http://www.python.org.br/wiki/AprendaProgramar
      • http://www.python.org.br/wiki/PerguntasFrequentes/SobrePython
      • http://www.python.org.br/wiki/PythonParaWeb#Caracter.2BAO0-sticas
      • http://www.rubyonrails.pro.br/aplicacoes
      • http://www.sanainside.com/2009/01/19/php-java-python-ruby-asp-qual-e-a-linguagem-de-programacao-mais-popular/
      • http://www.screencaster.com.br/php-x-python-x-ruby-comparando-as-linguagens-e-seus-frameworks/
      • http://www.wikivs.com/wiki/Python_vs_Ruby