languages.map(&:latest).reduce(&:future).sort.first - rupy campinas 2015
TRANSCRIPT
![Page 1: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/1.jpg)
languages.map(&:latest).reduce(&:future).sort.first
@akitaonrails
![Page 2: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/2.jpg)
Fabio Akita @akitaonrails
![Page 3: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/3.jpg)
![Page 4: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/4.jpg)
![Page 5: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/5.jpg)
![Page 6: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/6.jpg)
![Page 7: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/7.jpg)
![Page 8: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/8.jpg)
![Page 9: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/9.jpg)
![Page 10: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/10.jpg)
![Page 11: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/11.jpg)
![Page 12: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/12.jpg)
![Page 13: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/13.jpg)
![Page 14: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/14.jpg)
![Page 15: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/15.jpg)
![Page 16: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/16.jpg)
![Page 17: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/17.jpg)
![Page 18: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/18.jpg)
![Page 19: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/19.jpg)
![Page 20: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/20.jpg)
![Page 21: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/21.jpg)
Gordon Bell - DEC early employee
![Page 22: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/22.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
![Page 23: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/23.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
![Page 24: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/24.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
![Page 25: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/25.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
![Page 26: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/26.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
PersonalComputers
![Page 27: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/27.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
PersonalComputers
ScalableClusters
![Page 28: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/28.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
PersonalComputers
Small Devices
ScalableClusters
![Page 29: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/29.jpg)
$100M
$10M
$1M
$100K
$10k
$1k
$100
$10
1940 1960 1970 1980 1990 2000 2010
Supercomputadores
Minicomputadores
Workstations
PersonalComputers
Small Devices
ScalableClusters
![Page 30: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/30.jpg)
Vaticano 2005
![Page 31: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/31.jpg)
Vaticano 2013
![Page 32: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/32.jpg)
Gordon Moore - Intel co-founder
![Page 33: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/33.jpg)
![Page 34: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/34.jpg)
![Page 35: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/35.jpg)
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Intel1Processors1Transistor1Count
![Page 36: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/36.jpg)
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Intel1Processors1Transistor1Count
Intel 400410 µm Intel 80386 Pentium
0.8 µm
Itanium 2
Six-core Xeon 7400
8-core Itanium Poulson32 nm
18-core Xeon Haswell-E522 nm
15-core Xeon Ivy Bridge-EX
Duo-core + GPU Core i7 Broadwell-U14 nm
![Page 37: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/37.jpg)
0
1,000,000,000
2,000,000,000
3,000,000,000
4,000,000,000
5,000,000,000
6,000,000,000
7,000,000,000
8,000,000,000
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 2015 2020
Intel1Processors1Transistor1Count
Intel 400410 µm Intel 80386 Pentium
0.8 µm
Itanium 2
Six-core Xeon 7400
8-core Itanium Poulson32 nm
18-core Xeon Haswell-E522 nm
15-core Xeon Ivy Bridge-EX
Duo-core + GPU Core i7 Broadwell-U14 nm
Apple A7
Apple A8
Apple A8X20 nm
![Page 38: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/38.jpg)
![Page 39: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/39.jpg)
![Page 40: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/40.jpg)
![Page 41: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/41.jpg)
.NETC
CoffeeScriptElixir
F#
Groovy
Java
JavaScriptObjective-C
PHP
Perl PythonRuby
Swift
Visual Basic .NET
![Page 42: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/42.jpg)
.NET
C
CoffeeScript
ElixirF#
Groovy
Java JavaScript
Objective-C
PHPPerl
Python
Ruby
Swift
Visual Basic .NET
![Page 43: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/43.jpg)
![Page 44: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/44.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 45: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/45.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Speedcode (1953) John Backus
- interpreter took 310 memory words, about 30% of the memory available on a 701
- twenty times that of machine code
![Page 46: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/46.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Fortran (1957) John Backus
- first optimizing compiler - complex number types/
electric engineering
![Page 47: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/47.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
CPL (1963) Christopher Strachey
- Combined/Cambridge/Combined Programming Language
- low and high level
![Page 48: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/48.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
BCPL (1966) Martin Richards
- Basic CPL - Bootstrap CPL - popular choice
for bootstrapping a system
![Page 49: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/49.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
occam (1983) INMOS
- concurrent programming language - Bootstrap CPL - communication between processes
work through named channels
![Page 50: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/50.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 51: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/51.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 52: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/52.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Algol (1958) ETH Zürich committee
- Algol 58, Algol 60, Algol 68, Algol W - Context-free Grammars (Backus-Naur Form/BNF) - "ALGOL 68 was the first (and possibly one of the last)
major language for which a full formal definition was made before it was implemented”
- “ALGOL 68 has been criticized, most prominently by some members of its design committee such as Hoare and Dijkstra, for abandoning the simplicity of ALGOL 60”
- "Steve Bourne, who was on the Algol 68 revision committee, took some of its ideas to his Bourne shell (and thereby, to descendant shells such as Bash) and to C (and thereby to descendants such as C++)."
![Page 53: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/53.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Modula (1960) Niklaus Wirth
- "One of the first languages designed from the start for modular programming"
![Page 54: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/54.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
MUMPS (1966) Neil Pappalardo
- "Massachusetts General Hospital Utility Multi-Programming System”
- hierarchical ACID built-in database - InterSystems Caché (SQL driver)
![Page 55: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/55.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
ADA (1966) MIL-STD
- strong typing, generics - modularity mechanisms (packages) - run-time checking
- access to unallocated memory, buffer overflow errors, range violations, off-by-one errors, array access errors, and other detectable bugs
- parallel processing (tasks, synchronous message passing, protected objects, and
- nondeterministic select statements) - exception handling - widely used in critical systems, where any anomaly might
lead to very serious consequences, e.g., accidental death, injury or severe financial loss. Examples of systems where Ada is used include avionics,ATC, railways, banking, military and space technology
![Page 56: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/56.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Hope (1970s) Edinburgh University
- NPL and Hope: first languages with call-by-pattern evaluation
- influenced Standard ML, Haskell
![Page 57: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/57.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 58: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/58.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 59: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/59.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
SNOBOL (1962) AT&T Bell Labs
- patterns as a first-class data type - operators for pattern
concatenation and alternation - early regular expressions/pattern
matching
![Page 60: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/60.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
FLOW-MATIC (1955) Grace Hopper
- 1952 - A0 compiler - 1959 - COBOL - English-like high level
language
![Page 61: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/61.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Simula (1967) Ole-Johan Dahl, Kristen Nygaard
- object-oriented programming - inheritance and subclasses - virtual methods, coroutines - Garbage Collector
![Page 62: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/62.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
CLU (1974) Barbara Liskov
- early object-oriented programming - classes with constructors and methods,
without inheritance - iterators, abstract data types, type-safe
parameterized/variant types - multiple return values (parallel
assignment)
![Page 63: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/63.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 64: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/64.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 65: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/65.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
ISWIM (1965) Peter J. Landin
- "If you See What I Mean" - functional programming
(SASL, Miranda, ML, Haskell) - lazy evaluation
(SASL, KRC, Hope, Miranda, Haskell,
![Page 66: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/66.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Miranda (1985) David Turner
- lazy, purely functional programming - list comprehensions (Haskell)
![Page 67: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/67.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Clean (1987) Radboud University Nijmegen
- mutable state and I/O is done through a uniqueness typing system (Haskell Monads)
- performance comparable to Haskell
![Page 68: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/68.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Self (1987) David Ungar, Randall Smith
- dialect of Smalltalk (OOP) - prototype-based (Javascript) - Just in time Compiling (JVM)
![Page 69: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/69.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Prolog (1972) Alain Colmerauer
- logic programming (influenced Erlang) - natural language processing - relations, represented as facts and rules
- running a query over these relations
![Page 70: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/70.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 71: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/71.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 72: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/72.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
Erlang (1986) Joe Armstrong, Robert Virding and Mike Williams
- distributed, fault-tolerant, soft-real-time, non-stop applications. It supports hot swapping
- processes communicate using message passing
![Page 73: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/73.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
ML (1973) Robin Milner/University of Edinburgh
- Hindley–Milner type system - parametric polymorphism - “Type Inference”
- ML Family (Standard ML, OCaml), Clean, Haskell
![Page 74: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/74.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
REBOL (1997) Carl Sassenrath
- "Relative Expression Based Object Language"
- dialecting: small, optimized, Domain-Specific Language (DSL) for code and data
- influenced JSON
![Page 75: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/75.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
![Page 76: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/76.jpg)
![Page 77: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/77.jpg)
• APL (1964) introduced: array programming, influenced: functional programming
• ALGOL (1958) refined both structured procedural programming and the discipline of language specification.
• Simula (1967) first language designed to support object-oriented programming; Smalltalk (1972) followed with the first "purely" object-oriented language.
• C (1969 - 1973) popular system programming language
• Prolog (1972), first logic programming language. • ML (1978) built a polymorphic type system on top of
Lisp, pioneering statically typed functional programming languages.
![Page 78: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/78.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
![Page 79: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/79.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015FORTRAN (1957) John Backus
- FORTRAN 2015
![Page 80: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/80.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
COBOL (1959) Conference on Data Systems Languages (CODASYL)
- COBOL 2014
![Page 81: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/81.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
![Page 82: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/82.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
![Page 83: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/83.jpg)
1960
1965
1970
1975
1980
1985
1990
1995
2000
2005
2010
2015
![Page 84: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/84.jpg)
![Page 85: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/85.jpg)
![Page 86: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/86.jpg)
23%
32%
45%
Python Fortran C
500k LOC
![Page 87: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/87.jpg)
![Page 88: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/88.jpg)
2017 60 anos de FORTRAN
2014 55 anos de COBOL
2013 55 anos de LISP
2012 40 anos de Smalltalk
2015 35 anos de ADA
![Page 89: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/89.jpg)
![Page 90: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/90.jpg)
![Page 91: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/91.jpg)
![Page 92: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/92.jpg)
![Page 93: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/93.jpg)
![Page 94: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/94.jpg)
![Page 95: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/95.jpg)
![Page 96: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/96.jpg)
2010 2011 2012 2013 20142006 2007 2008 2009
![Page 97: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/97.jpg)
2010 2011 2012 2013 20142006 2007 2008 2009
![Page 98: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/98.jpg)
2010 2011 2012 2013 20142006 2007 2008 2009
![Page 99: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/99.jpg)
![Page 100: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/100.jpg)
![Page 101: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/101.jpg)
![Page 102: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/102.jpg)
![Page 103: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/103.jpg)
![Page 104: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/104.jpg)
![Page 105: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/105.jpg)
![Page 106: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/106.jpg)
![Page 107: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/107.jpg)
![Page 108: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/108.jpg)
![Page 109: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/109.jpg)
https://github.com/replit
![Page 110: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/110.jpg)
LLVM
![Page 111: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/111.jpg)
LLVMOptimizer
Clang (C/C++/ObjC Frontend)
llvm-gcc Frontend
GHC Frontend
X86 Backend
PowerPC Backend
ARM Backend
C
Fortran
Haskell
![Page 112: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/112.jpg)
LLVMOptimizer
Clang (C/C++/ObjC Frontend)
llvm-gcc Frontend
GHC Frontend
X86 Backend
PowerPC Backend
ARM Backend
C
Fortran
Haskell
ASM.js WebGL
Backend
![Page 113: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/113.jpg)
![Page 114: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/114.jpg)
![Page 115: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/115.jpg)
![Page 116: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/116.jpg)
![Page 117: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/117.jpg)
![Page 118: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/118.jpg)
![Page 119: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/119.jpg)
![Page 120: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/120.jpg)
![Page 121: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/121.jpg)
“drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU …”
Swift 1.0 September 9th,
2014 with Xcode 6
![Page 122: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/122.jpg)
Chris LattnerDirector of the Developer Tools department at Apple and the creator of Swift
![Page 123: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/123.jpg)
http://www.phoronix.com/scan.php?page=news_item&px=MTU4MzE
![Page 124: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/124.jpg)
June 2015
![Page 125: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/125.jpg)
![Page 126: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/126.jpg)
![Page 127: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/127.jpg)
http://llvm.org/docs/BitCodeFormat.html
![Page 128: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/128.jpg)
dex2oat
![Page 129: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/129.jpg)
![Page 130: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/130.jpg)
![Page 131: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/131.jpg)
![Page 132: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/132.jpg)
![Page 133: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/133.jpg)
![Page 134: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/134.jpg)
![Page 135: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/135.jpg)
![Page 136: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/136.jpg)
![Page 137: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/137.jpg)
![Page 138: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/138.jpg)
![Page 139: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/139.jpg)
![Page 140: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/140.jpg)
![Page 141: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/141.jpg)
![Page 142: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/142.jpg)
![Page 143: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/143.jpg)
![Page 144: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/144.jpg)
![Page 145: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/145.jpg)
![Page 146: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/146.jpg)
![Page 147: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/147.jpg)
![Page 148: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/148.jpg)
![Page 149: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/149.jpg)
![Page 150: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/150.jpg)
![Page 151: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/151.jpg)
![Page 152: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/152.jpg)
![Page 153: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/153.jpg)
![Page 154: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/154.jpg)
![Page 155: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/155.jpg)
![Page 157: languages.map(&:latest).reduce(&:future).sort.first - Rupy Campinas 2015](https://reader033.vdocuments.mx/reader033/viewer/2022052913/55bdb928bb61eb506b8b460d/html5/thumbnails/157.jpg)
Obrigado@akitaonrails