编程语言的发展脉络图

做了两件事情:第一件是从Wikipedia网站上搜集各种编程语言的资料,第二件是把编程语言之间相互影响的关系用图的形式画出来,从而得到了一张编程语言的发展脉络图。

这两件事情主要是编写Ruby程序来实现的,在Wikipedia页面的右上角有一个表格,从中提取Appeared in,Influenced by,Influenced等字段,根据这种关联关系遍历,采集到292种语言,用JSON格式保存到文件中,然后把几个出现年份描述不精确的语言用人工查证的方式进行补充。

[["Swift","2014",["Objective-C","Rust","Haskell","Ruby","Python","C#","CLU"],null,"http://developer.apple.com/swift","http://en.wikipedia.org/wiki/Swift_(programming_language)"],["Objective-C","1983",["C","Smalltalk"],["Java","Nu","Objective-J","TOM","Swift"],"http://developer.apple.com/library/mac/navigation","http://en.wikipedia.org/wiki/Objective-C"],["Rust","2012",["Alef","C#","C++","Camlp4","Common Lisp","Cyclone","Erlang","Haskell","Hermes","Limbo","Napier88","Newsqueak","OCaml","Racket","Ruby","Sather","Scheme","Standard ML","Python"],["Swift"],"http://www.rust-lang.org/","http://en.wikipedia.org/wiki/Rust_(programming_language)"],["Haskell","1990",["Clean","FP","Gofer","Hope","Id","ISWIM","KRC","Lisp","Miranda","ML","Standard ML","Orwell","SASL","SISAL","Scheme"],["Agda","Bluespec","C++11","Concepts","C#","LINQ","CAL","Cayenne","Clean","Clojure","CoffeeScript","Curry","Elm","Epigram","Escher","F#","Frege","Isabelle","Java","Generics","LiveScript","Mercury","Omega","Perl 6","Python","Qi","Scala","Swift","Timber","Visual Basic 9.0"],"http://haskell.org","http://en.wikipedia.org/wiki/Haskell_(programming_language)"],["Ruby","1995",["Ada","C++","CLU","Dylan","Eiffel","Lua","Lisp","Perl","Python","Smalltalk"],["Clojure","D","Elixir","Falcon","Fancy","Groovy","Ioke","Julia","Mirah","Nu","potion","Reia","Swift"],"http://www.ruby-lang.org/","http://en.wikipedia.org/wiki/Ruby_(programming_language)"],["Python","1991",["ABC","ALGOL 68","C","C++","Dylan","Haskell","Icon","Java","Lisp","Modula-3","Perl"],["Boo","Cobra","D","F#","Falcon","Go","Groovy","JavaScript","Julia","Ruby","Swift"],"https://www.python.org/","http://en.wikipedia.org/wiki/Python_(programming_language)"],["C#","2000",["C++","Eiffel","Java","Modula-3","Object Pascal","ML","Icon","Haskell","Cω","F#"],["D","Dart","F#","Java","Kotlin","Monkey","Nemerle","Swift","Vala"],null,"http://en.wikipedia.org/wiki/C_Sharp_(programming_language)"],["CLU","1974",["ALGOL 60","Lisp","Simula"],["Ada","Argus","Lua","Ruby","Sather","Swift"],null,"http://en.wikipedia.org/wiki/CLU_(programming_language)"],["Java","1995",["Ada 83","C++","C#","Eiffel","Generic Java","Mesa","Modula-3","Oberon","Objective-C","UCSD Pascal","Smalltalk"],["Ada 2005","BeanShell","C#","Clojure","D","ECMAScript","Groovy","J#","JavaScript","Kotlin","PHP","Python","Scala","Seed7","Vala"],"http://www.oracle.com/technetwork/java/","http://en.wikipedia.org/wiki/Java_(programming_language)"],["Nu","2007",["Lisp","Objective-C","Ruby"],null,"http://programming.nu","http://en.wikipedia.org/wiki/Nu_(programming_language)"],["Objective-J","2008",["Objective-C","JavaScript"],null,"http://cappuccino.org/","http://en.wikipedia.org/wiki/Objective-J"],["Swift","2014",["Objective-C","Rust","Haskell","Ruby","Python","C#","CLU"],null,"http://developer.apple.com/swift","http://en.wikipedia.org/wiki/Swift_(Apple_programming_language)"],["C","1972",["B","BCPL","CPL","ALGOL 68","Assembly","PL/I","FORTRAN"],["Numerous","AMPL","AWK","csh","C++","C--","C#","Objective-C","BitC","D","Go","Rust","Java","JavaScript","Limbo","LPC","Perl","PHP","Pike","Processing","Python","Seed7","Verilog"],null,"http://en.wikipedia.org/wiki/C_(programming_language)"],["smalltalk","1972",["Lisp","Simula","Logo","Sketchpad"],["Objective-C","Self","Object REXX","Java","PHP","Logtalk","Dylan","AppleScript","Lisaac","NewtonScript","Lasso","Python","Ruby","Groovy","Scala","Perl 6","Common Lisp Object System","Falcon","Io","Ioke","Fancy","Dart"],null,"http://en.wikipedia.org/wiki/Smalltalk"],["Alef","1992",["C","Newsqueak"],["Limbo","Rust","Go"],null,"http://en.wikipedia.org/wiki/Alef_(programming_language)"],["C++","1983",["C","Simula","ALGOL 68","Ada","CLU","ML"],["Perl","LPC","Lua","Pike","Ada 95","Java","PHP","D","C99","C#","Falcon","Seed7"],"http://isocpp.org/","http://en.wikipedia.org/wiki/C%2B%2B"],["Common Lisp","1984",["Lisp","Lisp Machine Lisp","MacLisp","Scheme","InterLisp"],["Clojure","Dylan","Emacs Lisp","EuLisp","ISLISP","Julia","Moose","R","SKILL","SubL"],"http://common-lisp.net/","http://en.wikipedia.org/wiki/Common_Lisp"],["Cyclone","2006",["C"],null,"http://cyclone.thelanguage.org","http://en.wikipedia.org/wiki/Cyclone_(programming_language)"],["Erlang","1986",["Prolog","Smalltalk"],["F#","Clojure","Rust","Scala","Opa","Reia","Elixir","Dart"],"http://www.erlang.org","http://en.wikipedia.org/wiki/Erlang_(programming_language)"],["Limbo","1995",["C","Pascal","CSP","Alef","Newsqueak"],["Stackless Python","Go","Rust"],"http://www.vitanuova.com/inferno/limbo.html","http://en.wikipedia.org/wiki/Limbo_(programming_language)"],["Newsqueak",null,["C","CSP"],["Alef","Go","Limbo","Rust"],null,"http://en.wikipedia.org/wiki/Newsqueak"],["OCaml","1996",["Caml Light","Standard ML"],["F#","Scala","ATS","Opa","Rust"],"http://ocaml.org/","http://en.wikipedia.org/wiki/Ocaml"],["Racket","1994",["Scheme","Eiffel"],["Scheme","Rust","Clojure"],"http://racket-lang.org","http://en.wikipedia.org/wiki/Racket_(programming_language)"],["Sather","1990",["Eiffel","CLU","Common Lisp","Scheme"],["Cool","Rust"],null,"http://en.wikipedia.org/wiki/Sather"],["Scheme","1975",["Lisp","ALGOL","MDL"],["Clojure","Common Lisp","Dylan","EuLisp","Haskell","Hop","JavaScript","Julia","Lua","R","S","Racket","Ruby"],null,"http://en.wikipedia.org/wiki/Scheme_(programming_language)"],["Standard ML",null,["ML","Hope"],["OCaml","Rust"],null,"http://en.wikipedia.org/wiki/Standard_ML"],["Agda","2007",["Coq","Epigram","Haskell"],["Idris"],"http://wiki.portal.chalmers.se/agda/pmwiki.php","http://en.wikipedia.org/wiki/Agda_(theorem_prover)"],["Language Integrated Query",null,["SQL","Haskell"],null,null,"http://en.wikipedia.org/wiki/Language_Integrated_Query"],["CAL","2004",["Haskell","Clean","Java"],null,null,"http://en.wikipedia.org/wiki/CAL_(Quark_Framework)"],["Clean","1987",["Lean","Miranda","Haskell"],null,null,"http://en.wikipedia.org/wiki/Clean_(programming_language)"],["Clojure","2007",["Common Lisp","Erlang","Haskell","ML","Prolog","Scheme","Java","Ruby"],["Elixir"],"http://clojure.org","http://en.wikipedia.org/wiki/Clojure"],["CoffeeScript","2009",["Haskell","JavaScript","Perl","Python","Ruby","YAML"],["MoonScript","LiveScript"],"http://coffeescript.org","http://en.wikipedia.org/wiki/CoffeeScript"],["Curry",null,["Haskell"],null,"http://curry-language.org/","http://en.wikipedia.org/wiki/Curry_(programming_language)"],["Elm","2011",["Haskell","Standard ML","OCaml","F#"],null,"http://elm-lang.org/","http://en.wikipedia.org/wiki/Elm_(programming_language)"],["Epigram","2004",["ALF"],null,null,"http://en.wikipedia.org/wiki/Epigram_(programming_language)"],["Escher","1995",["simple theory of types"],null,null,"http://en.wikipedia.org/wiki/Escher_(programming_language)"],["F#","2005",["ML","OCaml","C#","Python","Haskell","Scala","Erlang"],["F*","LiveScript","C#"],"http://fsharp.org","http://en.wikipedia.org/wiki/F_Sharp_(programming_language)"],["Frege","2011",["Haskell"],null,"https://github.com/Frege/frege","http://en.wikipedia.org/wiki/Frege_(programming_language)"],["Isabelle",null,null,null,"http://isabelle.in.tum.de/","http://en.wikipedia.org/wiki/Isabelle_theorem_prover"],["LiveScript","2011",["JavaScript","Haskell","CoffeeScript","F#"],null,"http://livescript.net","http://en.wikipedia.org/wiki/LiveScript"],["Mercury","1995",["Prolog","Hope","Haskell"],null,"http://www.mercurylang.org/","http://en.wikipedia.org/wiki/Mercury_(programming_language)"],["Omega",null,null,null,"http://web.cecs.pdx.edu/~sheard/Omega/","http://en.wikipedia.org/wiki/%CE%A9mega_interpreter"],["Perl 6","2000",["Haskell","JavaScript","Perl 5","Ruby","Smalltalk"],null,"http://perl6.org/","http://en.wikipedia.org/wiki/Perl_6"],["Scala","2003",["Eiffel","Erlang","Haskell","Java","Lisp","Pizza","Standard ML","OCaml","Scheme","Smalltalk","Oz"],["Fantom","Ceylon","Lasso","Kotlin","Swift"],"http://www.scala-lang.org/","http://en.wikipedia.org/wiki/Scala_(programming_language)"],["Visual Basic .NET","2001",null,null,"http://msdn.microsoft.com/en-us/vstudio/hh388573","http://en.wikipedia.org/wiki/Visual_Basic_.NET"],["FP","1977",["APL"],["FL","FPr","J"],null,"http://en.wikipedia.org/wiki/FP_(programming_language)"],["ISWIM","1966",["ALGOL 60","Lisp"],["SASL","Miranda","ML","Haskell","Clean","Lucid"],null,"http://en.wikipedia.org/wiki/ISWIM"],["KRC","1981",["SASL"],["Miranda"],null,"http://en.wikipedia.org/wiki/Kent_Recursive_Calculator"],["Lisp","1958",["IPL"],["CLIPS","CLU","COWSEL","Dylan","Falcon","Forth","Haskell","Io","Ioke","JavaScript","Julia","Logo","Lua","Mathematica","MDL","ML","Nu","OPS5","Perl","POP-2","11","Python","Qi","R","Shen","Rebol","Racket","Ruby","Smalltalk","Tcl"],null,"http://en.wikipedia.org/wiki/Lisp_(programming_language)"],["Miranda","1985",["KRC","ML","SASL","Hope"],["Clean","Haskell"],"http://miranda.org.uk","http://en.wikipedia.org/wiki/Miranda_(programming_language)"],["ML","1973",["ISWIM"],["Miranda","Haskell","Cyclone","C++","F#","Clojure","Felix","Opa","Erlang","Scala"],null,"http://en.wikipedia.org/wiki/ML_(programming_language)"],["Orwell","1984",["Miranda"],["Haskell"],null,"http://en.wikipedia.org/wiki/Orwell_(programming_language)"],["SASL","1972",["ISWIM"],["KRC","Miranda","Haskell"],null,"http://en.wikipedia.org/wiki/SASL_(programming_language)"],["SISAL","1983",["Pascal","C","Fortran"],["SAC"],null,"http://en.wikipedia.org/wiki/SISAL"],["D programming language","2001",["C","C++","C#","Eiffel","Java","Python","Ruby"],["MiniD","DScript","Vala","Qore"],"http://dlang.org","http://en.wikipedia.org/wiki/D_(programming_language)"],["Elixir","2012",["Erlang","Ruby","Clojure"],null,"http://www.elixir-lang.org/","http://en.wikipedia.org/wiki/Elixir_(programming_language)"],["Falcon","2003",["C++","Perl","Lua","Smalltalk","PHP","Lisp","Python","Ruby"],null,"http://www.falconpl.org/","http://en.wikipedia.org/wiki/Falcon_(programming_language)"],["Fancy","2010",["Smalltalk","Ruby","Erlang","Io"],null,"http://www.fancy-lang.org/","http://en.wikipedia.org/wiki/Fancy_(programming_language)"],["Groovy","2003",["Java","Python","Ruby","Perl","Smalltalk","Objective-C"],["Kotlin"],"http://groovy.codehaus.org","http://en.wikipedia.org/wiki/Groovy_(programming_language)"],["Ioke",null,["Io","Smalltalk","Lisp","Ruby"],null,"http://ioke.org/","http://en.wikipedia.org/wiki/Ioke_(programming_language)"],["Julia","2012",["MATLAB","Scheme","Lisp","C","Fortran","Wolfram Language","Python","Perl","R","Ruby","Lua"],null,"http://julialang.org/","http://en.wikipedia.org/wiki/Julia_(programming_language)"],["Mirah","2008",["Ruby","Java","Boo"],null,"http://www.mirah.org/","http://en.wikipedia.org/wiki/Mirah_(programming_language)"],["potion","2007",["Io","Ruby","Ocaml","Lua","REBOL","Smalltalk","C"],null,"http://perl11.org/potion/","http://en.wikipedia.org/wiki/Potion_(programming_language)"],["Reia","2008",["Erlang","Ruby","Python"],null,"http://reia-lang.org/","http://en.wikipedia.org/wiki/Reia_(programming_language)"],["Ada","1980",["ALGOL 68","Pascal","C++","Smalltalk","Java","Eiffel"],["C++","Eiffel","PL/SQL","VHDL","Ruby","Java","Seed7"],"http://www.adaic.org/","http://en.wikipedia.org/wiki/Ada_(programming_language)"],["Dylan","1992",["CLOS","ALGOL","Scheme","EuLisp"],["Goo","Lasso","Python","Ruby","Julia"],"http://opendylan.org/","http://en.wikipedia.org/wiki/Dylan_(programming_language)"],["Eiffel","1986",["Ada","Simula","Z"],["Ada 2012","C#","D","Java","Lisaac","Racket","Ruby","Sather","Scala"],null,"http://en.wikipedia.org/wiki/Eiffel_(programming_language)"],["Lua","1993",["C++","CLU","Modula","Scheme","SNOBOL"],["Io","GameMonkey","Squirrel","Falcon","MiniD","Julia"],"http://www.lua.org/","http://en.wikipedia.org/wiki/Lua_(programming_language)"],["Perl","1987",["AWK","Smalltalk 80","Lisp","C","C++","sed","Unix shell","Pascal"],["Python","PHP","Ruby","ECMAScript","LPC","Windows PowerShell","JavaScript","Falcon","Perl 6","Qore","Julia"],"http://www.perl.org","http://en.wikipedia.org/wiki/Perl"],["Boo","2003",["Python","C#"],null,"http://boo.codehaus.org/","http://en.wikipedia.org/wiki/Boo_(programming_language)"],["Cobra","2006",["Python","Eiffel","C#","Objective-C"],null,"http://cobra-language.com/","http://en.wikipedia.org/wiki/Cobra_(programming_language)"],["Go","2009",["C","occam","Limbo","Modula","Newsqueak","Oberon","Pascal","Python"],null,"https://golang.org","http://en.wikipedia.org/wiki/Go_(programming_language)"],["JavaScript","1995",["Scheme","Self","Java","C","Python"],["ActionScript","CoffeeScript","Dart","JScript .NET","Objective-J","QML","TypeScript","Node.js","LiveScript"],null,"http://en.wikipedia.org/wiki/JavaScript"],["ABC",null,["SETL","ALGOL 68"],["Python"],null,"http://en.wikipedia.org/wiki/ABC_(programming_language)"],["ALGOL 68","1968",["ALGOL 60","ALGOL Y"],["Mary","S3"],null,"http://en.wikipedia.org/wiki/ALGOL_68"],["Icon","1977",["SNOBOL","ALGOL"],["Unicon","Python"],"http://www.cs.arizona.edu/icon/","http://en.wikipedia.org/wiki/Icon_(programming_language)"],["Modula-3","1988",["Modula-2+","Modula-2","Pascal","ALGOL","Oberon"],["Java","Python","Caml","C#"],"http://www.modula3.org","http://en.wikipedia.org/wiki/Modula-3"],["Dart","2011",["JavaScript","Smalltalk","Erlang","Strongtalk","C#"],null,"https://www.dartlang.org","http://en.wikipedia.org/wiki/Dart_(programming_language)"],["Kotlin",null,["Java","Scala","Groovy","C#","Gosu"],null,"http://kotlinlang.org/","http://en.wikipedia.org/wiki/Kotlin_(programming_language)"],["Monkey X","2011",["BlitzBasic","BlitzBasic","C","C++","C#","JavaScript","Java"],null,"http://www.monkey-x.com","http://en.wikipedia.org/wiki/Monkey_(programming_language)"],["Nemerle","2003",["C#","ML","Lisp"],null,"http://nemerle.org","http://en.wikipedia.org/wiki/Nemerle"],["Vala","2006",["C","C++","C#","D","Java","Python"],null,"https://wiki.gnome.org/Projects/Vala","http://en.wikipedia.org/wiki/Vala_(programming_language)"],["Object Pascal","1986",["Pascal","Smalltalk"],["C#","Java"],null,"http://en.wikipedia.org/wiki/Object_Pascal"],["Cω","2003",["C#","Polyphonic C#"],["C#","LINQ","Joins Concurrency Library"],"http://research.microsoft.com/Comega/","http://en.wikipedia.org/wiki/C%CF%89"],["Ruby","1995",["Ada","C++","CLU","Dylan","Eiffel","Lua","Lisp","Perl","Python","Smalltalk"],["Clojure","D","Elixir","Falcon","Fancy","Groovy","Ioke","Julia","Mirah","Nu","potion","Reia","Swift"],"http://www.ruby-lang.org/","http://en.wikipedia.org/wiki/Ruby_programming_language"],["ALGOL","1958",null,["Simula","C","CPL","Pascal","Ada"],null,"http://en.wikipedia.org/wiki/ALGOL"],["Lisp","1958",["IPL"],["CLIPS","CLU","COWSEL","Dylan","Falcon","Forth","Haskell","Io","Ioke","JavaScript","Julia","Logo","Lua","Mathematica","MDL","ML","Nu","OPS5","Perl","POP-2","11","Python","Qi","R","Shen","Rebol","Racket","Ruby","Smalltalk","Tcl"],null,"http://en.wikipedia.org/wiki/Lisp_programming_language"],["Simula","1967",["ALGOL 60"],["Object-oriented programming languages"],null,"http://en.wikipedia.org/wiki/Simula"],["BeanShell","2000",["Java"],null,"http://www.beanshell.org/","http://en.wikipedia.org/wiki/BeanShell"],["ECMAScript","1997",["Self","HyperTalk","AWK","C","Perl","Python","Java","Scheme"],null,null,"http://en.wikipedia.org/wiki/ECMAScript"],["Visual J#","2002",["Java","Visual J++"],null,null,"http://en.wikipedia.org/wiki/J_Sharp"],["PHP","1995",["Perl","C","C++","Java","Tcl"],["Hack"],"//php.net","http://en.wikipedia.org/wiki/PHP"],["Seed7","2005",["Pascal","Modula-2","Ada","ALGOL 68","C","C++","Java"],null,"http://seed7.sourceforge.net","http://en.wikipedia.org/wiki/Seed7"],["Generic Java",null,["Java","Pizza"],["Java"],null,"http://en.wikipedia.org/wiki/Generic_Java"],["Mesa","1978",["ALGOL"],["Java","Modula-2"],null,"http://en.wikipedia.org/wiki/Mesa_(programming_language)"],["Oberon","1986",["Modula-2"],["Oberon-2","Zonnon","Go"],null,"http://en.wikipedia.org/wiki/Oberon_(programming_language)"],["UCSD Pascal/p-System",null,null,null,null,"http://en.wikipedia.org/wiki/UCSD_Pascal"],["AMPL","1985",["AWK","C"],null,"http://www.ampl.com","http://en.wikipedia.org/wiki/AMPL"],["AWK","1977",["C","SNOBOL","Bourne shell"],["Tcl","AMPL","Perl","Korn Shell","Lua"],"http://cm.bell-labs.com/cm/cs/awkbook","http://en.wikipedia.org/wiki/AWK"],["C shell",null,null,null,null,"http://en.wikipedia.org/wiki/C_shell"],["C--","1997",["C"],null,null,"http://en.wikipedia.org/wiki/C--"],["BitC",null,["Haskell","ML"],null,"http://www.bitc-lang.org/","http://en.wikipedia.org/wiki/BitC"],["LPC",null,["C","C++","Lisp","Perl"],["Pike"],"http://lpmuds.net","http://en.wikipedia.org/wiki/LPC_(programming_language)"],["Pike","1994",["LPC","C","C++"],null,"http://pike.lysator.liu.se/","http://en.wikipedia.org/wiki/Pike_(programming_language)"],["Processing","2001",["Design By Numbers","Java","OpenGL","PostScript","C"],null,"http://www.processing.org","http://en.wikipedia.org/wiki/Processing_(programming_language)"],["Verilog","1984",null,["SystemVerilog"],null,"http://en.wikipedia.org/wiki/Verilog"],["B","1969",["BCPL","PL/I"],["C"],null,"http://en.wikipedia.org/wiki/B_(programming_language)"],["BCPL","1966",["CPL"],["B","C"],null,"http://en.wikipedia.org/wiki/BCPL"],["CPL","1963",["ALGOL 60"],["BCPL","POP-2"],null,"http://en.wikipedia.org/wiki/CPL_(programming_language)"],["PL/I","1964",["COBOL","Fortran","ALGOL"],["SP/k","B","REXX","AS/400 Control Language"],null,"http://en.wikipedia.org/wiki/PL/I"],["Fortran","1957",["Speedcoding"],["ALGOL 58","BASIC","C","PL/I","PACT I","MUMPS","Ratfor"],null,"http://en.wikipedia.org/wiki/FORTRAN"],["Self","1987",["Smalltalk"],["NewtonScript","JavaScript","Io","Cel","Agora","Squeak","Lisaac","Lua","Factor","REBOL"],"http://selflanguage.org/","http://en.wikipedia.org/wiki/Self_(programming_language)"],["Object REXX","1988",["REXX","Smalltalk"],["NetRexx"],"http://www.oorexx.org","http://en.wikipedia.org/wiki/Object_REXX"],["Logtalk","1998",["Prolog","Smalltalk","Objective-C","logic programming","object-oriented programming","prototype-based programming"],null,"http://logtalk.org","http://en.wikipedia.org/wiki/Logtalk"],["AppleScript","1993",["Natural language","HyperCard"],null,"http://developer.apple.com/applescript/","http://en.wikipedia.org/wiki/AppleScript"],["Lisaac","2003",["Smalltalk","Self","Eiffel"],null,null,"http://en.wikipedia.org/wiki/Lisaac"],["NewtonScript","1993",["Self","Dylan"],["Io"],null,"http://en.wikipedia.org/wiki/NewtonScript"],["Lasso","1995",["Dylan","SmallTalk","Scala"],null,"http://www.lassosoft.com","http://en.wikipedia.org/wiki/Lasso_(programming_language)"],["Io","2002",["Smalltalk","NewtonScript","Self","Lua","Lisp","Python","Act1"],["Ioke","Restricted Io","Fancy","Luna"],null,"http://en.wikipedia.org/wiki/Io_(programming_language)"],["Logo","1967",["Lisp"],["Smalltalk","Etoys","Scratch","NetLogo","KTurtle","REBOL","Boxer"],null,"http://en.wikipedia.org/wiki/Logo_(programming_language)"],["Sketchpad",null,null,null,null,"http://en.wikipedia.org/wiki/Sketchpad"],["EuLisp","1990",["Common Lisp","InterLisp","LeLisp","Scheme","T","CLOS","ObjVlisp","Oaklisp","Dylan"],["Dylan","ISLISP"],null,"http://en.wikipedia.org/wiki/EuLisp"],["R","1993",["S","Scheme","XLispStat"],null,"http://www.r-project.org","http://en.wikipedia.org/wiki/R_(programming_language)"],["SKILL","1990",["Scheme","Common Lisp","CLOS"],null,null,"http://en.wikipedia.org/wiki/Cadence_SKILL"],["Opa","2011",["OCaml","Erlang","JavaScript"],null,"http://opalang.org/","http://en.wikipedia.org/wiki/Opa_(programming_language)"],["Prolog","1972",["PLANNER"],["Visual Prolog","Mercury","Oz","Erlang","Strand","KL0","KL1","Datalog"],null,"http://en.wikipedia.org/wiki/Prolog"],["Stackless Python",null,null,null,"http://www.stackless.com/","http://en.wikipedia.org/wiki/Stackless_Python"],["Pascal","1970",["ALGOL W"],["Ada","Component Pascal","Java","Modula","Modula-2","Modula-3","Oberon","Oberon-2","Object Pascal","Oxygene","Seed7"],null,"http://en.wikipedia.org/wiki/Pascal_(programming_language)"],["ATS",null,["Dependent ML","ML","OCaml"],null,"http://www.ats-lang.org/","http://en.wikipedia.org/wiki/ATS_(programming_language)"],["Caml","1985",["ML"],["F#"],"http://caml.inria.fr","http://en.wikipedia.org/wiki/Caml_Light"],["COOL","1996",["Sather","Java","ML","Pascal"],["OCaml"],null,"http://en.wikipedia.org/wiki/Cool_(programming_language)"],["Hop","2006",["Scheme"],null,"http://hop.inria.fr/","http://en.wikipedia.org/wiki/Hop_(software)"],["S","1976",["C","APL","Fortran"],null,"http://stat.bell-labs.com/S/","http://en.wikipedia.org/wiki/S_(programming_language)"],["OCaml","1996",["Caml Light","Standard ML"],["F#","Scala","ATS","Opa","Rust"],"http://ocaml.org/","http://en.wikipedia.org/wiki/OCaml"],["ML","1973",["ISWIM"],["Miranda","Haskell","Cyclone","C++","F#","Clojure","Felix","Opa","Erlang","Scala"],null,"http://en.wikipedia.org/wiki/ML_programming_language"],["Idris",null,["Agda","Coq","Epigram","Haskell","ML"],null,"http://idris-lang.org/","http://en.wikipedia.org/wiki/Idris_(programming_language)"],["Coq (as software)",null,null,null,"http://coq.inria.fr/","http://en.wikipedia.org/wiki/Coq"],["SQL","1974",["Datalog"],["CQL","LINQ","SOQL","Windows PowerShell","JPQL","jOOQ"],null,"http://en.wikipedia.org/wiki/SQL"],["Haskell","1990",["Clean","FP","Gofer","Hope","Id","ISWIM","KRC","Lisp","Miranda","ML","Standard ML","Orwell","SASL","SISAL","Scheme"],["Agda","Bluespec","C++11","Concepts","C#","LINQ","CAL","Cayenne","Clean","Clojure","CoffeeScript","Curry","Elm","Epigram","Escher","F#","Frege","Isabelle","Java","Generics","LiveScript","Mercury","Omega","Perl 6","Python","Qi","Scala","Swift","Timber","Visual Basic 9.0"],"http://haskell.org","http://en.wikipedia.org/wiki/Haskell_programming_language"],["YAML",null,null,null,"http://yaml.org/","http://en.wikipedia.org/wiki/YAML"],["F*",null,["F#"],null,"http://research.microsoft.com/en-us/projects/fstar/","http://en.wikipedia.org/wiki/F*_(programming_language)"],["Fantom","2005",["C#","Java","Scala","Ruby","Erlang"],null,"http://www.fantom.org/","http://en.wikipedia.org/wiki/Fantom_(programming_language)"],["Ceylon","2011",["Java","Scala","Smalltalk"],null,"http://ceylon-lang.org/","http://en.wikipedia.org/wiki/Ceylon_Project"],["Pizza",null,["Java"],["Generic Java","Scala"],"http://pizzacompiler.sourceforge.net/","http://en.wikipedia.org/wiki/Pizza_(programming_language)"],["Oz","1991",["Erlang","Lisp","Prolog"],["Alice","Scala"],"http://www.mozart-oz.org/","http://en.wikipedia.org/wiki/Oz_(programming_language)"],["FL","1989",["FP"],["J"],null,"http://en.wikipedia.org/wiki/FL_(programming_language)"],["FPr",null,null,null,"http://www.fpstefan.de","http://en.wikipedia.org/wiki/FPr_(programming_language)"],["J","1990",["APL","FP","FL"],["NumPy","SuperCollider"],"http://www.jsoftware.com/","http://en.wikipedia.org/wiki/J_(programming_language)"],["APL","1964",["mathematical notation"],["J","K","Mathematica","MATLAB","Nial","PPL","Q"],null,"http://en.wikipedia.org/wiki/APL_(programming_language)"],["SASL","1972",["ISWIM"],["KRC","Miranda","Haskell"],null,"http://en.wikipedia.org/wiki/SASL_programming_language"],["Miranda","1985",["KRC","ML","SASL","Hope"],["Clean","Haskell"],"http://miranda.org.uk","http://en.wikipedia.org/wiki/Miranda_programming_language"],["Lucid","1976",["ISWIM"],["SISAL","PureData","Lustre"],null,"http://en.wikipedia.org/wiki/Lucid_(programming_language)"],["ALGOL 60","1960",["ALGOL 58"],["Simula","CPL","Pascal","Ada","C"],null,"http://en.wikipedia.org/wiki/ALGOL_60"],["CLIPS","1985",null,null,"http://clipsrules.sourceforge.net/","http://en.wikipedia.org/wiki/CLIPS"],["COWSEL","1964",["CPL","Lisp"],["POP-2"],null,"http://en.wikipedia.org/wiki/COWSEL"],["Forth","1973",["Burroughs large systems","Lisp","APL"],["Factor","PostScript","RPL","REBOL"],null,"http://en.wikipedia.org/wiki/Forth_(programming_language)"],["Mathematica",null,null,null,"http://www.wolfram.com/mathematica/","http://en.wikipedia.org/wiki/Mathematica"],["Rebol","1997",["Self","Forth","Lisp","Logo"],["JSON","Red"],"http://www.rebol.com","http://en.wikipedia.org/wiki/Rebol"],["Tcl","1988",["AWK","Lisp"],["PowerShell","Tea"],"http://www.tcl.tk/","http://en.wikipedia.org/wiki/Tcl"],["Information Processing Language (IPL)","1956",null,["Lisp"],null,"http://en.wikipedia.org/wiki/Information_Processing_Language"],["Cyclone","2006",["C"],null,"http://cyclone.thelanguage.org","http://en.wikipedia.org/wiki/Cyclone_programming_language"],["Felix",null,["ML","C++"],null,"http://felix-lang.org/","http://en.wikipedia.org/wiki/Felix_(programming_language)"],["SAC","1994",["APL","SISAL","C"],null,"http://www.sac-home.org","http://en.wikipedia.org/wiki/SAC_programming_language"],["Fortran","1957",["Speedcoding"],["ALGOL 58","BASIC","C","PL/I","PACT I","MUMPS","Ratfor"],null,"http://en.wikipedia.org/wiki/Fortran"],["MiniD","2006",["D","Lua","Squirrel","Python","Io","ECMAScript"],null,"http://www.dsource.org/projects/minid","http://en.wikipedia.org/wiki/MiniD"],["smalltalk","1972",["Lisp","Simula","Logo","Sketchpad"],["Objective-C","Self","Object REXX","Java","PHP","Logtalk","Dylan","AppleScript","Lisaac","NewtonScript","Lasso","Python","Ruby","Groovy","Scala","Perl 6","Common Lisp Object System","Falcon","Io","Ioke","Fancy","Dart"],null,"http://en.wikipedia.org/wiki/Smalltalk_(programming_language)"],["MATLAB",null,null,null,"https://www.mathworks.com/products/matlab/","http://en.wikipedia.org/wiki/MATLAB"],["Wolfram Language",null,null,["Julia"],null,"http://en.wikipedia.org/wiki/Wolfram_Language"],["OCaml","1996",["Caml Light","Standard ML"],["F#","Scala","ATS","Opa","Rust"],"http://ocaml.org/","http://en.wikipedia.org/wiki/OCaml_(programming_language)"],["Rebol","1997",["Self","Forth","Lisp","Logo"],["JSON","Red"],"http://www.rebol.com","http://en.wikipedia.org/wiki/REBOL"],["SQL","1974",["Datalog"],["CQL","LINQ","SOQL","Windows PowerShell","JPQL","jOOQ"],null,"http://en.wikipedia.org/wiki/PL/SQL"],["VHDL","1987",["Ada","Pascal"],null,"http://www.eda.org/twiki/bin/view.cgi/P1076/WebHome","http://en.wikipedia.org/wiki/VHDL"],["Goo","2003",["Scheme","Dylan"],null,"http://people.csail.mit.edu/jrb/goo/","http://en.wikipedia.org/wiki/Goo_(programming_language)"],["Squirrel","2003",["Lua","Python","C++","JavaScript"],["MiniD"],"http://squirrel-lang.org/","http://en.wikipedia.org/wiki/Squirrel_(programming_language)"],["Modula-2","1978",["Modula","Mesa","Pascal","Algol-W"],["Modula-3","Oberon","Ada","Fortran 90","Lua","Seed7","Zonnon"],null,"http://en.wikipedia.org/wiki/Modula-2"],["SNOBOL","1962",null,["Icon","Lua"],null,"http://en.wikipedia.org/wiki/SNOBOL"],["Windows PowerShell",null,null,null,"http://www.microsoft.com/powershell","http://en.wikipedia.org/wiki/Windows_PowerShell"],["AWK","1977",["C","SNOBOL","Bourne shell"],["Tcl","AMPL","Perl","Korn Shell","Lua"],"http://cm.bell-labs.com/cm/cs/awkbook","http://en.wikipedia.org/wiki/AWK_(programming_language)"],["smalltalk","1972",["Lisp","Simula","Logo","Sketchpad"],["Objective-C","Self","Object REXX","Java","PHP","Logtalk","Dylan","AppleScript","Lisaac","NewtonScript","Lasso","Python","Ruby","Groovy","Scala","Perl 6","Common Lisp Object System","Falcon","Io","Ioke","Fancy","Dart"],null,"http://en.wikipedia.org/wiki/Smalltalk_80"],["Sed","1974",["ed"],["Chomski","Perl","AWK"],"//www.gnu.org/software/sed/","http://en.wikipedia.org/wiki/Sed"],["occam","1983",["Communicating Sequential Processes"],["Ease"],null,"http://en.wikipedia.org/wiki/Occam_(programming_language)"],["Modula","1975",["Pascal"],null,null,"http://en.wikipedia.org/wiki/Modula"],["ActionScript","1998",["JavaScript","Java"],null,"http://livedocs.adobe.com/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm","http://en.wikipedia.org/wiki/ActionScript"],["JScript .NET",null,["JScript","ECMAScript"],null,null,"http://en.wikipedia.org/wiki/JScript_.NET"],["QML","2009",["JavaScript","Qt"],["Qt"],"http://qt-project.org/doc/qt-5/index.html","http://en.wikipedia.org/wiki/QML"],["TypeScript","2012",["JavaScript","Java","C#"],null,"http://www.typescriptlang.org/","http://en.wikipedia.org/wiki/TypeScript"],["node.js",null,null,null,"http://www.nodejs.org","http://en.wikipedia.org/wiki/Node.js"],["SETL","1969",null,["ProSet","ABC","Slim"],"http://setl.org/","http://en.wikipedia.org/wiki/SETL"],["Mary","1974",["ALGOL 68"],null,null,"http://en.wikipedia.org/wiki/Mary_(programming_language)"],["S3",null,["ALGOL 68"],null,null,"http://en.wikipedia.org/wiki/S3_(programming_language)"],["Unicon",null,["Icon"],null,"http://unicon.sourceforge.net/","http://en.wikipedia.org/wiki/Unicon_programming_language"],["Caml","1985",["ML"],["F#"],"http://caml.inria.fr","http://en.wikipedia.org/wiki/Caml"],["Modula-2+","1984",["Pascal","ALGOL","Modula-2"],["Modula-3"],null,"http://en.wikipedia.org/wiki/Modula-2%2B"],["Gosu",null,["Java","Ruby","Python","Erlang","Haskell","C#"],null,"http://gosu-lang.org/","http://en.wikipedia.org/wiki/Gosu_(programming_language)"],["BlitzBasic",null,null,null,"http://www.blitzbasic.com/","http://en.wikipedia.org/wiki/Blitz_BASIC"],["C++","1983",["C","Simula","ALGOL 68","Ada","CLU","ML"],["Perl","LPC","Lua","Pike","Ada 95","Java","PHP","D","C99","C#","Falcon","Seed7"],"http://isocpp.org/","http://en.wikipedia.org/wiki/C%2B%2B_(programming_language)"],["Polyphonic C#","2002",["C#","Join calculus"],["Cω"],"http://research.microsoft.com/~nick/polyphony/","http://en.wikipedia.org/wiki/Polyphonic_C_sharp"],["HyperTalk","1987",null,["LiveCode","ECMAScript"],null,"http://en.wikipedia.org/wiki/HyperTalk"],["Hack","2014",["PHP","Java","C#"],null,"http://hacklang.org/","http://en.wikipedia.org/wiki/Hack_(programming_language)"],["Oberon-2","1991",["Oberon","Modula-2","Pascal"],["Component Pascal"],null,"http://en.wikipedia.org/wiki/Oberon-2"],["KornShell",null,null,null,"http://www.kornshell.org/","http://en.wikipedia.org/wiki/Korn_Shell"],["Bourne shell",null,null,null,null,"http://en.wikipedia.org/wiki/Bourne_shell"],["Design By Numbers","1999",null,null,"http://dbn.media.mit.edu/","http://en.wikipedia.org/wiki/Design_By_Numbers_(programming_language)"],["OpenGL",null,null,null,"http://www.opengl.org/","http://en.wikipedia.org/wiki/OpenGL"],["PostScript","1982",["Interpress","Lisp"],["PDF"],null,"http://en.wikipedia.org/wiki/PostScript"],["SystemVerilog","2002",["Verilog","Vera"],null,null,"http://en.wikipedia.org/wiki/SystemVerilog"],["SP/k","1974",["PL/I"],["Turing"],null,"http://en.wikipedia.org/wiki/SP/k"],["Rexx","1979",["PL/I","Algol","EXEC 2"],["NetRexx","Object REXX"],null,"http://en.wikipedia.org/wiki/REXX"],["AS/400 Control Language",null,["Job Control Language","PL/I"],["Windows PowerShell"],null,"http://en.wikipedia.org/wiki/AS/400_Control_Language"],["COBOL","1959",["FLOW-MATIC","COMTRAN","AIMACO","FACT"],["PL/I","ABAP"],null,"http://en.wikipedia.org/wiki/COBOL"],["ALGOL 58","1958",null,null,null,"http://en.wikipedia.org/wiki/ALGOL_58"],["BASIC","1964",["ALGOL 60","FORTRAN II","JOSS"],["COMAL","Visual Basic","Visual Basic .NET","Realbasic","GRASS","AutoIt","AutoHotkey"],null,"http://en.wikipedia.org/wiki/BASIC"],["MUMPS","1966",["JOSS"],["PSL","Caché ObjectScript"],null,"http://en.wikipedia.org/wiki/MUMPS"],["Ratfor","1976",["Fortran","C"],null,"http://sepwww.stanford.edu/doku.php?id=sep:software:ratfor","http://en.wikipedia.org/wiki/Ratfor"],["Speedcoding","1953",["Assembly language","Machine code"],["Fortran","ALGOL 58","BASIC","C","PL/I","PACT I","MUMPS","Ratfor"],null,"http://en.wikipedia.org/wiki/Speedcoding"],["Cel","1998",["Smalltalk","Self","Forth","NewtonScript","Objective-C","Python"],null,null,"http://en.wikipedia.org/wiki/Cel_(programming_language)"],["Squeak",null,null,null,"http://www.squeak.org","http://en.wikipedia.org/wiki/Squeak"],["Factor","2003",["Joy","Forth","Lisp","Self"],["Cat","Concat"],"http://factorcode.org/","http://en.wikipedia.org/wiki/Factor_(programming_language)"],["NetRexx","1996",["PL/I","REXX","ooREXX","Java"],null,null,"http://en.wikipedia.org/wiki/NetRexx"],["HyperCard",null,null,null,null,"http://en.wikipedia.org/wiki/HyperCard"],["Io","2002",["Smalltalk","NewtonScript","Self","Lua","Lisp","Python","Act1"],["Ioke","Restricted Io","Fancy","Luna"],null,"http://en.wikipedia.org/wiki/Io_programming_language"],["Dylan","1992",["CLOS","ALGOL","Scheme","EuLisp"],["Goo","Lasso","Python","Ruby","Julia"],"http://opendylan.org/","http://en.wikipedia.org/wiki/Dylan_programming_language"],["smalltalk","1972",["Lisp","Simula","Logo","Sketchpad"],["Objective-C","Self","Object REXX","Java","PHP","Logtalk","Dylan","AppleScript","Lisaac","NewtonScript","Lasso","Python","Ruby","Groovy","Scala","Perl 6","Common Lisp Object System","Falcon","Io","Ioke","Fancy","Dart"],null,"http://en.wikipedia.org/wiki/SmallTalk"],["Etoys","1996",["Logo","Smalltalk","HyperCard","StarLogo","AgentSheets"],["Croquet","Scratch"],null,"http://en.wikipedia.org/wiki/Etoys_(programming_language)"],["Scratch","2006",["Logo","Smalltalk","HyperCard","StarLogo","AgentSheets","Etoys"],null,"http://scratch.mit.edu","http://en.wikipedia.org/wiki/Scratch_(programming_language)"],["NetLogo","1999",["StarLogo","Logo"],null,"http://ccl.northwestern.edu/netlogo/","http://en.wikipedia.org/wiki/NetLogo"],["KTurtle",null,null,null,"http://edu.kde.org/kturtle","http://en.wikipedia.org/wiki/KTurtle"],["Le Lisp",null,null,null,null,"http://en.wikipedia.org/wiki/LeLisp"],["T","1982",["Scheme"],["EuLisp","Joule"],null,"http://en.wikipedia.org/wiki/T_(programming_language)"],["Oaklisp","1986",["Scheme","T","Smalltalk"],["EuLisp","Java","Dylan"],null,"http://en.wikipedia.org/wiki/Oaklisp"],["Visual Prolog",null,null,null,"http://www.visual-prolog.com/","http://en.wikipedia.org/wiki/Visual_Prolog"],["Planner","1969",null,null,null,"http://en.wikipedia.org/wiki/PLANNER"],["Component Pascal","1997",["Oberon-2"],null,null,"http://en.wikipedia.org/wiki/Component_Pascal"],["Oberon-2","1991",["Oberon","Modula-2","Pascal"],["Component Pascal"],null,"http://en.wikipedia.org/wiki/Oberon-2_(programming_language)"],["Oxygene",null,["Object Pascal","C#"],null,"http://www.remobjects.com/oxygene","http://en.wikipedia.org/wiki/Oxygene_(programming_language)"],["ALGOL W","1966",["ALGOL 60"],["Pascal"],null,"http://en.wikipedia.org/wiki/ALGOL_W"],["Agda","2007",["Coq","Epigram","Haskell"],["Idris"],"http://wiki.portal.chalmers.se/agda/pmwiki.php","http://en.wikipedia.org/wiki/Agda_(programming_language)"],["Java Persistence Query Language",null,["SQL"],null,null,"http://en.wikipedia.org/wiki/Java_Persistence_Query_Language"],["jOOQ",null,null,null,"http://www.jooq.org","http://en.wikipedia.org/wiki/Java_Object_Oriented_Querying"],["Scala","2003",["Eiffel","Erlang","Haskell","Java","Lisp","Pizza","Standard ML","OCaml","Scheme","Smalltalk","Oz"],["Fantom","Ceylon","Lasso","Kotlin","Swift"],"http://www.scala-lang.org/","http://en.wikipedia.org/wiki/Scala_programming_language"],["Alice","2000",["ML","Oz"],null,"http://www.ps.uni-saarland.de/alice/","http://en.wikipedia.org/wiki/Alice_(programming_language)"],["NumPy",null,null,null,"http://www.numpy.org/","http://en.wikipedia.org/wiki/NumPy"],["SuperCollider",null,null,null,"http://supercollider.github.io/","http://en.wikipedia.org/wiki/SuperCollider"],["K","1993",["A+","APL","Scheme"],null,null,"http://en.wikipedia.org/wiki/K_(programming_language)"],["Nial","1981",["APL","Lisp"],null,null,"http://en.wikipedia.org/wiki/Nial"],["Q","2003",["A+","APL","Scheme","K"],null,null,"http://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems)"],["Pure Data",null,null,null,"http://puredata.info","http://en.wikipedia.org/wiki/PureData"],["CPL","1963",["ALGOL 60"],["BCPL","POP-2"],null,"http://en.wikipedia.org/wiki/Combined_Programming_Language"],["RPL","1984",["Forth","infix notation"],null,null,"http://en.wikipedia.org/wiki/RPL_(programming_language)"],["JSON",null,null,null,"http://json.org/","http://en.wikipedia.org/wiki/JSON"],["Red","2011",["Rebol","Scala","Lua"],null,"http://www.red-lang.org/","http://en.wikipedia.org/wiki/Red_(programming_language)"],["Tea","1997",["Tcl","Java","Scheme"],null,"http://www.pdmfc.com/tea","http://en.wikipedia.org/wiki/Tea_(programming_language)"],["APL","1964",["mathematical notation"],["J","K","Mathematica","MATLAB","Nial","PPL","Q"],null,"http://en.wikipedia.org/wiki/APL_programming_language"],["Fortran","1957",["Speedcoding"],["ALGOL 58","BASIC","C","PL/I","PACT I","MUMPS","Ratfor"],null,"http://en.wikipedia.org/wiki/Fortran_(programming_language)"],["Mesa","1978",["ALGOL"],["Java","Modula-2"],null,"http://en.wikipedia.org/wiki/Mesa_programming_language"],["ALGOL W","1966",["ALGOL 60"],["Pascal"],null,"http://en.wikipedia.org/wiki/Algol-W"],["pp, chomski virtual machine","2007",["Sed","Awk"],null,"http://bumble.sourceforge.net/machine/","http://en.wikipedia.org/wiki/Chomski"],["JScript","1996",null,null,"http://msdn.microsoft.com/library/hbxc2t98.aspx","http://en.wikipedia.org/wiki/JScript"],["Qt",null,null,null,"https://qt-project.org","http://en.wikipedia.org/wiki/Qt_(framework)"],["Icon","1977",["SNOBOL","ALGOL"],["Unicon","Python"],"http://www.cs.arizona.edu/icon/","http://en.wikipedia.org/wiki/Icon_programming_language"],["LiveCode","1993",["HyperTalk"],null,"http://www.runrev.com/","http://en.wikipedia.org/wiki/LiveCode"],["Portable Document Format",null,null,null,"http://www.adobe.com/devnet/pdf/pdf_reference_archive.html","http://en.wikipedia.org/wiki/Portable_Document_File"],["Turing","1982",["Euclid","Pascal","SP/k"],null,null,"http://en.wikipedia.org/wiki/Turing_(programming_language)"],["ALGOL","1958",null,["Simula","C","CPL","Pascal","Ada"],null,"http://en.wikipedia.org/wiki/Algol"],["ABAP/4","1983",["Objective-C","COBOL","SQL"],null,"http://scn.sap.com/community/abap","http://en.wikipedia.org/wiki/ABAP"],["FLOW-MATIC","1955",null,["COBOL"],null,"http://en.wikipedia.org/wiki/FLOW-MATIC"],["COMTRAN","1957",["FLOW-MATIC"],["COBOL"],null,"http://en.wikipedia.org/wiki/COMTRAN"],["FACT","1959",null,["COBOL"],null,"http://en.wikipedia.org/wiki/FACT_computer_language"],["COMAL","1973",["BASIC","Pascal"],null,null,"http://en.wikipedia.org/wiki/COMAL"],["Visual Basic","1991",["BASIC"],["Visual Basic .NET","Gambas","Xojo","Basic4ppc"],"http://msdn.microsoft.com/en-us/vstudio/ms788229.aspx","http://en.wikipedia.org/wiki/Visual_Basic"],["Xojo",null,null,null,"http://xojo.com","http://en.wikipedia.org/wiki/Realbasic"],["AutoIt",null,null,null,"http://www.autoitscript.com/autoit3/","http://en.wikipedia.org/wiki/AutoIt"],["AutoHotkey",null,null,null,"http://ahkscript.org/","http://en.wikipedia.org/wiki/AutoHotkey"],["JOSS","1966",["ALGOL 58"],["BASIC","TELCOMP","CAL (Joss family)","FOCAL","MUMPS"],null,"http://en.wikipedia.org/wiki/JOSS"],["Caché ObjectScript","1997",["MUMPS"],null,null,"http://en.wikipedia.org/wiki/Cach%C3%A9_ObjectScript"],["Joy","2001",["Scheme","FP","C"],["Factor","Cat","V","Trith"],null,"http://en.wikipedia.org/wiki/Joy_(programming_language)"],["Croquet Project",null,null,null,"https://web.archive.org/web/20130623112311/http://opencroquet.org/","http://en.wikipedia.org/wiki/Croquet_Project"],["StarLogo",null,["Logo"],["NetLogo","Etoys"],"http://education.mit.edu/starlogo/","http://en.wikipedia.org/wiki/StarLogo"],["AgentSheets","1991",["Lisp","Logo","Smalltalk"],["Etoys","Scratch"],"http://www.agentsheets.com","http://en.wikipedia.org/wiki/AgentSheets"],["Joule","1996",["Concurrent Logic Programming","Actors"],["E"],null,"http://en.wikipedia.org/wiki/Joule_(programming_language)"],["T","1982",["Scheme"],["EuLisp","Joule"],null,"http://en.wikipedia.org/wiki/T_programming_language"],["A+","1988",["APL"],["K"],null,"http://en.wikipedia.org/wiki/A%2B_(programming_language)"],["AWK","1977",["C","SNOBOL","Bourne shell"],["Tcl","AMPL","Perl","Korn Shell","Lua"],"http://cm.bell-labs.com/cm/cs/awkbook","http://en.wikipedia.org/wiki/Awk"],["Euclid","1977",["Pascal"],["Mesa","Concurrent Euclid","Turing"],null,"http://en.wikipedia.org/wiki/Euclid_(programming_language)"],["Gambas","1999",["Visual Basic","Java"],null,"http://gambas.sourceforge.net/","http://en.wikipedia.org/wiki/Gambas"],["Xojo",null,null,null,"http://xojo.com","http://en.wikipedia.org/wiki/Xojo"],["Basic4ppc","2005",["Visual Basic"],null,"http://www.basic4ppc.com","http://en.wikipedia.org/wiki/Basic4ppc"],["TELCOMP","1965",["JOSS"],["MUMPS"],null,"http://en.wikipedia.org/wiki/TELCOMP"],["Concurrent Euclid (ConEuc)","1980",["Euclid","Communicating Sequential Processes"],["Turing Plus"],null,"http://en.wikipedia.org/wiki/Concurrent_Euclid_(programming_language)"],["Turing+","1987",["Concurrent Euclid","Turing"],["Object-Oriented Turing"],null,"http://en.wikipedia.org/wiki/Turing_Plus"],["Object-Oriented Turing","1991",["Turing"],null,null,"http://en.wikipedia.org/wiki/Object-Oriented_Turing"],["Concurrent Euclid (ConEuc)","1980",["Euclid","Communicating Sequential Processes"],["Turing Plus"],null,"http://en.wikipedia.org/wiki/Concurrent_Euclid"]]
languages.json

