Ruby Uma Linguagem Atraente

Ruby Uma Linguagem Atraente

Ruby Uma Linguagem Atraente Marcello Moura Diego Roriz Centro de Recursos Computacionais Katon Agenciaˆ Digital Universidade Federal de Goias´ (UFG) Avenida C-104, Quadra 317, Lote 02, Loja 04 Caixa Postal 131 – 74.001-970 Jardim America´ – 74.290-030 Goianiaˆ – GO – Brazil Goianiaˆ – GO – Brazil [email protected] [email protected] Goiania,ˆ 20 de Novembro 2014 Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 1 / 24 Sumario´ 1 Introduc¸ao˜ 2 Informac¸ao˜ 3 Documentac¸ao˜ 4 Projetos 5 Conclusao˜ Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 2 / 24 Sumario´ 1 Introduc¸ao˜ 2 Informac¸ao˜ 3 Documentac¸ao˜ 4 Projetos 5 Conclusao˜ Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 3 / 24 Introduc¸ao˜ Ruby 1 e´ uma linguagem de programac¸ao˜ dinamicaˆ e livre com foco em simplicidade e produtividade. Ela tem uma elegante sintaxe que e´ natural para se ler e facil´ de escrever. 1David Flanagan and Yukihiro Matsumoto. The Ruby Programming Language. O’Reilly Media, Incorporated, 2008. Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 4 / 24 Summary 1 Introduc¸ao˜ 2 Informac¸ao˜ 3 Documentac¸ao˜ 4 Projetos 5 Conclusao˜ Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 5 / 24 Informac¸ao˜ Ja´ esteve entre as 10 linguagem mais utilizadas no ranking Tiobe. Atualmente na posic¸ao˜ 14 (Nov. 2014). Matz disse, “I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python.” 2. Ruby uma linguagem cuidadosamente balanceada. Matz afirma que ela mescla partes de sua linguagem favorita (Perl, Smalltalk, Eiffel, Ada, e Lisp) para formar uma nova linguagem que balanceia programac¸ao˜ funcional com imperativa. Alem´ disso: altamente leg´ıvel, extremamente portavel,´ e facilmente extens´ıvel. 2An Interview with the Creator of Ruby, (29-Nov. 2001). Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 6 / 24 Extensao˜ E´ poss´ıvel instalar bibliotecas para estender as funcionalidades da linguagem. Existe na biblioteca padrao˜ mais 100 bibliotecas inclu´ıdas na distribuic¸ao˜ da versao˜ 1.9.x. Atualmente v2.1.5. Existem repositorios´ de bibliotecas externas, as mais conhecidas sao:˜ RubyGems, Githube RubyForge. Uso e´ muito simples: gem search <palavra-chave> gem install <biblioteca> gem help Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 7 / 24 Ruby e outras linguagem Ruby e´ duas partes Perl, uma parte Python, e uma parte de Smalltalk, disse Colin Steele 3. O que esperar: Linguagem X para Ruby 4: Ruby a partir de C and C++ Ruby a partir de Java Ruby a partir de Perl Ruby a partir de PHP Ruby a partir de Python 3Arquivos O’Reilly. 4Ruby-lang.org – Documentation. Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 8 / 24 Minha comparac¸ao˜ Java class HelloWorldApp { public static void main(String[] args){ System.out.println("Hello World!"); } } Lisp (DEFUN HELLO () "Hello World!" ) Perl print "Hello World!\n"; Ruby puts "Hello World!" Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 9 / 24 Minha comparac¸ao˜ Java class HelloWorldApp { public static void main(String[] args){ System.out.println("Hello World!"); } } Lisp (DEFUN HELLO () "Hello World!" ) Perl print "Hello World!\n"; Ruby puts "Hello World!" Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 9 / 24 Minha comparac¸ao˜ Java class HelloWorldApp { public static void main(String[] args){ System.out.println("Hello World!"); } } Lisp (DEFUN HELLO () "Hello World!" ) Perl print "Hello World!\n"; Ruby puts "Hello World!" Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 9 / 24 Minha comparac¸ao˜ Java class HelloWorldApp { public static void main(String[] args){ System.out.println("Hello World!"); } } Lisp (DEFUN HELLO () "Hello World!" ) Perl print "Hello World!\n"; Ruby puts "Hello World!" Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 9 / 24 Destaque Metaprogramac¸ao˜ “Metaprogramming is writting code that writes code” 5. Biblioteca padrao˜ inclui modulos´ para: YAML, JSON, XML, CGI, OpenSSL, HTTP, FTP, RSS, curses, zlib, Tk, etc 6. Dispon´ıvel nas maiores plataformas de SO UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, etc. Outras implementac¸oes˜ de Ruby - MRI (Matz’s Ruby Interpreter) JRuby, MacRuby, Rubinius, mruby, IronRuby, etc. 5Perrota, Paolo (2010). Metaprogramming Ruby: Program Like the Ruby Pros. The Pragmatic Programmers, LLC. 6Britt, James. “Ruby 2.0.0 Standard Library Documentation”. Retrieved 2013-12-09. Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 10 / 24 Summary 1 Introduc¸ao˜ 2 Informac¸ao˜ 3 Documentac¸ao˜ 4 Projetos 5 Conclusao˜ Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 11 / 24 Documentac¸ao˜ E´ poss´ıvel consultar documentac¸oes˜ para iniciantes, manuais, livros, lista de emails, referencias, API, bibliotecas, etc. Existem muita informac¸ao˜ livre na internet. 7 7Ruby-lang.org – Documentation Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 12 / 24 Summary 1 Introduc¸ao˜ 2 Informac¸ao˜ 3 Documentac¸ao˜ 4 Projetos 5 Conclusao˜ Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 13 / 24 Projetos Alguns projetos legais feitos em Ruby 8: Sketchup: Aplicativo de modelagem 3D. Metasploit Framework: Ferramenta para explorac¸ao˜ de falhas de seguranc¸a. Ruby on Rais (RoR ou Rails): Meta Web Framework. Noosfero: Plataforma de redes sociais. Redmine: Gerenciador de Projetos. Spree: Web commerce. Weby: Gerenciador de Conteudo´ Web. ;-) 8Ruby-lang.org – Success-stories. Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 14 / 24 Summary 1 Introduc¸ao˜ 2 Informac¸ao˜ 3 Documentac¸ao˜ 4 Projetos 5 Conclusao˜ Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 15 / 24 Conclusao˜ Grupo de Usuarios.´ Lista de email e grupo de not´ıcias. IRC (salas de discussao˜ - mensagens instantaneas).ˆ Ruby core (Sistema de acompanhamento do projeto). Blogs, sites usuario´ e grupos. Aprendizado online 9. Conferencias.ˆ Envolva e divirtam-se! 9http://tryruby.org Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 16 / 24 Perguntas? Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 17 / 24 Ruby Uma Linguagem Atraente Marcello Moura Diego Roriz Centro de Recursos Computacionais Katon Agenciaˆ Digital Universidade Federal de Goias´ (UFG) Avenida C-104, Quadra 317, Lote 02, Loja 04 Caixa Postal 131 – 74.001-970 Jardim America´ – 74.290-030 Goianiaˆ – GO – Brazil Goianiaˆ – GO – Brazil [email protected] [email protected] Goiania,ˆ 20 de Novembro 2014 Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 18 / 24 Diferenciais Iterac¸ao˜ Duas caracter´ısticas do Ruby que sao˜ um pouco diferente do que voceˆ pode ter visto antes, e que levam algum tempo para se acostumar, sao˜ ”blocos” e iteradores. Em vez de um loop sobre um ´ındice (como com C, C++ ou Java pre-1.5),´ ou sobre uma lista (como Perl para (a) ..., ou Python para i em aList:...), com Ruby voceˆ vai muitas vezes ao inves´ ver: alguma_lista.each do |item| # Estamos dentro de um bloco. # tratamos agora com item. end Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 19 / 24 Diferenciais Tudo tem um valor Nao˜ ha´ diferenc¸a entre uma expressao˜ e uma declarac¸ao.˜ Tudo tem um valor, mesmo que o valor seja nulo. Isto e´ poss´ıvel: x= 10 y= 11 z= if x<y true else false end z # => true Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 20 / 24 Diferenciais Argumentos Como em Python, no Ruby 2.0 metodos´ podem ser definidos usando argumentos: def entregar(de: ’A’, para: nil, via: ’mail’) "Enviando de #{from} para #{to} via #{via}." end entregar(para: ’B’) # => "Enviando de A para B via mail." entregar(via: ’Celular’, de: ’B’, para: ’A’) # => "Enviando de B para A via Celular." Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 21 / 24 Diferenciais Metodos´ de nomes intuitivos Ruby possui metodos´ nativos com sinais como, por exemplo, pontos de interrogac¸ao˜ ou de exclamac¸ao.˜ a=[] a.empty? # => true a=[’a’,’b’,’c’] a.reverse # => [’c’,’b’,’a’] a # => [’a’,’b’,’c’] a.reverse! a # => [’c’,’b’,’a’] Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 22 / 24 Diferenciais Mensagens Uma chamada de metodo´ e´ realmente uma mensagem para outro objeto: # Acucar sintatico (syntactic sugar) 1+2 # Mesmo acima agora com sal sintatico # (syntactic salt) 1.+(2) # Que eh o mesmo que: 1.send "+",2 Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 23 / 24 Diferenciais Classes abertas Voceˆ pode abrir as classes para adicionar e modificar a qualquer momento. Mesmo para classes ancestrais como Fixnum ou mesmo Object. class Fixnum # Voce pode mas nao deveria fazer isso! def +(other) self- other end end =,.., ...,!, not,&&, and, ||, or, !=, !˜,:: # Esses nao podem ser redefinidos Marcello Moura, Diego Roriz Ruby – Uma Linguagem Atraente 24 / 24.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    27 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us