Skip to content

Latest commit

 

History

History
132 lines (98 loc) · 7.5 KB

classics.md

File metadata and controls

132 lines (98 loc) · 7.5 KB
title
Ruby vs Language Classics

C • C++ • Perl • Python • PHP • Lua • Java • JavaScript • Erlang

First Appeared

Lang First Appeared
Ruby 1995; 23 years ago
- vs -
C 1972; 46 years ago
C++ 1985; 33 years ago
Erlang 1986; 32 years ago
Perl 1987; 30 years ago
Python 1991; 26 years ago
Lua 1993; 25 years ago
PHP 1995; 23 years ago
Java 1995; 22 years ago
JavaScript 1995; 22 years ago

Source: Wikipedia Programming Language Infoboxes

Designed by / Developers

Lang Designed by
Ruby Yukihiro Matsumoto
- vs -
C Dennis Ritchie
C++ Bjarne Stroustrup
Erlang Joe Armstrong, Robert Virding, Mike Williams
Perl Larry Wall
Python Guido van Rossum
PHP Rasmus Lerdorf
*Lua Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo
Java James Gosling
JavaScript Brendan Eich

Source: Wikipedia Programming Language Infoboxes

Paradigm

Lang Paradigm
Ruby Multi-paradigm: object-oriented, imperative, functional, reflective
- vs -
C Imperative (procedural), structured
C++ Multi-paradigm: procedural, functional, object-oriented, generic
Erlang Multi-paradigm: concurrent, functional, distributed, process-oriented
Perl Multi-paradigm: functional, imperative, object-oriented (class-based), reflective, procedural, event-driven, generic
Python Object-oriented, imperative, functional, procedural, reflective
PHP Imperative, functional, object-oriented, procedural, reflective
Lua Multi-paradigm: scripting, imperative (procedural, prototype-based, object-oriented), functional
Java Multi-paradigm: object-oriented (class-based), structured, imperative, generic, reflective, concurrent
JavaScript Multi-paradigm: object-oriented (prototype-based), imperative, functional, event-driven

Source: Wikipedia Programming Language Infoboxes

Typing Discipline

Dynamic vs Static (Manifest vs Inferred) - Strong vs Weak - Duck (Structural) vs Explicit Interface / Protocol Declarations

Lang Typing Discipline
Ruby Dynamic, strong, duck
- vs -
Perl Dynamic
Python Dynamic, strong, duck
PHP Dynamic, weak
Lua Dynamic, strong, duck
Erlang Dynamic, strong
JavaScript Dynamic, duck
C Static, weak, manifest, nominal
C++ Static, nominative, partially inferred
Java Static, strong, safe, nominative, manifest

Source: Wikipedia Programming Language Infoboxes

Influenced by

Lang Influenced by
Ruby Ada, C++, CLU, Dylan, Eiffel, Lisp, Lua, Perl, Python, Smalltalk
- vs -
C B (BCPL, CPL), ALGOL 68, Assembly, PL/I, FORTRAN
C++ Ada, ALGOL 68, C, CLU, ML, Simula
Perl AWK, C, C++, Lisp, Pascal, sed, Smalltalk 80, Unix shell
Python ABC, ALGOL 68, C, C++, CLU, Dylan, Haskell, Icon, Java, Lisp, Modula-3, Perl
PHP Perl, C, C++, Java, Tcl
Lua C++, CLU, Modula, Scheme, SNOBOL
Erlang Prolog, Smalltalk, PLEX, LISP
Java Ada 83, C++, C#, Eiffel, Generic Java, Mesa, Modula-3, Oberon, Objective-C, UCSD Pascal, Object Pascal
JavaScript Lua, Scheme, Perl, Self, Java, C, Python, AWK, HyperTalk

Source: Wikipedia Programming Language Infoboxes

Influenced

Lang Influenced
Ruby Clojure, CoffeeScript, Crystal, D, Elixir, Falcon, Groovy, Ioke, Julia, Mirah, Nu, Reia, Ring, Rust, Swift
- vs -
C Numerous: AMPL, AWK, csh, C++, C--, C#, Objective-C, BitC, D, Go, Java, JavaScript, Julia, Limbo, LPC, Perl, PHP, Pike, Processing, Python, Ring, Rust, Seed7, Vala, Verilog (HDL)
C++ Ada 95, C#, C99, Chapel, D, Java, Lua, Perl, PHP, Python, Rust, Nim
Perl CoffeeScript, ECMAScript, Falcon, Groovy, JavaScript, Julia, LPC, Perl 6, PHP, Python, Ruby, Windows PowerShell
Python Boo, Cobra, Coconut, CoffeeScript, D, F#, Falcon, Genie, Go, Groovy, JavaScript, Julia, Nim, Ring, Ruby, Swift
PHP Falcon, Hack
Lua Falcon, GameMonkey, Io, JavaScript, Julia, MiniD, Red, Ring, Ruby, Squirrel, MoonScript
Erlang F#, Clojure, Rust, Scala, Opa, Reia, Elixir, Dart, Akka, Oz
Java Ada 2005, BeanShell, C#, Chapel, Clojure, ECMAScript, Fantom, Gambas, Groovy, Hack, Haxe, J#, JavaScript, Kotlin, PHP, Python, Scala, Seed7, Vala
JavaScript ActionScript, AtScript, CoffeeScript, Dart, JScript .NET, LiveScript, Objective-J, Opa, Perl 6, QML, TypeScript

Source: Wikipedia Programming Language Infoboxes