SlideShare une entreprise Scribd logo
1  sur  278
Télécharger pour lire hors ligne
Apresentando Ruby
  e Ruby on Rails

   a apresentação já vai começar ...
Apresentando Ruby
  e Ruby on Rails
Fabio Akita
www.akitaonrails.com
  @akitaonrails
Fabio Akita
www.akitaonrails.com
  @akitaonrails




  1990
Ruby             1994
     (linguagem)




Ruby on Rails        2004
   (framework web)
1.8.7
    Ruby          1.9.2
                1.9.3-dev
                 2.3.11
Ruby on Rails     3.0.7
                3.1-RC1
1.8.7
    Ruby          1.9.2
                1.9.3-dev
                 2.3.11
Ruby on Rails     3.0.7
                3.1-RC1
1.8.7
    Ruby          1.9.2
                1.9.3-dev
                 2.3.11
Ruby on Rails     3.0.7
                3.1-RC1
Orientação a Objetos
UML
Diagrama de Classes
!?
       UML
Diagrama de Classes
!?
       UML
Diagrama de Classes
      POO?
!?
       UML
Diagrama de Classes
       POC!
Alan Kay

“A melhor maneira
de prever o futuro
   é inventá-lo”
Alan Kay
“Eu inventei o termo
Orientação a Objetos
  e posso dizer que
    eu não tinha
   C++ em mente”
Alan Kay
“Eu inventei o termo
Orientação a Objetos
  e posso dizer que
    eu não tinha
   C++ em mente”
Hello World
Hello World
#include <stdio.h>

int main()
{
   printf("Hello worldn");
   return 0;
}
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
Transcript show: 'Hello, world!'.
puts 'Hello World'
Procedures??
Procedures??
puts 'Hello World'
=> Hello World
puts 'Hello World'
=> Hello World



Kernel.puts 'Hello World'
=> Hello World
puts 'Hello World'
=> Hello World



Kernel.puts 'Hello World'
=> Hello World



puts self.class
puts 'Hello World'
=> Hello World



Kernel.puts 'Hello World'
=> Hello World

                     this
puts self.class
puts 'Hello World'
=> Hello World



Kernel.puts 'Hello World'
=> Hello World

                     this
puts self.class
 => Object
puts 'Hello World'
=> Hello World



Kernel.puts 'Hello World'
=> Hello World

                     this
puts self.class
 => Object



Object.ancestors
 => [Object, Kernel, BasicObject]
puts 'Hello World'
=> Hello World



Kernel.puts 'Hello World'
=> Hello World

                     this
puts self.class
 => Object



Object.ancestors
 => [Object, Kernel, BasicObject]
"teste".class
 => String
"teste".class
 => String


1.class
"teste".class
 => String


1.class
 => Fixnum
"teste".class
 => String


1.class
 => Fixnum


true.class
 => TrueClass
"teste".class
 => String


1.class
 => Fixnum


true.class
 => TrueClass


nil
"teste".class
 => String


1.class
 => Fixnum


true.class
 => TrueClass


nil.class
 => NilClass
"teste".class
 => String


1.class
 => Fixnum


true.class
 => TrueClass

                NullPointerException!?
nil.class
 => NilClass
"teste".class
 => String


1.class
 => Fixnum


true.class
 => TrueClass


nil.class
 => NilClass
1 + 2
1 + 2


1.+(2)
def hello(name)
  return "Hello, " + name
end

puts hello("Fabio")
 => "Hello, Fabio"
def hello(name)
  return "Hello, " + name
end

puts hello "Fabio"
 => "Hello, Fabio"
def hello(name)
  return "Hello, " + name
end

puts hello "Fabio"
 => "Hello, Fabio"


                            Parênteses
                            Opcionais
def hello(name)
  "Hello, " + name
end

puts hello "Fabio"
 => "Hello, Fabio"
def hello(name)
  "Hello, " + name
end

puts hello "Fabio"
                       return
 => "Hello, Fabio"
                     automático
def hello(name)
  "Hello, #{name}"
end

puts hello "Fabio"
 => "Hello, Fabio"
def hello(name)
  "Hello, #{name}"
end

puts hello "Fabio"
 => "Hello, Fabio"   Interpolação
class String
  def hello(name)
    "#{self}, #{name}"
  end
end
class String
  def hello(name)
    "#{self}, #{name}"
  end
end


"Hello".hello "Fabio"
 => "Hello, Fabio"
class String
  def hello(name)
    "#{self}, #{name}"
  end
end


"Hello".hello "Fabio"    Classes
 => "Hello, Fabio"
                         Abertas!
module Legal
  def bu!
    "Buuu!"
  end
end

class String
  include Legal
end

class Fixnum
  include Legal
end

"foo".bu!
 => "Buuu!"

10.bu!
 => "Buuu!"
module Legal
  def bu!
    "Buuu!"
  end
end

class String
  include Legal
end

class Fixnum
  include Legal
end

"foo".bu!
 => "Buuu!"

10.bu!
 => "Buuu!"
module Legal
  def bu!
    "Buuu!"
  end
end

class String
  include Legal
end

class Fixnum
                  Module
  include Legal
end                Mixin

"foo".bu!
 => "Buuu!"

10.bu!
 => "Buuu!"
module Legal
  def bu!
    "Buuu!"
  end
end

class String
  include Legal
end

class Fixnum
                  Module
  include Legal
end                Mixin

"foo".bu!
 => "Buuu!"

10.bu!
 => "Buuu!"
module Legal
  def bu!
    "Buuu!"
  end
end

class String
  include Legal
end

class Fixnum
                  Module
  include Legal
end                Mixin

"foo".bu!
 => "Buuu!"

10.bu!
 => "Buuu!"
require 'rubygems'
require 'active_support'

Time.now + 1.day
 => 2011-05-18 11:44:20 -0300

Time.now + 1.week
 => 2011-05-24 11:44:24 -0300

(1.gigabyte - 100.megabytes) / 1.megabyte
 => 924
require 'rubygems'
require 'active_support'

Time.now + 1.day
 => 2011-05-18 11:44:20 -0300

Time.now + 1.week
 => 2011-05-24 11:44:24 -0300

(1.gigabyte - 100.megabytes) / 1.megabyte
 => 924
require 'rubygems'
require 'active_support'

Time.now + 1.day
 => 2011-05-18 11:44:20 -0300

Time.now + 1.week
 => 2011-05-24 11:44:24 -0300

(1.gigabyte - 100.megabytes) / 1.megabyte
 => 924
require 'rubygems'
require 'active_support'

Time.now + 1.day
 => 2011-05-18 11:44:20 -0300

Time.now + 1.week
 => 2011-05-24 11:44:24 -0300

(1.gigabyte - 100.megabytes) / 1.megabyte
 => 924
list = [1,2,3,4,5]
soma = 0

for i in list
  soma += i
end

puts soma
 => 15
list = [1,2,3,4,5]
soma = 0

for i in list
  soma += i
end

puts soma
 => 15
list = [1,2,3,4,5]
soma = 0

for i in list
  soma += i
end

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) { |total, i| total += i }

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) { |total, i| total += i }

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) { |total, i| total += i }

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) { |total, i| total += i }

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) { |total, i| total += i }

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) do |total, i|
  total += i
end

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) do |total, i|
  total += i
end

puts soma                    Anonymous
 => 15                       Inner Class?
list = [1,2,3,4,5]

