28
\$\begingroup\$

Prompted by this.

We already know which languages were created by PPCG users. Clearly language authors are inspired by each other and by existing practical languages. What are these relationships?

Looking for something like this.

\$\endgroup\$
  • 5
    \$\begingroup\$ @anonymous VTCer: How is this any less on-topic than this? \$\endgroup\$ – Adám Jun 19 '17 at 22:08
  • \$\begingroup\$ @Adám, I think I also voted to close that as off-topic, but this is even more off-topic. It's not about PPCG. It's at best meta-meta-meta-PPCG. The most appropriate place for it is a github project and possibly a PPCG chatroom for people to submit information without creating a github account and opening an issue. \$\endgroup\$ – Peter Taylor Jun 20 '17 at 16:24
  • 1
    \$\begingroup\$ @PeterTaylor I don't thing you voted to close that one, as it doesn't have any close votes. It is about the users of PPCG. Do we have an on/off-topic page for meta? \$\endgroup\$ – Adám Jun 20 '17 at 16:32
  • 1
    \$\begingroup\$ Close votes time out after a few months. codegolf.stackexchange.com/help/whats-meta defines what's on topic: questions about the site itself (functionality and policy), bug reports and feature requests for the StackExchange software, and StackExchange pushing political rants at its users (but that's a whole separate issue). \$\endgroup\$ – Peter Taylor Jun 20 '17 at 16:45
32
\$\begingroup\$

Using the format of Webgraphviz. Links to pages about the languages can be found on TIO.

