Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Meetup Nerdzão - English Talk about Languages

20 views

Published on

Updated version of my Languages History talk.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Meetup Nerdzão - English Talk about Languages

  1. 1. languages. map(&:latest). reduce(&:future). sort.first languages. map(&:latest). reduce(&:future). sort.first @akitaonrails@akitaonrails
  2. 2. Gordon Bell - DEC early employeeGordon Bell - DEC early employee
  3. 3. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010
  4. 4. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores
  5. 5. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores Minicomputadores
  6. 6. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores Minicomputadores Workstations
  7. 7. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores Minicomputadores Workstations Personal Computers
  8. 8. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores Minicomputadores Workstations Personal Computers Scalable Clusters
  9. 9. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores Minicomputadores Workstations Personal Computers Small Devices Scalable Clusters
  10. 10. $100M $10M $1M $100K $10k $1k $100 $10 1940 1960 1970 1980 1990 2000 2010 Supercomputadores Minicomputadores Workstations Personal Computers Small Devices Scalable Clusters
  11. 11. Vaticano 2005Vaticano 2005
  12. 12. Vaticano 2013Vaticano 2013
  13. 13. Gordon Moore - Intel co-founderGordon Moore - Intel co-founder
  14. 14. Intel 4004 10 µm Intel 80386 Pentium 0.8 µm Itanium 2 Six-core Xeon 7400 8-core Itanium Poulson 32 nm 18-core Xeon Haswell-E5 22 nm 15-core Xeon Ivy Bridge-EX Duo-core + GPU Core i7 Broadwell-U 14 nm
  15. 15. Intel 4004 10 µm Intel 80386 Pentium 0.8 µm Itanium 2 Six-core Xeon 7400 8-core Itanium Poulson 32 nm 18-core Xeon Haswell-E5 22 nm 15-core Xeon Ivy Bridge-EX Duo-core + GPU Core i7 Broadwell-U 14 nm Apple A7 Apple A8 Apple A8X 20 nm
  16. 16. .NET C CoffeeScriptElixir F# Groovy Java JavaScript Objective-C PHP Perl PythonRuby Swift Visual Basic .NET
  17. 17. .NET C CoffeeScript Elixir F# Groovy Java JavaScript Objective-C PHPPerl Python Ruby Swift Visual Basic .NET
  18. 18. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010
  19. 19. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Speedcode (1953) John Backus - interpreter took 310 memory words, about 30% of the memory available on a 701 - twenty times that of machine code Speedcode (1953) John Backus - interpreter took 310 memory words, about 30% of the memory available on a 701 - twenty times that of machine code
  20. 20. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Fortran (1957) John Backus - first optimizing compiler - complex number types/electric engineering Fortran (1957) John Backus - first optimizing compiler - complex number types/electric engineering
  21. 21. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 CPL (1963) Christopher Strachey - Combined/Cambridge/ Combined Programming Language - low and high level CPL (1963) Christopher Strachey - Combined/Cambridge/ Combined Programming Language - low and high level
  22. 22. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 BCPL (1966) Martin Richards - Basic CPL - Bootstrap CPL - popular choice for bootstrapping a system BCPL (1966) Martin Richards - Basic CPL - Bootstrap CPL - popular choice for bootstrapping a system
  23. 23. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 occam (1983) INMOS - concurrent programming language - Bootstrap CPL - communication between processes work through named channels occam (1983) INMOS - concurrent programming language - Bootstrap CPL - communication between processes work through named channels
  24. 24. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010
  25. 25. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 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++)." 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++)."
  26. 26. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Modula (1960) Niklaus Wirth - "One of the first languages designed from the start for modular programming" Modula (1960) Niklaus Wirth - "One of the first languages designed from the start for modular programming"
  27. 27. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 MUMPS (1966) Neil Pappalardo - "Massachusetts General Hospital Utility Multi- Programming System” - hierarchical ACID built-in database - InterSystems Caché (SQL driver) MUMPS (1966) Neil Pappalardo - "Massachusetts General Hospital Utility Multi- Programming System” - hierarchical ACID built-in database - InterSystems Caché (SQL driver)
  28. 28. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 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 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
  29. 29. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Hope (1970s) Edinburgh University - NPL and Hope: first languages with call-by-pattern evaluation - influenced Standard ML, Haskell Hope (1970s) Edinburgh University - NPL and Hope: first languages with call-by-pattern evaluation - influenced Standard ML, Haskell
  30. 30. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010
  31. 31. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 SNOBOL (1962) AT&T Bell Labs - patterns as a first-class data type - operators for pattern concatenation and alternation - early regular expressions/pattern matching SNOBOL (1962) AT&T Bell Labs - patterns as a first-class data type - operators for pattern concatenation and alternation - early regular expressions/pattern matching
  32. 32. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 FLOW-MATIC (1955) Grace Hopper - 1952 - A0 compiler - 1959 - COBOL - English-like high level language FLOW-MATIC (1955) Grace Hopper - 1952 - A0 compiler - 1959 - COBOL - English-like high level language
  33. 33. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Simula (1967) Ole-Johan Dahl, Kristen Nygaard - object-oriented programming - inheritance and subclasses - virtual methods, coroutines - Garbage Collector Simula (1967) Ole-Johan Dahl, Kristen Nygaard - object-oriented programming - inheritance and subclasses - virtual methods, coroutines - Garbage Collector
  34. 34. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 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) 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)
  35. 35. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010
  36. 36. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 ISWIM (1965) Peter J. Landin - "If you See What I Mean" - functional programming (SASL, Miranda, ML, Haskell) - lazy evaluation (SASL, KRC, Hope, Miranda, Haskell, Clean) ISWIM (1965) Peter J. Landin - "If you See What I Mean" - functional programming (SASL, Miranda, ML, Haskell) - lazy evaluation (SASL, KRC, Hope, Miranda, Haskell, Clean)
  37. 37. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Miranda (1985) David Turner - lazy, purely functional programming - list comprehensions (Haskell) Miranda (1985) David Turner - lazy, purely functional programming - list comprehensions (Haskell)
  38. 38. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Clean (1987) Radboud University Nijmegen - mutable state and I/O is done through a uniqueness typing system (Haskell Monads) - performance comparable to Haskell Clean (1987) Radboud University Nijmegen - mutable state and I/O is done through a uniqueness typing system (Haskell Monads) - performance comparable to Haskell
  39. 39. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Self (1987) David Ungar, Randall Smith - dialect of Smalltalk (OOP) - prototype-based (Javascript) - Just in time Compiling (JVM) Self (1987) David Ungar, Randall Smith - dialect of Smalltalk (OOP) - prototype-based (Javascript) - Just in time Compiling (JVM)
  40. 40. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 Prolog (1972) Alain Colmerauer - logic programming (influenced Erlang) - natural language processing - relations, represented as facts and rules - running a query over these relations Prolog (1972) Alain Colmerauer - logic programming (influenced Erlang) - natural language processing - relations, represented as facts and rules - running a query over these relations
  41. 41. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010
  42. 42. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 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 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
  43. 43. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 ML (1973) Robin Milner/University of Edinburgh - Hindley–Milner type system - parametric polymorphism - “Type Inference” - ML Family (Standard ML, OCaml), Clean, Haskell ML (1973) Robin Milner/University of Edinburgh - Hindley–Milner type system - parametric polymorphism - “Type Inference” - ML Family (Standard ML, OCaml), Clean, Haskell
  44. 44. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 REBOL (1997) Carl Sassenrath - "Relative Expression Based Object La nguage" - dialecting: small, optimized, Domain- Specific Language (DSL) for code and data - influenced JSON REBOL (1997) Carl Sassenrath - "Relative Expression Based Object La nguage" - dialecting: small, optimized, Domain- Specific Language (DSL) for code and data - influenced JSON
  45. 45. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010
  46. 46. • 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.
  47. 47. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 20152015
  48. 48. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 20152015 FORTRAN (1957) John Backus - FORTRAN 2015 FORTRAN (1957) John Backus - FORTRAN 2015
  49. 49. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 20152015 COBOL (1959) Conference on Data Systems Languages (CODASYL) - COBOL 2014 COBOL (1959) Conference on Data Systems Languages (CODASYL) - COBOL 2014
  50. 50. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 20152015
  51. 51. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 20152015
  52. 52. 19601960 19651965 19701970 19751975 19801980 19851985 19901990 19951995 20002000 20052005 20102010 20152015
  53. 53. 45% 32% 23% Python Fortran C 500k LOC
  54. 54. 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
  55. 55. 2010 2011 2012 2013 20142006 2007 2008 2009
  56. 56. 2010 2011 2012 2013 20142006 2007 2008 2009
  57. 57. 2010 2011 2012 2013 20142006 2007 2008 2009
  58. 58. https://github.com/replit
  59. 59. LLVM
  60. 60. LLVM Optimizer LLVM Optimizer Clang (C/C++/ObjC Frontend) llvm-gcc Frontend GHC Frontend X86 Backend PowerPC Backend ARM Backend C Fortran Haskell
  61. 61. LLVM Optimizer LLVM Optimizer Clang (C/C++/ObjC Frontend) llvm-gcc Frontend GHC Frontend X86 Backend PowerPC Backend ARM Backend C Fortran Haskell ASM.js WebGL Backend
  62. 62. “drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU …” Swift 1.0 September 9th, 2014 with Xcode 6
  63. 63. Chris Lattner Director of the Developer Tools department at Apple and the creator of Swift Chris Lattner Director of the Developer Tools department at Apple and the creator of Swift
  64. 64. http://www.phoronix.com/scan.php?page=news_item&px=MTU4MzE
  65. 65. "You are NOT your Language"
  66. 66. ObrigadoObrigado @akitaonrails@akitaonrails

×