soma = list.inject(0) do |total, i|
  total += i
end

puts soma
 => 15
list = [1,2,3,4,5]

soma = list.inject(0) do |total, i|
  total += i
end

puts soma
 => 15
                              CLOSURE!
class Foo
  def method_missing(method)
    print "#{method} called"
  end
end

Foo.new.bar
 => "bar called"

Foo.new.send(:bar)
 => "bar called"
class Foo
  def method_missing(method)
    print "#{method} called"
  end
end

Foo.new.bar
 => "bar called"

Foo.new.send(:bar)
 => "bar called"
class Foo
  def method_missing(method)
    print "#{method} called"
  end
end

Foo.new.bar
 => "bar called"

Foo.new.send(:bar)
 => "bar called"
                        Messages!
<?xml version="1.1"
  encoding="US-ASCII"?>
<Hello>World!</Hello>
<date>
  <year>2006</year>
  <month>01</month>
  <day>01</day>
</date>
require 'builder'
xml = Builder::XmlMarkup.new

xml.instruct! :xml             <?xml version="1.1"
                                 encoding="US-ASCII"?>
xml.Hello "World!"             <Hello>World!</Hello>
xml.date do                    <date>
  xml.year "2006"                <year>2006</year>
  xml.month "01"                 <month>01</month>
  xml.day "01"                   <day>01</day>
end                            </date>
require 'builder'
xml = Builder::XmlMarkup.new

xml.instruct! :xml             <?xml version="1.1"
                                 encoding="US-ASCII"?>
xml.Hello "World!"             <Hello>World!</Hello>
xml.date do                    <date>
  xml.year "2006"                <year>2006</year>
  xml.month "01"                 <month>01</month>
  xml.day "01"                   <day>01</day>
end                            </date>
require 'builder'
xml = Builder::XmlMarkup.new

xml.instruct! :xml             <?xml version="1.1"
                                 encoding="US-ASCII"?>
xml.Hello "World!"             <Hello>World!</Hello>
xml.date do                    <date>
  xml.year "2006"                <year>2006</year>
  xml.month "01"                 <month>01</month>
  xml.day "01"                   <day>01</day>
end                            </date>
require 'builder'
xml = Builder::XmlMarkup.new

xml.instruct! :xml             <?xml version="1.1"
                                 encoding="US-ASCII"?>
xml.Hello "World!"             <Hello>World!</Hello>
xml.date do                    <date>
  xml.year "2006"                <year>2006</year>
  xml.month "01"                 <month>01</month>
  xml.day "01"                   <day>01</day>
end                            </date>
require 'builder'
xml = Builder::XmlMarkup.new

xml.instruct! :xml             <?xml version="1.1"
                                 encoding="US-ASCII"?>
xml.Hello "World!"             <Hello>World!</Hello>
xml.date do                    <date>
  xml.year "2006"                <year>2006</year>
  xml.month "01"                 <month>01</month>
  xml.day "01"                   <day>01</day>
end                            </date>
require 'rubygems'
require 'mechanize'

a = Mechanize.new do |agent|
  agent.user_agent_alias = 'Mac Safari'
end

a.get('http://google.com/') do |page|
  search_result = page.form_with(:name => 'f') do |search|
    search.q = 'Hello world'
  end.submit

  search_result.links.each do |link|
    puts link.text
  end
end
require 'rubygems'
require 'mechanize'

a = Mechanize.new do |agent|
  agent.user_agent_alias = 'Mac Safari'
end

a.get('http://google.com/') do |page|
  search_result = page.form_with(:name => 'f') do |search|
    search.q = 'Hello world'
  end.submit

  search_result.links.each do |link|
    puts link.text
  end
end
require 'rubygems'
require 'mechanize'

a = Mechanize.new do |agent|
  agent.user_agent_alias = 'Mac Safari'
end

a.get('http://google.com/') do |page|
  search_result = page.form_with(:name => 'f') do |search|
    search.q = 'Hello world'
  end.submit

  search_result.links.each do |link|
    puts link.text
  end
end
require 'rubygems'
require 'mechanize'

a = Mechanize.new do |agent|
  agent.user_agent_alias = 'Mac Safari'
end

a.get('http://google.com/') do |page|
  search_result = page.form_with(:name => 'f') do |search|
    search.q = 'Hello world'
  end.submit

  search_result.links.each do |link|
    puts link.text
  end
end
class Twitter
  include HTTParty
  base_uri 'twitter.com'
  basic_auth 'username', 'password'
end

Twitter.post('/statuses/update.json',
  :query => {
     :status => "It's an HTTParty and everyone is invited!"
  })
class Twitter
  include HTTParty
  base_uri 'twitter.com'
  basic_auth 'username', 'password'
end

Twitter.post('/statuses/update.json',
  :query => {
     :status => "It's an HTTParty and everyone is invited!"
  })
1990                                                                                                                            1995
                                                                                                                      PostScript level 2                                                                                      PostScript level 3
                                                                                                                            1992                                                                                             september 11, 1996
                   OO Forth
 Forth              1987
986

ect Logo                         Tcl           Tcl/Tk
1986                           mid 1988       end 1988
                                                                                                 Fortran 90 ISO
                                                                                                      1991
                                      A                                                                                A+
                                     1988                                                                             1992

                                                                       J                                                                                                                                                              K
MPS (FIPS)                                                           1990                                           MUMPS ISO                                                                                                       1996
                                                                                                                                                                                M                                           M ANSI                  Open M
 1986                                                                                                                 1992                                                     1994                                        dec 8, 1995            dec 11, 1995
                                     Modula 3                                                                                                                                                                Delphi
                                      1988                                                                                                                                                                march 2, 1995                 APL96
                                                                                                                                                                                                                                         1996
                    ABC
                    1987
                                                                                                   Python
                                                  Borland                                           1991
 Object Pascal
     1985                                       Turbo Pascal

                                                                                                                                                                                                                          ANSI Rexx
                                                                                                                                                                                                                                                                 f
                            Oberon                                                                   Oberon-2
                             1987                                                                     1991
                                                                                                                                                                                                                                                    Modula-2 ISO
                                                                                                                                                                                                          Ada 95                                     june 1, 1996
                        Ada ISO
                         1987                                                                                                                                                                              1995
                                                                                                  NetRexx
                                                                                                   1991

                                            ANSI C                      ISO C                                                                                                                                                        ISO C
                                             (C89)                      (C90)                                                                                                                                                        (C95)
                                              1989                 december 15, 1990                                                                                                                                              april 1, 1996            JScrip
                                                                                                                                                                                                                                                          may 19

                                                                                                                              Cmm                                                                     LiveScript               JavaScript
                                                                                                                              1992                                                                       1995                december 1995
                                                         ARM C++
                                                           1989

                                                                                        Oak                                                                                                                   Java 1
                                                                                     june 1991                                                                                                              may 23, 1995
                                                                                                                                                 Ruby
                                                                                                                                           february 24, 1993                                                                   Ruby 0.95
                                                                                                                                                                                                                             december 1995



                     Self                                                                                                                                                                                               Self 4.0
          Eiffel                            Eiffel 2                                                                                        Eiffel 3                                                                 july 10, 1995                Eiffel 4
          1986                               1988                                                                                            1993                                                                                            december 11, 1996
                                                                                                                                                                                                      PHP/FI
                                                                                                                                                                                                       1995
                                                                                                       Sather 0.1                                                         Sather 1.0                                      Sather 1.1
                                                                                                       june 1991                                                          mid-1994                                      september 1995

   Perl 1.000              Perl 2.000              Perl 3.000                               Perl 4.000                                                                             Perl 5.000
ecember 18, 1987        january 5, 1988         october 18, 1989                           march 21, 1991                                                                       october 18, 1994
                                                                                                                                                                                                                                         Objective Caml
                                                                                                                                                                                                                                              1996

sic 1.0                QuickBasic 4.5         MS Basic PDS 7.0        MS PDS 7.1                                                                       Visual Basic 3.0                                        Visual Basic 4.0
                                                   1989                                          Visual Basic 1.0       Visual Basic 2.0
5                          1988                                         1990                      may 20, 1991            march 1992                       june 93                                             september 1995
                                            Clos
                                            1989                                                                                                                            Common Lisp ANSI
                                                                                                                                                                             december 8, 1994

                                                                             Scheme IEEE
                                                                                 1990
              Haskell 1.0                                            Haskell 1.1                                             Haskell 1.2                                                                                               Haskell 1.3
                1987                                                 april 1, 1990                                           march 1992                                                                                                may 1996
                                                                                     SML ‘90
                                                                                      1990

ml                                                                                                     Caml 2-6.1                               Caml 3.1
87                                                                                                       1991                                    1993
1990                                                                                                                            1995
                                                                                                                      PostScript level 2                                                                                      PostScript level 3
                                                                                                                            1992                                                                                             september 11, 1996
                   OO Forth
 Forth              1987
986

ect Logo                         Tcl           Tcl/Tk
1986                           mid 1988       end 1988
                                                                                                 Fortran 90 ISO
                                                                                                      1991
                                      A                                                                                A+
                                     1988                                                                             1992

                                                                       J                                                                                                                                                              K
MPS (FIPS)                                                           1990                                           MUMPS ISO                                                                                                       1996
                                                                                                                                                                                M                                           M ANSI                  Open M
 1986                                                                                                                 1992                                                     1994                                        dec 8, 1995            dec 11, 1995
                                     Modula 3                                                                                                                                                                Delphi
                                      1988                                                                                                                                                                march 2, 1995                 APL96
                                                                                                                                                                                                                                         1996
                    ABC
                    1987
                                                                                                   Python
                                                  Borland                                           1991
 Object Pascal
     1985                                       Turbo Pascal

                                                                                                                                                                                                                          ANSI Rexx
                                                                                                                                                                                                                                                                 f
                            Oberon                                                                   Oberon-2
                             1987                                                                     1991
                                                                                                                                                                                                                                                    Modula-2 ISO
                                                                                                                                                                                                          Ada 95                                     june 1, 1996
                        Ada ISO
                         1987                                                                                                                                                                              1995
                                                                                                  NetRexx
                                                                                                   1991

                                            ANSI C                      ISO C                                                                                                                                                        ISO C
                                             (C89)                      (C90)                                                                                                                                                        (C95)
                                              1989                 december 15, 1990                                                                                                                                              april 1, 1996            JScrip
                                                                                                                                                                                                                                                          may 19

                                                                                                                              Cmm                                                                     LiveScript               JavaScript
                                                                                                                              1992                                                                       1995                december 1995
                                                         ARM C++
                                                           1989

                                                                                        Oak                                                                                                                   Java 1
                                                                                     june 1991                                                                                                              may 23, 1995
                                                                                                                                                 Ruby
                                                                                                                                           february 24, 1993                                                                   Ruby 0.95
                                                                                                                                                                                                                             december 1995



                     Self                                                                                                                                                                                               Self 4.0
          Eiffel                            Eiffel 2                                                                                        Eiffel 3                                                                 july 10, 1995                Eiffel 4
          1986                               1988                                                                                            1993                                                                                            december 11, 1996
                                                                                                                                                                                                      PHP/FI
                                                                                                                                                                                                       1995
                                                                                                       Sather 0.1                                                         Sather 1.0                                      Sather 1.1
                                                                                                       june 1991                                                          mid-1994                                      september 1995

   Perl 1.000              Perl 2.000              Perl 3.000                               Perl 4.000                                                                             Perl 5.000
ecember 18, 1987        january 5, 1988         october 18, 1989                           march 21, 1991                                                                       october 18, 1994
                                                                                                                                                                                                                                         Objective Caml
                                                                                                                                                                                                                                              1996

sic 1.0                QuickBasic 4.5         MS Basic PDS 7.0        MS PDS 7.1                                                                       Visual Basic 3.0                                        Visual Basic 4.0
                                                   1989                                          Visual Basic 1.0       Visual Basic 2.0
5                          1988                                         1990                      may 20, 1991            march 1992                       june 93                                             september 1995
                                            Clos
                                            1989                                                                                                                            Common Lisp ANSI
                                                                                                                                                                             december 8, 1994

                                                                             Scheme IEEE
                                                                                 1990
              Haskell 1.0                                            Haskell 1.1                                             Haskell 1.2                                                                                               Haskell 1.3
                1987                                                 april 1, 1990                                           march 1992                                                                                                may 1996
                                                                                     SML ‘90
                                                                                      1990

ml                                                                                                     Caml 2-6.1                               Caml 3.1
87                                                                                                       1991                                    1993
1954                                      1957                                            1960                                                              1965                                                        1970                                                                1975                                                                        1980                                                               1985
                                                                                                                                                                                                                                                                                                                                                                                                        PostScript
                                                                                                                                                                                                                                                                                                                                                                                                          1982

                                                                                                                                                                                                                  Forth                                                                                                                FIG-Forth                                                                     Forth-83                                 ANS Forth
                                                                                                                                                                                                                  1968                                                                                                                   1978                                                                          1983                                     1986

                                                                                                                                                                                                                  Logo                                                                                                                                                                                                                                         Object L
                                                                                                                                                                                                                  1968                                                                                                                                                                                                                                            1986

                                 FORTRAN I      FORTRAN II             FORTRAN III                                         FORTRAN IV                                        FORTRAN IV                                                                                                                                             FORTRAN V
        FORTRAN                                                                                                                                                             (Fortran 66 ANS)                                                                                                                                      (Fortran 77 ANSI)
       november 1954             october 1956      1957                  end-1958                                             1962
                                                                                                                                                                                  1966                                                                                                                                                april 1978
                                                                                                                                                                                                                                     Prolog                                                                                                                                                              Prolog II                   Prolog III
                                                                                                                                                                                                                                      1970                                                                                                                                                              october 1982                   1984
                                                                                                                                                                                                                                                                                                                                                                                                                                         Sharp APL
                                                                                                                                                            JOSS     TELCOMP         MUMPS                                                                                                                                  MUMPS (ANSI)                                                                                                                       MUMPS (
                                                                                                                                                            1964       1965           1966                                                                                                                                 september 15, 1977                                                                                                                     1986

                                                                                                        APL                                                                                                                                                                                                                                                                                                                             APL 2
                                                                                                        1960                                                                                                                                                                                                                                                                                                                          august 1984
                                                                                                                                                                                                                                                                                                                                                                                                  B
                                                                                                                                                                                                                                                                                                                                                                                                 1981

                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Obj
                                                        B-O           Flow-Matic        COBOL                  COBOL 61           COBOL 61                   COBOL                                            COBOL 68 ANS                                     COBOL 74 ANSI                                                                                                                                                             COBOL 85 ISO/ANSI
                                                        1957             1958            1959                    1961              Extended                   1965                                                1968                                             1974                                                                                                                                                                        1985
                                                                                                                                     1962                                                                                                                                                                                                                         Rex 1.00          Rex 2.00            Rex 3.00             Rexx 3.20
                                                                                                                                                                                                                                                                                                                                                                  may 1979           1980                1982                  1984
                                                                                                                                                                                                                                      Pascal                                                                                                                                                                       Pascal AFNOR
                                                                                                                                                                                                                                       1970                                                                                                                                                                             1983
                                                                                                                                                                                                                                                      PL/M                                          Modula                                                           Modula 2
                                                                                                                                                                                                                                                      1972                                           1975                                                             1979
                                                                                                                                                                                                                                                                                                                                                      Ada                                                      Ada 83 ANSI
                                                                                                                                                                                                                                                                                                                                                      1979                                                     january 1983
                                                                                                                                                    PL/I                                                                                                                                                        PL/1 ANS
                                                                                                                                                    1964                                                                                                                                                          1976                                                                                                    Concurrent C
                                                                                                                                                                                                                                                                                                                                                                                                                             1984
                                                                                                                                      CPL                                                        BCPL                      B                    C                                                                                        C (K&R)
                                                                                                                                                                                               july 1967                                                                                                                                   1978                      Classic C
                                                                                                                                      1963                                                                                1969                 1971
                                                                                          JOVIAL   JOVIAL I    JOVIAL II                                       JOVIAL 3                                                                                                                                                                                                                                            Objective-C
                                                                                            1959     1960        1961                                            1965                                                                                                                                                                                                                                                 1983

                                                                                                                                                CORAL 64                        CORAL 66                                                                                                                                                                                                  C with Classes
                                                                                                                                                  1964                            1966                                                                                                                                                                                                                                              C++
                                                                                                                                                                                                                                                                                                                                                                                            april 1980                           july 1983
                                                                                                                                                                                                                                                                        CLU
                                                                                                                                                                                       Simula 67                                                                        1974
                                                                                                                                                  Simula I
                                                                                                                                                    1964                                 1967
                                                                                                                                                                                  ALGOL W                                                                                                                                  Mesa
                                                                           ALGOL 58                   ALGOL 60                                                                      1966                   ALGOL 68                                                                                                        1977
                                                               IAL                                                                                                                                                                                                                                                                                                                                                       Cedar
                                                               1958          1958                       1960                                                                                                december                                                                                                                                                                                                     1983
                                                                                                                                                                                                              1968
                                                                                                                                                       GOGOL                           GOGOL III                                     Smalltalk        Smalltalk-72                Smalltalk-74                  Smalltalk-76                          Smalltalk-78                  Smalltalk-80
                                                                                                                                                        1964                             1967                                          1971              1972                        1974                          1976                                  1978                          1980
                                                                                                                                                                                                                                                                  sed
                                                                                                                                                                                                           Sail                                                  1973                                  Mainsail
                                                                                                                                                                                                           1968                                                                                         1975
                                                                                                                                                                                 ISWIM                                                                                                                                                             awk                                                                                              nawk
                                                                                                                                                                                  1966                                                                                                                                                             1978                                                                                             1985
                                                                                                                                                                                                                                                                                                                                                                                          KRC
                                                                                                                                                                                                                                                                                                                                                                                          1981
                                                                                                                                                                                                                                                                                                                                                       csh
                                                                                                                                                                                                                                                                                                                       SASL                        october 1978
                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Per
                                                                                                                                                                                                                                                                                                                       1976                                                                                     Miranda                                          decemb
                                                                                                                                                                                                                                                                                                                                                                                                                 1982
                                                                                                                                                                                                                           sh
                                                                                                                                                                                                                          1969
                                                                                                                                               BASIC                                                                                                                                             MS Basic 2.0                                                                           BASICA                       GW-Basic                              QuickBasic 1.0
                                                                                                                                              may 1, 1964                                                                                                                                         july 1975                                                                              1981                         1983                                     1985

                                                                        Lisp          Lisp 1                               Lisp 1.5                                                                                                                                                                                                                                                                                             Common Lisp
                                                                        1958          1959                                  1962                                                                                                                                                                                                                                                                                                   1984

                                                                                                                                                                                                                                                                                                 Scheme                               Scheme MIT                                                                            Scheme 84
                                                                                                                                                                                                                                                                                                  1975                                   1978                                                                                 1984

                                                                                                                                                                                                                                                                           ML                                                                                                                                                        SML
                                                                                                                                                                                                                                                                           1973                                                                                                                                                      1984
                                                                                                                                                                                                                                                                                                                SL5            Icon
       Languages                                                                                                       SNOBOL                 SNOBOL 2         SNOBOL 3                          SNOBOL 4                                                                                                       1976           1977
    february 27, 2011                                                                                                                                                                                                                                                                                                                                                                                                                                          Caml
                                                                                                                         1962                  april 1964        1965                              1967                                                                                                                                                                                                                                                        1987
  ! Éric Lévénez 1999-2011
<http://www.levenez.com/lang/>




                                                                                                                           1                                                   2                                                 3                                             4
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails
SEMAC 2011 - Apresentando Ruby e Ruby on Rails

Contenu connexe

Tendances

Stack Overflow Austin - jQuery for Developers
Stack Overflow Austin - jQuery for DevelopersStack Overflow Austin - jQuery for Developers
Stack Overflow Austin - jQuery for DevelopersJonathan Sharp
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuerycolinbdclark
 
Turn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesTurn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesjerryorr
 
jQuery Features to Avoid
jQuery Features to AvoidjQuery Features to Avoid
jQuery Features to Avoiddmethvin
 
Unobtrusive javascript with jQuery
Unobtrusive javascript with jQueryUnobtrusive javascript with jQuery
Unobtrusive javascript with jQueryAngel Ruiz
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceBen Scofield
 
Searching ORM: First Why, Then How
Searching ORM: First Why, Then HowSearching ORM: First Why, Then How
Searching ORM: First Why, Then Howsfarmer10
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the FinishYehuda Katz
 
And now you have two problems. Ruby regular expressions for fun and profit by...
And now you have two problems. Ruby regular expressions for fun and profit by...And now you have two problems. Ruby regular expressions for fun and profit by...
And now you have two problems. Ruby regular expressions for fun and profit by...Codemotion
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORMYaroslav Muravskyi
 
Модерни езици за програмиране за JVM (2011)
Модерни езици за програмиране за JVM (2011)Модерни езици за програмиране за JVM (2011)
Модерни езици за програмиране за JVM (2011)Bozhidar Batsov
 
The state of your own hypertext preprocessor
The state of your own hypertext preprocessorThe state of your own hypertext preprocessor
The state of your own hypertext preprocessorAlessandro Nadalin
 
A Little Backbone For Your App
A Little Backbone For Your AppA Little Backbone For Your App
A Little Backbone For Your AppLuca Mearelli
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Anatoly Sharifulin
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hopeMarcus Ramberg
 
Moving from Django Apps to Services
Moving from Django Apps to ServicesMoving from Django Apps to Services
Moving from Django Apps to ServicesCraig Kerstiens
 

Tendances (20)

Stack Overflow Austin - jQuery for Developers
Stack Overflow Austin - jQuery for DevelopersStack Overflow Austin - jQuery for Developers
Stack Overflow Austin - jQuery for Developers
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuery
 
Turn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modulesTurn your spaghetti code into ravioli with JavaScript modules
Turn your spaghetti code into ravioli with JavaScript modules
 
jQuery Features to Avoid
jQuery Features to AvoidjQuery Features to Avoid
jQuery Features to Avoid
 
Unobtrusive javascript with jQuery
Unobtrusive javascript with jQueryUnobtrusive javascript with jQuery
Unobtrusive javascript with jQuery
 
Assetic (Zendcon)
Assetic (Zendcon)Assetic (Zendcon)
Assetic (Zendcon)
 
And the Greatest of These Is ... Space
And the Greatest of These Is ... SpaceAnd the Greatest of These Is ... Space
And the Greatest of These Is ... Space
 
Es.next
Es.nextEs.next
Es.next
 
Searching ORM: First Why, Then How
Searching ORM: First Why, Then HowSearching ORM: First Why, Then How
Searching ORM: First Why, Then How
 
Rails 3: Dashing to the Finish
Rails 3: Dashing to the FinishRails 3: Dashing to the Finish
Rails 3: Dashing to the Finish
 
And now you have two problems. Ruby regular expressions for fun and profit by...
And now you have two problems. Ruby regular expressions for fun and profit by...And now you have two problems. Ruby regular expressions for fun and profit by...
And now you have two problems. Ruby regular expressions for fun and profit by...
 
The effective use of Django ORM
The effective use of Django ORMThe effective use of Django ORM
The effective use of Django ORM
 
Модерни езици за програмиране за JVM (2011)
Модерни езици за програмиране за JVM (2011)Модерни езици за програмиране за JVM (2011)
Модерни езици за програмиране за JVM (2011)
 
The state of your own hypertext preprocessor
The state of your own hypertext preprocessorThe state of your own hypertext preprocessor
The state of your own hypertext preprocessor
 
A Little Backbone For Your App
A Little Backbone For Your AppA Little Backbone For Your App
A Little Backbone For Your App
 
Django Heresies
Django HeresiesDjango Heresies
Django Heresies
 
Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!Mojolicious. Веб в коробке!
Mojolicious. Веб в коробке!
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
 
Moving from Django Apps to Services
Moving from Django Apps to ServicesMoving from Django Apps to Services
Moving from Django Apps to Services
 
Assetic (OSCON)
Assetic (OSCON)Assetic (OSCON)
Assetic (OSCON)
 

En vedette (7)

Szarotka Ia 18
Szarotka Ia 18Szarotka Ia 18
Szarotka Ia 18
 
Paweł Borowski
Paweł BorowskiPaweł Borowski
Paweł Borowski
 
Gebakken Lucht [dutch/english]
Gebakken Lucht [dutch/english]Gebakken Lucht [dutch/english]
Gebakken Lucht [dutch/english]
 
Analysis Brussels Canal quarter
Analysis Brussels Canal quarterAnalysis Brussels Canal quarter
Analysis Brussels Canal quarter
 
The Right To Education Roma Students In The European Union
The Right To Education  Roma Students In The European UnionThe Right To Education  Roma Students In The European Union
The Right To Education Roma Students In The European Union
 
Terra Incognita [dutch]
Terra Incognita [dutch]Terra Incognita [dutch]
Terra Incognita [dutch]
 
Convincing people to get involved in Cuenca, Ecuador VLIR-project
Convincing people to get involved in Cuenca, Ecuador VLIR-projectConvincing people to get involved in Cuenca, Ecuador VLIR-project
Convincing people to get involved in Cuenca, Ecuador VLIR-project
 

Similaire à SEMAC 2011 - Apresentando Ruby e Ruby on Rails

Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasminePaulo Ragonha
 
A tour on ruby and friends
A tour on ruby and friendsA tour on ruby and friends
A tour on ruby and friends旻琦 潘
 
The report of JavaOne2011 about groovy
The report of JavaOne2011 about groovyThe report of JavaOne2011 about groovy
The report of JavaOne2011 about groovyYasuharu Nakano
 
Ruby - Uma Introdução
Ruby - Uma IntroduçãoRuby - Uma Introdução
Ruby - Uma IntroduçãoÍgor Bonadio
 
FLiSOL - Oficina Ruby on Rails
FLiSOL - Oficina Ruby on RailsFLiSOL - Oficina Ruby on Rails
FLiSOL - Oficina Ruby on RailsRonaldo Fuzinato
 
Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with RackDonSchado
 
Torquebox OSCON Java 2011
Torquebox OSCON Java 2011Torquebox OSCON Java 2011
Torquebox OSCON Java 2011tobiascrawley
 
Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Wen-Tien Chang
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
Javascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the UglyJavascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the UglyThorsten Suckow-Homberg
 
Reactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJSReactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJSMartin Hochel
 
Playing With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsPlaying With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsMike Hagedorn
 
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan IvovichDC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan IvovichSmartLogic
 

Similaire à SEMAC 2011 - Apresentando Ruby e Ruby on Rails (20)

Play vs Rails
Play vs RailsPlay vs Rails
Play vs Rails
 
An introduction to Ruby
An introduction to RubyAn introduction to Ruby
An introduction to Ruby
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and JasmineSingle Page Web Applications with CoffeeScript, Backbone and Jasmine
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
 
A tour on ruby and friends
A tour on ruby and friendsA tour on ruby and friends
A tour on ruby and friends
 
The report of JavaOne2011 about groovy
The report of JavaOne2011 about groovyThe report of JavaOne2011 about groovy
The report of JavaOne2011 about groovy
 
Ruby - Uma Introdução
Ruby - Uma IntroduçãoRuby - Uma Introdução
Ruby - Uma Introdução
 
FLiSOL - Oficina Ruby on Rails
FLiSOL - Oficina Ruby on RailsFLiSOL - Oficina Ruby on Rails
FLiSOL - Oficina Ruby on Rails
 
Ruby MVC from scratch with Rack
Ruby MVC from scratch with RackRuby MVC from scratch with Rack
Ruby MVC from scratch with Rack
 
Torquebox OSCON Java 2011
Torquebox OSCON Java 2011Torquebox OSCON Java 2011
Torquebox OSCON Java 2011
 
Ruby 入門 第一次就上手
Ruby 入門 第一次就上手Ruby 入門 第一次就上手
Ruby 入門 第一次就上手
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
Sprockets
SprocketsSprockets
Sprockets
 
Javascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the UglyJavascript - The Good, the Bad and the Ugly
Javascript - The Good, the Bad and the Ugly
 
Having Fun Programming!
Having Fun Programming!Having Fun Programming!
Having Fun Programming!
 
Volt 2015
Volt 2015Volt 2015
Volt 2015
 
Reactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJSReactive Type safe Webcomponents with skateJS
Reactive Type safe Webcomponents with skateJS
 
Rails 101
Rails 101Rails 101
Rails 101
 
"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues"Javascript" por Tiago Rodrigues
"Javascript" por Tiago Rodrigues
 
Playing With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.jsPlaying With Fire - An Introduction to Node.js
Playing With Fire - An Introduction to Node.js
 
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan IvovichDC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
DC |> Elixir Meetup - Going off the Rails into Elixir - Dan Ivovich
 

Plus de Fabio Akita

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São CarlosFabio Akita
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about LanguagesFabio Akita
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Fabio Akita
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPFabio Akita
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaFabio Akita
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersFabio Akita
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG CampinasFabio Akita
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Fabio Akita
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to RubyFabio Akita
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIFabio Akita
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening KeynoteFabio Akita
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017Fabio Akita
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APFabio Akita
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017Fabio Akita
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017Fabio Akita
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayFabio Akita
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016Fabio Akita
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Fabio Akita
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraFabio Akita
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilFabio Akita
 

Plus de Fabio Akita (20)

Devconf 2019 - São Carlos
Devconf 2019 - São CarlosDevconf 2019 - São Carlos
Devconf 2019 - São Carlos
 
Meetup Nerdzão - English Talk about Languages
Meetup Nerdzão  - English Talk about LanguagesMeetup Nerdzão  - English Talk about Languages
Meetup Nerdzão - English Talk about Languages
 
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
Desmistificando Blockchains p/ Developers - Criciuma Dev Conf 2018
 
Desmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SPDesmistificando Blockchains - 20o Encontro Locaweb SP
Desmistificando Blockchains - 20o Encontro Locaweb SP
 
Desmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter GoianiaDesmistificando Blockchains - Insiter Goiania
Desmistificando Blockchains - Insiter Goiania
 
Blockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7MastersBlockchain em 7 minutos - 7Masters
Blockchain em 7 minutos - 7Masters
 
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
Elixir  -Tolerância a Falhas para Adultos - GDG CampinasElixir  -Tolerância a Falhas para Adultos - GDG Campinas
Elixir -Tolerância a Falhas para Adultos - GDG Campinas
 
Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017Desmistificando Mitos de Tech Startups - Intercon 2017
Desmistificando Mitos de Tech Startups - Intercon 2017
 
30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby30 Days to Elixir and Crystal and Back to Ruby
30 Days to Elixir and Crystal and Back to Ruby
 
Uma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TIUma Discussão sobre a Carreira de TI
Uma Discussão sobre a Carreira de TI
 
THE CONF - Opening Keynote
THE CONF - Opening KeynoteTHE CONF - Opening Keynote
THE CONF - Opening Keynote
 
A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017A Journey through New Languages - Rancho Dev 2017
A Journey through New Languages - Rancho Dev 2017
 
Desmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - APDesmistificando Mitos de Startups - Sebrae - AP
Desmistificando Mitos de Startups - Sebrae - AP
 
A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017A Journey through New Languages - Guru Sorocaba 2017
A Journey through New Languages - Guru Sorocaba 2017
 
A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017A Journey through New Languages - Insiter 2017
A Journey through New Languages - Insiter 2017
 
A Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech DayA Journey through New Languages - Locaweb Tech Day
A Journey through New Languages - Locaweb Tech Day
 
A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016A Journey through new Languages - Intercon 2016
A Journey through new Languages - Intercon 2016
 
Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016Premature Optimization 2.0 - Intercon 2016
Premature Optimization 2.0 - Intercon 2016
 
Conexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização PrematuraConexão Kinghost - Otimização Prematura
Conexão Kinghost - Otimização Prematura
 
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All EvilThe Open Commerce Conference - Premature Optimisation: The Root of All Evil
The Open Commerce Conference - Premature Optimisation: The Root of All Evil
 

Dernier

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 

Dernier (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

SEMAC 2011 - Apresentando Ruby e Ruby on Rails

  • 1. Apresentando Ruby e Ruby on Rails a apresentação já vai começar ...
  • 2. Apresentando Ruby e Ruby on Rails
  • 4. Fabio Akita www.akitaonrails.com @akitaonrails 1990
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Ruby 1994 (linguagem) Ruby on Rails 2004 (framework web)
  • 16. 1.8.7 Ruby 1.9.2 1.9.3-dev 2.3.11 Ruby on Rails 3.0.7 3.1-RC1
  • 17. 1.8.7 Ruby 1.9.2 1.9.3-dev 2.3.11 Ruby on Rails 3.0.7 3.1-RC1
  • 18. 1.8.7 Ruby 1.9.2 1.9.3-dev 2.3.11 Ruby on Rails 3.0.7 3.1-RC1
  • 20.
  • 21.
  • 22.
  • 24. !? UML Diagrama de Classes
  • 25. !? UML Diagrama de Classes POO?
  • 26. !? UML Diagrama de Classes POC!
  • 27. Alan Kay “A melhor maneira de prever o futuro é inventá-lo”
  • 28. Alan Kay “Eu inventei o termo Orientação a Objetos e posso dizer que eu não tinha C++ em mente”
  • 29. Alan Kay “Eu inventei o termo Orientação a Objetos e posso dizer que eu não tinha C++ em mente”
  • 30.
  • 31.
  • 34. #include <stdio.h> int main() { printf("Hello worldn"); return 0; }
  • 35. class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); } }
  • 40. puts 'Hello World' => Hello World
  • 41. puts 'Hello World' => Hello World Kernel.puts 'Hello World' => Hello World
  • 42. puts 'Hello World' => Hello World Kernel.puts 'Hello World' => Hello World puts self.class
  • 43. puts 'Hello World' => Hello World Kernel.puts 'Hello World' => Hello World this puts self.class
  • 44. puts 'Hello World' => Hello World Kernel.puts 'Hello World' => Hello World this puts self.class => Object
  • 45. puts 'Hello World' => Hello World Kernel.puts 'Hello World' => Hello World this puts self.class => Object Object.ancestors => [Object, Kernel, BasicObject]
  • 46. puts 'Hello World' => Hello World Kernel.puts 'Hello World' => Hello World this puts self.class => Object Object.ancestors => [Object, Kernel, BasicObject]
  • 50. "teste".class => String 1.class => Fixnum true.class => TrueClass
  • 51. "teste".class => String 1.class => Fixnum true.class => TrueClass nil
  • 52. "teste".class => String 1.class => Fixnum true.class => TrueClass nil.class => NilClass
  • 53. "teste".class => String 1.class => Fixnum true.class => TrueClass NullPointerException!? nil.class => NilClass
  • 54. "teste".class => String 1.class => Fixnum true.class => TrueClass nil.class => NilClass
  • 55. 1 + 2
  • 57. def hello(name) return "Hello, " + name end puts hello("Fabio") => "Hello, Fabio"
  • 58. def hello(name) return "Hello, " + name end puts hello "Fabio" => "Hello, Fabio"
  • 59. def hello(name) return "Hello, " + name end puts hello "Fabio" => "Hello, Fabio" Parênteses Opcionais
  • 60. def hello(name) "Hello, " + name end puts hello "Fabio" => "Hello, Fabio"
  • 61. def hello(name) "Hello, " + name end puts hello "Fabio" return => "Hello, Fabio" automático
  • 62. def hello(name) "Hello, #{name}" end puts hello "Fabio" => "Hello, Fabio"
  • 63. def hello(name) "Hello, #{name}" end puts hello "Fabio" => "Hello, Fabio" Interpolação
  • 64. class String def hello(name) "#{self}, #{name}" end end
  • 65. class String def hello(name) "#{self}, #{name}" end end "Hello".hello "Fabio" => "Hello, Fabio"
  • 66. class String def hello(name) "#{self}, #{name}" end end "Hello".hello "Fabio" Classes => "Hello, Fabio" Abertas!
  • 67. module Legal def bu! "Buuu!" end end class String include Legal end class Fixnum include Legal end "foo".bu! => "Buuu!" 10.bu! => "Buuu!"
  • 68. module Legal def bu! "Buuu!" end end class String include Legal end class Fixnum include Legal end "foo".bu! => "Buuu!" 10.bu! => "Buuu!"
  • 69. module Legal def bu! "Buuu!" end end class String include Legal end class Fixnum Module include Legal end Mixin "foo".bu! => "Buuu!" 10.bu! => "Buuu!"
  • 70. module Legal def bu! "Buuu!" end end class String include Legal end class Fixnum Module include Legal end Mixin "foo".bu! => "Buuu!" 10.bu! => "Buuu!"
  • 71. module Legal def bu! "Buuu!" end end class String include Legal end class Fixnum Module include Legal end Mixin "foo".bu! => "Buuu!" 10.bu! => "Buuu!"
  • 72. require 'rubygems' require 'active_support' Time.now + 1.day => 2011-05-18 11:44:20 -0300 Time.now + 1.week => 2011-05-24 11:44:24 -0300 (1.gigabyte - 100.megabytes) / 1.megabyte => 924
  • 73. require 'rubygems' require 'active_support' Time.now + 1.day => 2011-05-18 11:44:20 -0300 Time.now + 1.week => 2011-05-24 11:44:24 -0300 (1.gigabyte - 100.megabytes) / 1.megabyte => 924
  • 74. require 'rubygems' require 'active_support' Time.now + 1.day => 2011-05-18 11:44:20 -0300 Time.now + 1.week => 2011-05-24 11:44:24 -0300 (1.gigabyte - 100.megabytes) / 1.megabyte => 924
  • 75. require 'rubygems' require 'active_support' Time.now + 1.day => 2011-05-18 11:44:20 -0300 Time.now + 1.week => 2011-05-24 11:44:24 -0300 (1.gigabyte - 100.megabytes) / 1.megabyte => 924
  • 76. list = [1,2,3,4,5] soma = 0 for i in list soma += i end puts soma => 15
  • 77. list = [1,2,3,4,5] soma = 0 for i in list soma += i end puts soma => 15
  • 78. list = [1,2,3,4,5] soma = 0 for i in list soma += i end puts soma => 15
  • 79. list = [1,2,3,4,5] soma = list.inject(0) { |total, i| total += i } puts soma => 15
  • 80. list = [1,2,3,4,5] soma = list.inject(0) { |total, i| total += i } puts soma => 15
  • 81. list = [1,2,3,4,5] soma = list.inject(0) { |total, i| total += i } puts soma => 15
  • 82. list = [1,2,3,4,5] soma = list.inject(0) { |total, i| total += i } puts soma => 15
  • 83. list = [1,2,3,4,5] soma = list.inject(0) { |total, i| total += i } puts soma => 15
  • 84. list = [1,2,3,4,5] soma = list.inject(0) do |total, i| total += i end puts soma => 15
  • 85. list = [1,2,3,4,5] soma = list.inject(0) do |total, i| total += i end puts soma Anonymous => 15 Inner Class?
  • 86. list = [1,2,3,4,5] soma = list.inject(0) do |total, i| total += i end puts soma => 15
  • 87. list = [1,2,3,4,5] soma = list.inject(0) do |total, i| total += i end puts soma => 15 CLOSURE!
  • 88. class Foo def method_missing(method) print "#{method} called" end end Foo.new.bar => "bar called" Foo.new.send(:bar) => "bar called"
  • 89. class Foo def method_missing(method) print "#{method} called" end end Foo.new.bar => "bar called" Foo.new.send(:bar) => "bar called"
  • 90. class Foo def method_missing(method) print "#{method} called" end end Foo.new.bar => "bar called" Foo.new.send(:bar) => "bar called" Messages!
  • 91.
  • 92. <?xml version="1.1" encoding="US-ASCII"?> <Hello>World!</Hello> <date> <year>2006</year> <month>01</month> <day>01</day> </date>
  • 93. require 'builder' xml = Builder::XmlMarkup.new xml.instruct! :xml <?xml version="1.1" encoding="US-ASCII"?> xml.Hello "World!" <Hello>World!</Hello> xml.date do <date> xml.year "2006" <year>2006</year> xml.month "01" <month>01</month> xml.day "01" <day>01</day> end </date>
  • 94. require 'builder' xml = Builder::XmlMarkup.new xml.instruct! :xml <?xml version="1.1" encoding="US-ASCII"?> xml.Hello "World!" <Hello>World!</Hello> xml.date do <date> xml.year "2006" <year>2006</year> xml.month "01" <month>01</month> xml.day "01" <day>01</day> end </date>
  • 95. require 'builder' xml = Builder::XmlMarkup.new xml.instruct! :xml <?xml version="1.1" encoding="US-ASCII"?> xml.Hello "World!" <Hello>World!</Hello> xml.date do <date> xml.year "2006" <year>2006</year> xml.month "01" <month>01</month> xml.day "01" <day>01</day> end </date>
  • 96. require 'builder' xml = Builder::XmlMarkup.new xml.instruct! :xml <?xml version="1.1" encoding="US-ASCII"?> xml.Hello "World!" <Hello>World!</Hello> xml.date do <date> xml.year "2006" <year>2006</year> xml.month "01" <month>01</month> xml.day "01" <day>01</day> end </date>
  • 97. require 'builder' xml = Builder::XmlMarkup.new xml.instruct! :xml <?xml version="1.1" encoding="US-ASCII"?> xml.Hello "World!" <Hello>World!</Hello> xml.date do <date> xml.year "2006" <year>2006</year> xml.month "01" <month>01</month> xml.day "01" <day>01</day> end </date>
  • 98.
  • 99. require 'rubygems' require 'mechanize' a = Mechanize.new do |agent| agent.user_agent_alias = 'Mac Safari' end a.get('http://google.com/') do |page| search_result = page.form_with(:name => 'f') do |search| search.q = 'Hello world' end.submit search_result.links.each do |link| puts link.text end end
  • 100. require 'rubygems' require 'mechanize' a = Mechanize.new do |agent| agent.user_agent_alias = 'Mac Safari' end a.get('http://google.com/') do |page| search_result = page.form_with(:name => 'f') do |search| search.q = 'Hello world' end.submit search_result.links.each do |link| puts link.text end end
  • 101. require 'rubygems' require 'mechanize' a = Mechanize.new do |agent| agent.user_agent_alias = 'Mac Safari' end a.get('http://google.com/') do |page| search_result = page.form_with(:name => 'f') do |search| search.q = 'Hello world' end.submit search_result.links.each do |link| puts link.text end end
  • 102. require 'rubygems' require 'mechanize' a = Mechanize.new do |agent| agent.user_agent_alias = 'Mac Safari' end a.get('http://google.com/') do |page| search_result = page.form_with(:name => 'f') do |search| search.q = 'Hello world' end.submit search_result.links.each do |link| puts link.text end end
  • 103.
  • 104. class Twitter include HTTParty base_uri 'twitter.com' basic_auth 'username', 'password' end Twitter.post('/statuses/update.json', :query => { :status => "It's an HTTParty and everyone is invited!" })
  • 105. class Twitter include HTTParty base_uri 'twitter.com' basic_auth 'username', 'password' end Twitter.post('/statuses/update.json', :query => { :status => "It's an HTTParty and everyone is invited!" })
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.
  • 113. 1990 1995 PostScript level 2 PostScript level 3 1992 september 11, 1996 OO Forth Forth 1987 986 ect Logo Tcl Tcl/Tk 1986 mid 1988 end 1988 Fortran 90 ISO 1991 A A+ 1988 1992 J K MPS (FIPS) 1990 MUMPS ISO 1996 M M ANSI Open M 1986 1992 1994 dec 8, 1995 dec 11, 1995 Modula 3 Delphi 1988 march 2, 1995 APL96 1996 ABC 1987 Python Borland 1991 Object Pascal 1985 Turbo Pascal ANSI Rexx f Oberon Oberon-2 1987 1991 Modula-2 ISO Ada 95 june 1, 1996 Ada ISO 1987 1995 NetRexx 1991 ANSI C ISO C ISO C (C89) (C90) (C95) 1989 december 15, 1990 april 1, 1996 JScrip may 19 Cmm LiveScript JavaScript 1992 1995 december 1995 ARM C++ 1989 Oak Java 1 june 1991 may 23, 1995 Ruby february 24, 1993 Ruby 0.95 december 1995 Self Self 4.0 Eiffel Eiffel 2 Eiffel 3 july 10, 1995 Eiffel 4 1986 1988 1993 december 11, 1996 PHP/FI 1995 Sather 0.1 Sather 1.0 Sather 1.1 june 1991 mid-1994 september 1995 Perl 1.000 Perl 2.000 Perl 3.000 Perl 4.000 Perl 5.000 ecember 18, 1987 january 5, 1988 october 18, 1989 march 21, 1991 october 18, 1994 Objective Caml 1996 sic 1.0 QuickBasic 4.5 MS Basic PDS 7.0 MS PDS 7.1 Visual Basic 3.0 Visual Basic 4.0 1989 Visual Basic 1.0 Visual Basic 2.0 5 1988 1990 may 20, 1991 march 1992 june 93 september 1995 Clos 1989 Common Lisp ANSI december 8, 1994 Scheme IEEE 1990 Haskell 1.0 Haskell 1.1 Haskell 1.2 Haskell 1.3 1987 april 1, 1990 march 1992 may 1996 SML ‘90 1990 ml Caml 2-6.1 Caml 3.1 87 1991 1993
  • 114. 1990 1995 PostScript level 2 PostScript level 3 1992 september 11, 1996 OO Forth Forth 1987 986 ect Logo Tcl Tcl/Tk 1986 mid 1988 end 1988 Fortran 90 ISO 1991 A A+ 1988 1992 J K MPS (FIPS) 1990 MUMPS ISO 1996 M M ANSI Open M 1986 1992 1994 dec 8, 1995 dec 11, 1995 Modula 3 Delphi 1988 march 2, 1995 APL96 1996 ABC 1987 Python Borland 1991 Object Pascal 1985 Turbo Pascal ANSI Rexx f Oberon Oberon-2 1987 1991 Modula-2 ISO Ada 95 june 1, 1996 Ada ISO 1987 1995 NetRexx 1991 ANSI C ISO C ISO C (C89) (C90) (C95) 1989 december 15, 1990 april 1, 1996 JScrip may 19 Cmm LiveScript JavaScript 1992 1995 december 1995 ARM C++ 1989 Oak Java 1 june 1991 may 23, 1995 Ruby february 24, 1993 Ruby 0.95 december 1995 Self Self 4.0 Eiffel Eiffel 2 Eiffel 3 july 10, 1995 Eiffel 4 1986 1988 1993 december 11, 1996 PHP/FI 1995 Sather 0.1 Sather 1.0 Sather 1.1 june 1991 mid-1994 september 1995 Perl 1.000 Perl 2.000 Perl 3.000 Perl 4.000 Perl 5.000 ecember 18, 1987 january 5, 1988 october 18, 1989 march 21, 1991 october 18, 1994 Objective Caml 1996 sic 1.0 QuickBasic 4.5 MS Basic PDS 7.0 MS PDS 7.1 Visual Basic 3.0 Visual Basic 4.0 1989 Visual Basic 1.0 Visual Basic 2.0 5 1988 1990 may 20, 1991 march 1992 june 93 september 1995 Clos 1989 Common Lisp ANSI december 8, 1994 Scheme IEEE 1990 Haskell 1.0 Haskell 1.1 Haskell 1.2 Haskell 1.3 1987 april 1, 1990 march 1992 may 1996 SML ‘90 1990 ml Caml 2-6.1 Caml 3.1 87 1991 1993
  • 115. 1954 1957 1960 1965 1970 1975 1980 1985 PostScript 1982 Forth FIG-Forth Forth-83 ANS Forth 1968 1978 1983 1986 Logo Object L 1968 1986 FORTRAN I FORTRAN II FORTRAN III FORTRAN IV FORTRAN IV FORTRAN V FORTRAN (Fortran 66 ANS) (Fortran 77 ANSI) november 1954 october 1956 1957 end-1958 1962 1966 april 1978 Prolog Prolog II Prolog III 1970 october 1982 1984 Sharp APL JOSS TELCOMP MUMPS MUMPS (ANSI) MUMPS ( 1964 1965 1966 september 15, 1977 1986 APL APL 2 1960 august 1984 B 1981 Obj B-O Flow-Matic COBOL COBOL 61 COBOL 61 COBOL COBOL 68 ANS COBOL 74 ANSI COBOL 85 ISO/ANSI 1957 1958 1959 1961 Extended 1965 1968 1974 1985 1962 Rex 1.00 Rex 2.00 Rex 3.00 Rexx 3.20 may 1979 1980 1982 1984 Pascal Pascal AFNOR 1970 1983 PL/M Modula Modula 2 1972 1975 1979 Ada Ada 83 ANSI 1979 january 1983 PL/I PL/1 ANS 1964 1976 Concurrent C 1984 CPL BCPL B C C (K&R) july 1967 1978 Classic C 1963 1969 1971 JOVIAL JOVIAL I JOVIAL II JOVIAL 3 Objective-C 1959 1960 1961 1965 1983 CORAL 64 CORAL 66 C with Classes 1964 1966 C++ april 1980 july 1983 CLU Simula 67 1974 Simula I 1964 1967 ALGOL W Mesa ALGOL 58 ALGOL 60 1966 ALGOL 68 1977 IAL Cedar 1958 1958 1960 december 1983 1968 GOGOL GOGOL III Smalltalk Smalltalk-72 Smalltalk-74 Smalltalk-76 Smalltalk-78 Smalltalk-80 1964 1967 1971 1972 1974 1976 1978 1980 sed Sail 1973 Mainsail 1968 1975 ISWIM awk nawk 1966 1978 1985 KRC 1981 csh SASL october 1978 Per 1976 Miranda decemb 1982 sh 1969 BASIC MS Basic 2.0 BASICA GW-Basic QuickBasic 1.0 may 1, 1964 july 1975 1981 1983 1985 Lisp Lisp 1 Lisp 1.5 Common Lisp 1958 1959 1962 1984 Scheme Scheme MIT Scheme 84 1975 1978 1984 ML SML 1973 1984 SL5 Icon Languages SNOBOL SNOBOL 2 SNOBOL 3 SNOBOL 4 1976 1977 february 27, 2011 Caml 1962 april 1964 1965 1967 1987 ! Éric Lévénez 1999-2011 <http://www.levenez.com/lang/> 1 2 3 4