接下来用另一个程序读取json数据,采集过程是根据URL来判断的,有些URL是指向同一个页面的,剔除重复项,对数据进行优化后得到196种语言,然后把编程语言作为结点,影响关系作为边,用图描述出来,生成Graphviz的dot文件。

digraph languages {
{
node [shape=plaintext, fontsize=16];
1953->1955->1956->1957->1958->1959->1960->1962->1963->1964->1965->1966->1967->1968->1969->1970->1972->1973->1974->1975->1976->1977->1978->1979->1980->1981->1982->1983->1984->1985->1986->1987->1988->1989->1990->1991->1992->1993->1994->1995->1996->1997->1998->1999->2000->2001->2002->2003->2004->2005->2006->2007->2008->2009->2010->2011->2012->2014
}
{rank = same;1953;"Speedcoding";}
{rank = same;1955;"FLOW-MATIC";}
{rank = same;1956;"Information Processing Language (IPL)";}
{rank = same;1957;"Fortran";"COMTRAN";}
{rank = same;1958;"Lisp";"ALGOL 58";}
{rank = same;1959;"COBOL";"FACT";}
{rank = same;1960;"ALGOL 60";}
{rank = same;1962;"SNOBOL";}
{rank = same;1963;"CPL";}
{rank = same;1964;"PL/I";"APL";"COWSEL";"BASIC";}
{rank = same;1965;"TELCOMP";}
{rank = same;1966;"ISWIM";"BCPL";"MUMPS";"ALGOL W";"JOSS";}
{rank = same;1967;"Simula";"Logo";}
{rank = same;1968;"ALGOL 68";}
{rank = same;1969;"B";}
{rank = same;1970;"Pascal";}
{rank = same;1972;"C";"smalltalk";"SASL";"Prolog";}
{rank = same;1973;"ML";"Forth";"COMAL";}
{rank = same;1974;"CLU";"SQL";"Sed";"Mary";"SP/k";}
{rank = same;1975;"Scheme";"Modula";}
{rank = same;1976;"S";"Lucid";"Ratfor";}
{rank = same;1977;"FP";"Icon";"AWK";"Euclid";}
{rank = same;1978;"Mesa";"Modula-2";}
{rank = same;1979;"Rexx";}
{rank = same;1980;"Ada";"Concurrent Euclid (ConEuc)";}
{rank = same;1981;"KRC";"Nial";}
{rank = same;1982;"PostScript";"T";"Turing";}
{rank = same;1983;"Objective-C";"C++";"SISAL";"occam";"ABAP/4";}
{rank = same;1984;"Common Lisp";"Orwell";"Verilog";"Modula-2+";"RPL";}
{rank = same;1985;"Miranda";"AMPL";"Caml";"CLIPS";}
{rank = same;1986;"Erlang";"Eiffel";"Object Pascal";"Oberon";"Oaklisp";}
{rank = same;1987;"Clean";"Perl";"Self";"VHDL";"HyperTalk";"Turing+";}
{rank = same;1988;"Modula-3";"Object REXX";"Tcl";"A+";}
{rank = same;1989;"FL";}
{rank = same;1990;"Haskell";"Sather";"EuLisp";"SKILL";"J";}
{rank = same;1991;"Python";"Oz";"Oberon-2";"Visual Basic";"AgentSheets";"Object-Oriented Turing";}
{rank = same;1992;"Alef";"Dylan";}
{rank = same;1993;"Lua";"AppleScript";"NewtonScript";"R";"K";"LiveCode";}
{rank = same;1994;"Racket";"Pike";"SAC";}
{rank = same;1995;"Ruby";"Java";"Limbo";"Escher";"Mercury";"JavaScript";"PHP";"Lasso";}
{rank = same;1996;"OCaml";"COOL";"NetRexx";"Etoys";"Joule";}
{rank = same;1997;"ECMAScript";"C--";"Rebol";"Component Pascal";"Tea";"Caché ObjectScript";}
{rank = same;1998;"Logtalk";"ActionScript";"Cel";}
{rank = same;1999;"Design By Numbers";"NetLogo";"Gambas";}
{rank = same;2000;"C#";"Perl 6";"BeanShell";"Alice";}
{rank = same;2001;"Visual Basic .NET";"D programming language";"Processing";"Joy";}
{rank = same;2002;"Visual J#";"Io";"Polyphonic C#";"SystemVerilog";}
{rank = same;2003;"Scala";"Falcon";"Groovy";"Boo";"Nemerle";"Cω";"Lisaac";"Goo";"Squirrel";"Factor";"Q";}
{rank = same;2004;"CAL";"Epigram";}
{rank = same;2005;"F#";"Seed7";"Fantom";"Basic4ppc";}
{rank = same;2006;"Cyclone";"Cobra";"Vala";"Hop";"MiniD";"Scratch";}
{rank = same;2007;"Nu";"Agda";"Clojure";"potion";"pp, chomski virtual machine";}
{rank = same;2008;"Objective-J";"Mirah";"Reia";}
{rank = same;2009;"CoffeeScript";"Go";"QML";}
{rank = same;2010;"Fancy";}
{rank = same;2011;"Elm";"Frege";"LiveScript";"Dart";"Monkey X";"Opa";"Ceylon";"Red";}
{rank = same;2012;"Rust";"Elixir";"Julia";"TypeScript";}
{rank = same;2014;"Swift";"Hack";}
"Speedcoding"->{"Fortran" "ALGOL 58" "BASIC" "C" "PL/I" "MUMPS" "Ratfor"}
"FLOW-MATIC"->{"COBOL" "COMTRAN"}
"Information Processing Language (IPL)"->{"Lisp"}
"Fortran"->{"ALGOL 58" "BASIC" "C" "PL/I" "MUMPS" "Ratfor" "SISAL" "Julia" "S"}
"COMTRAN"->{"COBOL"}
"Lisp"->{"CLIPS" "CLU" "COWSEL" "Dylan" "Falcon" "Forth" "Haskell" "Io" "JavaScript" "Julia" "Logo" "Lua" "ML" "Nu" "Perl" "Python" "R" "Rebol" "Racket" "Ruby" "Tcl" "smalltalk" "Common Lisp" "Scheme" "Scala" "ISWIM" "Nemerle" "Oz" "PostScript" "Factor" "Nial" "AgentSheets"}
"ALGOL 58"->{"ALGOL 60" "JOSS"}
"COBOL"->{"PL/I" "ABAP/4"}
"FACT"->{"COBOL"}
"ALGOL 60"->{"Simula" "CPL" "Pascal" "Ada" "C" "CLU" "ISWIM" "ALGOL 68" "PL/I" "BASIC" "ALGOL W"}
"SNOBOL"->{"Icon" "Lua" "AWK"}
"CPL"->{"BCPL" "C" "COWSEL"}
"PL/I"->{"SP/k" "B" "C" "Rexx" "NetRexx"}
"APL"->{"J" "K" "Nial" "Q" "FP" "S" "Forth" "SAC" "A+"}
"BASIC"->{"COMAL" "Visual Basic" "Visual Basic .NET"}
"TELCOMP"->{"MUMPS"}
"ISWIM"->{"SASL" "Miranda" "ML" "Haskell" "Clean" "Lucid"}
"BCPL"->{"B" "C"}
"MUMPS"->{"Caché ObjectScript"}
"ALGOL W"->{"Pascal"}
"JOSS"->{"BASIC" "TELCOMP" "MUMPS"}
"Simula"->{"CLU" "smalltalk" "C++" "Eiffel"}
"Logo"->{"Etoys" "Scratch" "NetLogo" "smalltalk" "Rebol" "AgentSheets"}
"ALGOL 68"->{"Mary" "Python" "C" "C++" "Scheme" "Ada" "Dylan" "Icon" "Modula-3" "Seed7" "Mesa" "Modula-2+"}
"B"->{"C"}
"Pascal"->{"Ada" "Component Pascal" "Java" "Modula" "Modula-2" "Modula-3" "Oberon" "Oberon-2" "Object Pascal" "Seed7" "Limbo" "SISAL" "Perl" "Go" "COOL" "VHDL" "Modula-2+" "Turing" "COMAL" "Euclid"}
"C"->{"AMPL" "AWK" "C++" "C--" "C#" "Objective-C" "Go" "Rust" "Java" "JavaScript" "Limbo" "Perl" "PHP" "Pike" "Processing" "Python" "Seed7" "Verilog" "Alef" "Cyclone" "SISAL" "D programming language" "Julia" "potion" "Monkey X" "Vala" "ECMAScript" "S" "SAC" "Ratfor" "Joy"}
"smalltalk"->{"Objective-C" "Self" "Object REXX" "Java" "PHP" "Logtalk" "Dylan" "AppleScript" "Lisaac" "NewtonScript" "Lasso" "Python" "Ruby" "Groovy" "Scala" "Perl 6" "Falcon" "Io" "Fancy" "Dart"}
"SASL"->{"KRC" "Miranda" "Haskell"}
"Prolog"->{"Mercury" "Oz" "Erlang" "Clojure" "Logtalk"}
"ML"->{"Miranda" "Haskell" "Cyclone" "C++" "F#" "Clojure" "Opa" "Erlang" "Scala" "C#" "Nemerle" "Caml" "COOL" "Alice"}
"Forth"->{"Factor" "PostScript" "RPL" "Rebol" "Cel"}
"CLU"->{"Ada" "Lua" "Ruby" "Sather" "Swift" "C++"}
"SQL"->{"ABAP/4"}
"Sed"->{"Perl" "AWK" "pp, chomski virtual machine"}
"SP/k"->{"Turing"}
"Scheme"->{"Clojure" "Common Lisp" "Dylan" "EuLisp" "Haskell" "Hop" "JavaScript" "Julia" "Lua" "R" "S" "Racket" "Ruby" "Rust" "Sather" "Scala" "ECMAScript" "SKILL" "Goo" "T" "Oaklisp" "K" "Q" "Tea" "Joy"}
"Modula"->{"Lua" "Go" "Modula-2"}
"S"->{"R"}
"Lucid"->{"SISAL"}
"FP"->{"FL" "J" "Haskell" "Joy"}
"Icon"->{"Python" "C#"}
"AWK"->{"Tcl" "AMPL" "Perl" "Lua" "ECMAScript"}
"Euclid"->{"Mesa" "Turing" "Concurrent Euclid (ConEuc)"}
"Mesa"->{"Java" "Modula-2"}
"Modula-2"->{"Modula-3" "Oberon" "Ada" "Lua" "Seed7" "Modula-2+" "Oberon-2"}
"Rexx"->{"NetRexx" "Object REXX"}
"Ada"->{"C++" "Eiffel" "VHDL" "Ruby" "Java" "Seed7"}
"KRC"->{"Miranda" "Haskell"}
"PostScript"->{"Processing"}
"T"->{"EuLisp" "Joule" "Oaklisp"}
"Turing"->{"Turing+" "Object-Oriented Turing"}
"Objective-C"->{"Java" "Nu" "Objective-J" "Swift" "Groovy" "Cobra" "Logtalk" "Cel" "ABAP/4"}
"C++"->{"Perl" "Lua" "Pike" "Java" "PHP" "C#" "Falcon" "Seed7" "Rust" "Ruby" "Python" "D programming language" "Ada" "Monkey X" "Vala" "Squirrel"}
"SISAL"->{"SAC" "Haskell"}
"occam"->{"Go"}
"Common Lisp"->{"Clojure" "Dylan" "EuLisp" "Julia" "R" "SKILL" "Rust" "Sather"}
"Orwell"->{"Haskell"}
"Verilog"->{"SystemVerilog"}
"Modula-2+"->{"Modula-3"}
"Miranda"->{"Clean" "Haskell" "Orwell"}
"Caml"->{"F#"}
"Erlang"->{"F#" "Clojure" "Rust" "Scala" "Opa" "Reia" "Elixir" "Dart" "Fancy" "Fantom" "Oz"}
"Eiffel"->{"C#" "Java" "Lisaac" "Racket" "Ruby" "Sather" "Scala" "D programming language" "Ada" "Cobra"}
"Object Pascal"->{"C#" "Java"}
"Oberon"->{"Oberon-2" "Go" "Java" "Modula-3"}
"Oaklisp"->{"EuLisp" "Java" "Dylan"}
"Clean"->{"Haskell" "CAL"}
"Perl"->{"Python" "PHP" "Ruby" "ECMAScript" "JavaScript" "Falcon" "Perl 6" "Julia" "CoffeeScript" "Groovy"}
"Self"->{"NewtonScript" "JavaScript" "Io" "Cel" "Lisaac" "Lua" "Factor" "ECMAScript" "Rebol"}
"HyperTalk"->{"LiveCode" "ECMAScript"}
"Turing+"->{"Object-Oriented Turing"}
"Modula-3"->{"Java" "Python" "Caml" "C#"}
"Object REXX"->{"NetRexx"}
"Tcl"->{"Tea" "PHP"}
"A+"->{"K" "Q"}
"FL"->{"J"}
"Haskell"->{"Agda" "C#" "CAL" "Clean" "Clojure" "CoffeeScript" "Elm" "Epigram" "Escher" "F#" "Frege" "Java" "LiveScript" "Mercury" "Perl 6" "Python" "Scala" "Swift" "Rust"}
"Sather"->{"Rust" "COOL"}
"EuLisp"->{"Dylan"}
"Python"->{"Boo" "Cobra" "F#" "Falcon" "Go" "Groovy" "JavaScript" "Julia" "Ruby" "Swift" "Rust" "CoffeeScript" "D programming language" "Reia" "Vala" "ECMAScript" "Io" "MiniD" "Squirrel" "Cel"}
"Oz"->{"Alice" "Scala"}
"Oberon-2"->{"Component Pascal"}
"Visual Basic"->{"Visual Basic .NET" "Gambas" "Basic4ppc"}
"AgentSheets"->{"Etoys" "Scratch"}
"Alef"->{"Limbo" "Rust" "Go"}
"Dylan"->{"Goo" "Lasso" "Python" "Ruby" "Julia" "NewtonScript" "EuLisp"}
"Lua"->{"Io" "Squirrel" "Falcon" "MiniD" "Julia" "Ruby" "potion" "Red"}
"NewtonScript"->{"Io" "Cel"}
"R"->{"Julia"}
"K"->{"Q"}
"Racket"->{"Scheme" "Rust" "Clojure"}
"Ruby"->{"Clojure" "Elixir" "Falcon" "Fancy" "Groovy" "Julia" "Mirah" "Nu" "potion" "Reia" "Swift" "Rust" "CoffeeScript" "Perl 6" "D programming language" "Fantom"}
"Java"->{"BeanShell" "C#" "Clojure" "ECMAScript" "Groovy" "JavaScript" "PHP" "Python" "Scala" "Seed7" "Vala" "CAL" "D programming language" "Mirah" "Ada" "Monkey X" "Visual J#" "Processing" "COOL" "Fantom" "Ceylon" "ActionScript" "TypeScript" "Hack" "NetRexx" "Tea" "Gambas"}
"Limbo"->{"Go" "Rust"}
"JavaScript"->{"ActionScript" "CoffeeScript" "Dart" "Objective-J" "QML" "TypeScript" "LiveScript" "Perl 6" "Monkey X" "Opa" "Squirrel"}
"PHP"->{"Hack" "Falcon"}
"OCaml"->{"F#" "Scala" "Opa" "Rust" "Elm"}
"COOL"->{"OCaml"}
"Etoys"->{"Scratch"}
"ECMAScript"->{"MiniD"}
"Rebol"->{"Red"}
"Design By Numbers"->{"Processing"}
"C#"->{"Dart" "F#" "Java" "Nemerle" "Swift" "Vala" "Rust" "D programming language" "Boo" "Cobra" "Monkey X" "Cω" "Fantom" "TypeScript" "Polyphonic C#" "Hack"}
"D programming language"->{"MiniD" "Vala"}
"Joy"->{"Factor"}
"Io"->{"Fancy" "potion" "MiniD"}
"Polyphonic C#"->{"Cω"}
"Scala"->{"Fantom" "Ceylon" "Lasso" "Swift" "F#" "Red"}
"Boo"->{"Mirah"}
"Cω"->{"C#"}
"Squirrel"->{"MiniD"}
"Epigram"->{"Agda"}
"F#"->{"LiveScript" "C#" "Elm"}
"Cyclone"->{"Rust"}
"Clojure"->{"Elixir"}
"CoffeeScript"->{"LiveScript"}
"Rust"->{"Swift"}
}
languages.gv

最后用dot程序生成图片文件。

dot -Tsvg languages.gv -o languages.svg

点此查看SVG图片

点此下载GIF图片

posted @ 2014-10-05 19:52  刘俊峰  阅读(3469)  评论(8编辑  收藏  举报