# non-PPCG languages are lightgrey, non-languages are white
# PPCG languages are not colored for simplicity
# this has the effect of making PPCG be languages with a border
digraph PPCGGenealogy {
  nodesep=0.5
  ranksep=1.5
  node [style=filled]
  rankdir=LR
  ";#" -> ";#+"
  ";#" -> Commentator
  "///" -> ReRegex
  "05AB1E" -> "2sable"
  "05AB1E" -> Anyfix
  "05AB1E" -> Oasis
  "05AB1E" -> Ohm
  "05AB1E" -> SOGL
  "><>" -> Jellyfish
  "><>" -> Klein
  "><>" -> Minkolang
  "><>" -> Vitsy
  "><>" -> Keg
  APL -> "Dyalog APL"
  APL -> J
  APL -> K
  APL -> MATLAB
  APL -> Mathematica
  Assembly -> Sesos
  Assembly -> Speedcoding
  Assembly -> QFTASM
  Attache -> Tidy
  Axo -> Alice
  Basic -> "S.I.L.O.S"
  Befunge -> "><>"
  Befunge -> Alice
  Befunge -> Hexagony
  Befunge -> Minkolang
  Befunge -> TacO
  Befunge -> Vitsy
  "Bourne Shell" -> "Röda"
  BrainFlak -> "fλak"
  BrainFlak -> BrainFlueue
  BrainFlak -> FlakCats
  BrainFlak -> Klein
  BrainFlak -> Miniflak
  BrainFlak -> PainFlak
  BrainFlak -> "Sad-Flak"
  BrainFlakClassic -> BrainFlak
  Brainfuck -> "Brian & Chuck"
  Brainfuck -> "Turtlèd"
  Brainfuck -> BrainFlakClassic
  Brainfuck -> Fourier
  Brainfuck -> MarioLANG
  Brainfuck -> Numberwang
  Brainfuck -> Sesos
  Brainfuck -> Vitsy
  Brainfuck -> ezFuck
  Brainfuck -> RoboCritters
  Brainfuck -> Flipbit
  Brainfuck -> Commentator
  Brainfuck -> "Bitwise Fuckery"
  Bubblegum -> "Cinnamon-Gum"
  C -> Java
  C -> Mathematica
  C -> Perl
  C -> Preproc
  C -> Python
  C -> Swift
  C -> shortC
  C -> COGOL
  Charcoal -> Canvas
  CJam -> Gaia
  CJam -> Noether
  CJam -> RProgN
  CJam -> TacO
  CJam -> Orst
  COGOL -> "QFTASM-lang"
  compression -> Bubblegum
  "Conways Game of Life" -> QFTASM
  "Conways Game of Life" -> COGOL
  "Conways Game of Life" -> "QFTASM-lang"
  Deorst -> Orst
  "Dyalog APL" -> RAD
  "Dyalog APL" -> "QuadR"
  "Dyalog APL" -> "QuadS"
  "Dyalog APL" -> "Stencil"
  Fourier -> Noether
  "Fuzzy-Octo-Guacamole" -> Loopy
  GolfScript -> CJam
  GolfScript -> GS2
  GolfScript -> Noether
  GolfScript -> O
  GolfScript -> Sclipting
  GolfScript -> Orst
  Haskell -> Husk
  Haskell -> Rutger
  Hexagony -> Cubix
  Hexagony -> Klein
  Hexagony -> Triangular
  J -> "Dyalog APL"
  J -> "J-uby"
  J -> GS2
  J -> I
  J -> Jelly
  J -> Jellyfish
  J -> Joe
  J -> M
  Japt -> Jolf
  Java -> Glava
  Java -> Python
  Java -> ReRegex
  Java -> Verbosity
  JavaScript -> Bean
  JavaScript -> Cheddar
  JavaScript -> Japt
  JavaScript -> Jolf
  JavaScript -> TeaScript
  Jelly -> Anyfix
  Jelly -> Gaia
  Jelly -> Jellyfish
  Jelly -> M
  Jelly -> Ohm
  Jelly -> RAD
  Jelly -> Seriously
  Jelly -> TacO
  K -> O
  K -> RAD
  Klein -> Lost
  Labyrinth -> Cubix
  "lambda calculus" -> Haskell
  "lambda calculus" -> Unlambda
  "lambda calculus" -> fλak
  Lua -> JavaScript
  Lua -> RProgN
  logic -> Stackylogic
  "mathematical notation" -> APL
  "mathematical notation" -> Brachylog
  MATLAB -> MATL
  MATLAB -> Octave
  MATLAB -> Tidy
  Mathematica -> Attache
  Mathematica -> Mthmtca
  O -> Jolf
  Octave -> MATL
  Ohm -> Gaia
  Orst -> Geo
  PCRE -> "Dyalog APL"
  PCRE -> Grime
  PCRE -> ReRegex
  PCRE -> Retina
  Perl -> "A Pear Tree"
  Perl -> Element
  Perl -> JavaScript
  Perl -> PCRE
  Perl -> Python
  Perl -> Ruby
  Perl -> "Röda"
  Prindeal -> Addict
  Prindeal -> Shtriped
  Prolog -> Brachylog
  Prolog -> Mathematica
  Pyth -> Jolf
  Pyth -> O
  Pyth -> Pyke
  Python -> "A Pear Tree"
  Python -> Bubblegum
  Python -> JavaScript
  Python -> Oasis
  Python -> Pyke
  Python -> Pylons
  Python -> Pyth
  Python -> Ruby
  Python -> "QFTASM-lang"
  Python -> Tidy
  QFTASM -> COGOL
  Basic -> QBIC
  R -> Tidy
  RISC -> Prindeal
  RISC -> Shtriped
  RISC -> "99"
  RISC -> QFTASM
  Retina -> Grime
  Retina -> ReRegex
  Ruby -> "J-uby"
  Ruby -> Cheddar
  Scheme -> "Pyramid Scheme"
  Scheme -> JavaScript
  Scheme -> K
  Scheme -> Lua
  Scheme -> R
  Seriously -> Actually
  ShapeScript -> Changeling
  Shtriped -> "$htriped"
  SOGL -> Gaia
  SOGL -> Canvas
  Stackcats -> FlakCats
  Speedcoding -> Basic
  Speedcoding -> C
  Surface -> Triangular
  Swift -> Cheddar
  V -> "Turtlèd"
  Verbosity -> Rutger
  Vim -> "Turtlèd"
  Vim -> V
  "Whispers v1" -> No
  "Whispers v1" -> Uno
  "Whispers v1" -> "Whispers v2"
  "Whispers v2" -> No
  "Whispers v2" -> Uno
  No -> Uno
  Uno -> No
  Woefully -> "Sad-Flak"

  "///" [color=lightgrey]
  "><>" [color=lightgrey]
  APL [color=lightgrey]
  Assembly [color=white]
  Axo [color=lightgrey]
  Basic [color=lightgrey]
  Befunge [color=lightgrey]
  "Bourne Shell" [color=lightgrey]
  Brainfuck [color=lightgrey]
  C [color=lightgrey]
  compression [color=white]
  "Conways Game of Life" [color=white]
  Haskell [color=lightgrey]
  J [color=lightgrey]
  Java [color=lightgrey]
  JavaScript [color=lightgrey]
  K [color=lightgrey]
  "lambda calculus" [color=white]
  logic [color=white]
  Lua [color=lightgrey]
  MATLAB [color=lightgrey]
  Mathematica [color=lightgrey]
  "mathematical notation" [color=white]
  Octave [color=lightgrey]
  Ohm [color=lightgrey]
  PCRE [color=white]
  Perl [color=lightgrey]
  Prolog [color=lightgrey]
  Python [color=lightgrey]
  R [color=lightgrey]
  RISC [color=white]
  Ruby [color=lightgrey]
  Scheme [color=lightgrey]
  Speedcoding [color=lightgrey]
  Surface [color=lightgrey]
  Swift [color=lightgrey]
  Vim [color=lightgrey]
}
# this comment somehow removes errors

