SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

PDF
Introdução a linguagem Python
PDF
Python - Programação funcional
PDF
PDF
Arduino: hardware hacking & coding dojo
PDF
Seminário de Python - LP 1/2015 - Grupo 2
PPT
Python No Terra (2006-12-21)
PDF
M2ti - Python Brasil
PDF
Python tão rápido quanto FORTRAN?
Introdução a linguagem Python
Python - Programação funcional
Arduino: hardware hacking & coding dojo
Seminário de Python - LP 1/2015 - Grupo 2
Python No Terra (2006-12-21)
M2ti - Python Brasil
Python tão rápido quanto FORTRAN?

Mais procurados (20)

PPTX
Python para Desenvolvedores
PPTX
PDF
Minicurso Python
PPTX
PDF
Pre bash
PDF
Delphi Conference 2011 - Desmistificando as Expressões Regulares
PPT
Tdc2010 web
PDF
Apresentação ruby + rails 2014
PDF
Python e tipagem estática
PDF
Por que Python? - Latinoware 2009
PDF
Terraform - Getting Started
PDF
Linguagens de Script: Caso de Estudo Lua
PDF
Perl Quiz 2009 (YAPC::BR)
PDF
Por que Python? - FURB - 2009
PDF
Python e 10 motivos por que devo conhece-la ?
PPTX
Algoritmos e Estrutura de Dados - Aula 04
PPTX
Linguagem lua
PDF
Conhecendo a JSR 223: Scripting for the Java Platform
PPSX
Comandos em python
PPT
A Linguagem Lua e suas Aplicações em Jogos
Python para Desenvolvedores
Minicurso Python
Pre bash
Delphi Conference 2011 - Desmistificando as Expressões Regulares
Tdc2010 web
Apresentação ruby + rails 2014
Python e tipagem estática
Por que Python? - Latinoware 2009
Terraform - Getting Started
Linguagens de Script: Caso de Estudo Lua
Perl Quiz 2009 (YAPC::BR)
Por que Python? - FURB - 2009
Python e 10 motivos por que devo conhece-la ?
Algoritmos e Estrutura de Dados - Aula 04
Linguagem lua
Conhecendo a JSR 223: Scripting for the Java Platform
Comandos em python
A Linguagem Lua e suas Aplicações em Jogos
Anúncio

Destaque (8)

PPT
1ª madrugada de testes net coders coding dojo
PDF
Tdc 2013 - Ecossistema Ruby
PPTX
OOD - Princípio Open/Closed
PPTX
OOD - Princípio da Substituição de Liskov
PPTX
Oportunidades para desenvolvedores
PPTX
OOD - Princípio da Inversão de Dependência
ODP
O Mágico Mundo do Entity Framework
PDF
Real-Time Django
1ª madrugada de testes net coders coding dojo
Tdc 2013 - Ecossistema Ruby
OOD - Princípio Open/Closed
OOD - Princípio da Substituição de Liskov
Oportunidades para desenvolvedores
OOD - Princípio da Inversão de Dependência
O Mágico Mundo do Entity Framework
Real-Time Django
Anúncio

Semelhante a Ruby versus Python (20)

ODP
Linguagem Python
PDF
JavaScript: agora é sério
PDF
PDF
Administração de sistemas usando Python
PPT
Apresentação Ruby no Dojo da UFBA
PDF
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
PDF
Desenvolvimento ágil de software com Ruby on Rails
PDF
Esta começando a programar para a web? Então começe com Rails
KEY
Python, a arma secreta do Google
ODP
Calourada2010
PDF
Minicurso de Rails - WTISC 2014
PDF
PHP para aplicações Web de grande porte
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
PDF
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
PPT
Apresentando a Linguagem de Programação Python
PPTX
SIMCIT 2013 - Mini-curso PHP
PDF
Python Pythononcampus Uva 060609
PDF
Ruby: Simples e Expressivo - Women Techmakers João Pessoa
Linguagem Python
JavaScript: agora é sério
Administração de sistemas usando Python
Apresentação Ruby no Dojo da UFBA
Minicurso_AprenziagemDeMaquina_scikit_learn_aula0.pdf
Desenvolvimento ágil de software com Ruby on Rails
Esta começando a programar para a web? Então começe com Rails
Python, a arma secreta do Google
Calourada2010
Minicurso de Rails - WTISC 2014
PHP para aplicações Web de grande porte
Palestra Desenvolvimento Ágil para Web com ROR UVA
TDC2018SP | Trilha Ruby - Programacao funcional com Ruby, potencialize e simp...
Apresentando a Linguagem de Programação Python
SIMCIT 2013 - Mini-curso PHP
Python Pythononcampus Uva 060609
Ruby: Simples e Expressivo - Women Techmakers João Pessoa

Mais de Priscila Mayumi (15)

PPTX
Microsoft MTACs
ODP
Entity framework 7
PPTX
Do 0 a estar online no Google App Engine
PPTX
Bolovo - problema antigo de arquitetura de software - não use por aí
PPTX
Hangout OOD – princípio da responsabilidade única
PPTX
Sistemas de recomendações e neo4J na cloud computing
PPTX
Conhecendo o Firefox OS
PDF
PHP no Windows Azure
PPT
Banco de dados de grafos
PPTX
Entity framework
PPTX
Entity framework migrations
PPTX
Entity framework
PPTX
Scripts Entity Framework
PPT
Trabalhando com banco de dados e Entity Framework
PPTX
Ninja migrations
Microsoft MTACs
Entity framework 7
Do 0 a estar online no Google App Engine
Bolovo - problema antigo de arquitetura de software - não use por aí
Hangout OOD – princípio da responsabilidade única
Sistemas de recomendações e neo4J na cloud computing
Conhecendo o Firefox OS
PHP no Windows Azure
Banco de dados de grafos
Entity framework
Entity framework migrations
Entity framework
Scripts Entity Framework
Trabalhando com banco de dados e Entity Framework
Ninja migrations

Último (20)

PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Émile Durkheim slide elaborado muito bom
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Aula sobre banco de dados com firebase db
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
Apple Pippin Uma breve introdução. - David Glotz
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Émile Durkheim slide elaborado muito bom
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula 18 - Manipulacao De Arquivos python
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Custos e liquidação no SAP Transportation Management, TM130 Col18
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Aula sobre banco de dados com firebase db
Processos na gestão de transportes, TM100 Col18
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Curso de Java 9 - (Threads) Multitarefas.pptx

Ruby versus Python

  • 1. 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
  • 2. Ruby x Python
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. Framework DJango Voltado para a web Padrão MVC Código aberto Mapeamento Objeto-Relacional  URL's Elegantes
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. Aplicações Ruby RubyTorrent Ruby Pong Ruby Sudoku ScreenSvr RTranscoder
  • 19. 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
  • 20. Caso de Sucesso Ruby on Rails Grupon Orangotag Twitter Github
  • 21. 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)
  • 22. 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