Workshop de apresentação de Ruby e Ruby on Rails para a semana de computação da UFSCar de Sorocaba. Material disponível em http://u.akita.ws/sorocaba2011
14. “Eu inventei o termo
Orientação a Objetos
e posso dizer que
eu não tinha
C++ em mente”
Alan Kay
15.
16.
17.
18.
19.
20.
21.
22.
23. 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
24. 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
25. 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
26. 1985 1990 1995 2000
PostScript PostScript level 2 PostScript level 3
1982 1992 september 11, 1996
OO Forth
Forth-83 ANS Forth 1987 ISO Forth
1983 1986 1997
Object Logo Tcl Tcl/Tk Tcl/Tk 8.1 Tcl/Tk 8.2.3
1986 mid 1988 end 1988 april 1999 dec. 16, 1999
Fortran 90 ISO Fortran 95 ISO
1991 december 15, 1997
A A+
Prolog II Prolog III 1988 1992 Prolog IV
october 1982 1984 1997
J K
Sharp APL 1990 1996
MUMPS (FIPS) MUMPS ISO M M ANSI Open M M ISO
1986 1992 1994 dec 8, 1995 dec 11, 1995 1999
Modula 3 Delphi Delphi 5
1988 march 2, 1995 august, 1999
APL 2 APL96
august 1984 1996
B ABC
1981 1987
Python Python 1.5.2 Python 1.6 Python 2.0
Borland 1991 april 13, 1999 september 5, 2000 october 16, 2000 a
Object Pascal
1985 Turbo Pascal
COBOL 85 ISO/ANSI OO COBOL
1985 1997
x 2.00 Rex 3.00 Rexx 3.20 ANSI Rexx Object Rexx
1980 1982 1984 february 25, 1997
Pascal AFNOR
1983 Oberon Oberon-2
1987 1991 Modula-2 ISO
Modula-2 ISO
june 1, 1996 Generic Extension
Ada 83 ANSI Ada ISO Ada 95 december 19, 1998
january 1983 1987 1995
NetRexx NetRexx 1.150
1991 C#
Concurrent C july 23, 1999 june 26, 2000
1984 ANSI C ISO C ISO C ISO C (C99)
(C89) (C90) (C95) december 1, 1999
1989 december 15, 1990 april 1, 1996 JScript JScript
Objective-C may 1996
1983 JavaScript 2.0
Cmm LiveScript JavaScript
1995 JavaScript 1.5 (draft 1)
C with Classes ARM C++ 1992 december 1995 C++98 ANSI/ISO february 18, 1999
C++
april 1980 july 1983 1989 1998
ECMAScript ECMAScript ed3
june 1997 december 1999
Oak Java 1 Java 2 (v1.2) Java 2 (v1.3)
june 1991 may 23, 1995 december 8, 1998 may 8, 2000
Ruby Ruby 1.1 alpha 0
Cedar february 24, 1993 Ruby 0.95 Ruby 1.3.2 Ruby 1.6.1
1983 december 1995 august 13, 1997 april 2, 1999 september 27, 2000
malltalk-80 ANSI Smalltalk
1980 may 19, 1998
Self Self 4.0
Eiffel Eiffel 2 Eiffel 3 july 10, 1995 Eiffel 4 Eiffel 4.2 I
1986 1988 1993 december 11, 1996 february 6, 1998
nawk PHP/FI PHP 2.0 PHP 3.0 PHP 4.0
1985 1995 nov. 13, 1997 june 6, 1998 may 22, 2000
KRC Sather 0.1 Sather 1.0 Sather 1.1 Sather 1.2.1
1981 june 1991 mid-1994 september 1995 november 4, 1999
Perl 2.000 Perl 3.000 Perl 4.000 Perl 5.000 Perl 5.005_50 Perl 5.6.0 Perl 5.7,0
Perl 1.000 july 26, 1998
Miranda december 18, 1987 january 5, 1988 october 18, 1989 march 21, 1991 october 18, 1994 march 28, 2000 september 2, 2000
1982 Objective Caml
O’Caml 1.0.7 O’Caml 2 O’Caml 3.00
1996 1998 june 2000
december 11, 1997
BASICA GW-Basic QuickBasic 1.0 QuickBasic 4.5 MS Basic PDS 7.0 MS PDS 7.1 Visual Basic 3.0 Visual Basic 4.0 Visual Basic 5.0 Visual Basic 6.0 VB.N
1989 Visual Basic 1.0 Visual Basic 2.0
1981 1983 1985 1988 1990 may 20, 1991 march 1992 june 93 september 1995 april 1997 june 16, 1998 (Visual B
Clos 20
Common Lisp 1989 Common Lisp ANSI
1984 december 8, 1994
Scheme 84 Scheme IEEE Scheme R5RS
1984 1990 1998
Haskell 1.0 Haskell 1.1 Haskell 1.2 Haskell 1.3 Haskell 1.4 Haskell 98
1987 april 1, 1990 march 1992 may 1996 april 1997 SML ‘97 february 1999
SML SML ‘90
1984 1990 1997
Caml Caml 2-6.1 Caml 3.1
1987 1991 1993
1 2 3 4