As of 2018-09-05 @ 1:59 (UTC):

language graph

\$\endgroup\$
  • \$\begingroup\$ This conversation has been moved to chat. \$\endgroup\$ – Dennis Jun 24 '17 at 1:29
  • \$\begingroup\$ ;# doesn't really count as a language. \$\endgroup\$ – mbomb007 Jun 29 '17 at 14:37
  • 1
    \$\begingroup\$ Where's [codegolf.stackexchange.com/a/128216/51443 ](The minimum TC subset of Underload but with the characters changed to 2017, reversed, and with a 0 on top) ? \$\endgroup\$ – CalculatorFeline Jul 21 '17 at 16:29
  • \$\begingroup\$ @CalculatorFeline Is it an actual language that a PPCGer has made? \$\endgroup\$ – Adám Jul 21 '17 at 16:37
  • \$\begingroup\$ Click the link. \$\endgroup\$ – CalculatorFeline Jul 21 '17 at 16:37
  • 1
    \$\begingroup\$ @CalculatorFeline Feel free to add Underload. \$\endgroup\$ – Adám Jul 21 '17 at 16:42
  • 1
    \$\begingroup\$ I disagree with Seriously being a descendant of Jelly, given that it was conceived of and created more than a month before Jelly. However, Jelly absolutely did inspire some changes that were made in Actually from Seriously. \$\endgroup\$ – Mego Jul 26 '17 at 5:11
  • \$\begingroup\$ @Mego This describes relationships and influences, not "offspring" per se. Dyalog APL is way older than J! \$\endgroup\$ – Adám Jul 26 '17 at 6:44
  • \$\begingroup\$ Hasn't mathematical notation inspired all programming languages (except the most esoteric)? \$\endgroup\$ – fergusq Sep 2 '17 at 6:57
  • \$\begingroup\$ Mathematical notation was influenced by real life. \$\endgroup\$ – A _ Sep 8 at 12:30
1
\$\begingroup\$

For golfing languages:

Historically, the oldest languages are:

  1. 2008 - GolfScript
  2. 2008 - FlogScript
  3. 2012 - Burlesque

Then around 2015 an explosion started and nowadays there are a few dozen of golfing languages. It's thus reasonable to assume that languages that followed 2013-now at least have some relationship to one of those three - most likely to GolfScript because the other two aren't really as widely known and GolfScript is featured in the Wikipedia article about codegolf.

They inspired other people to design their own golfing languages and might have drawn a few people into esoteric programming languages to begin with. GolfScript2 was clearly inspired by GolfScript and GolfScript2 was the first "officially" esoteric one afaik that actually said "screw ASCII" and this inspired other people to try to map as many instructions into a 8bit encoding.

\$\endgroup\$
  • 1
    \$\begingroup\$ They inspired other people to design their own golfing languages and might have drawn a few people into esoteric programming languages to begin with. GolfScript2 was clearly inspired by GolfScript and GolfScript2 was the first one afaik that actually said "screw ASCII" (well, not the first programming language, there were others that used weird character sets of course) and this inspired other people to try to map as many instructions into a 8bit encoding. \$\endgroup\$ – mroman Nov 23 '18 at 13:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .