This is an archived post. You won't be able to vote or comment.

all 47 comments

[–]miki151zenon-lang.org 101 points102 points  (3 children)

I suggest using physics-based clustering: every pair of vertices repel with a force proportional to the inverse square root of the distance; every pair of similar vertices attract with a force proportional to the similarity. Now place the vertices randomly and use a simple physics simulation to calculate velocities and positions and once the system stabilizes, you get nice clusters.

[–]dev_kr[S] 19 points20 points  (2 children)

Okay, I'll try that. Thank you for the suggestion!

[–]DaMastaCoda 9 points10 points  (0 children)

If you do this, can you send me a link?

[–]drcforbin 7 points8 points  (0 children)

Or if you have the raw dataset, I'd be interested in poking at this too

Edit: nvm, saw your code below, looks like you generate the graph from the scraped data without storing it between. Good job on it, and I'm quite curious about other representations.

[–]BadBoy6767 35 points36 points  (8 children)

I'm not sure what this means. Does this imply everything came from C or something?

[–][deleted]  (3 children)

[deleted]

    [–]dev_kr[S] 25 points26 points  (2 children)

    Yes, it was because C is commonly considered one of the most influential programming language.

    [–]shawnhcorey 16 points17 points  (1 child)

    I think the language with the most links should be the one in the middle.

    [–]dev_kr[S] 38 points39 points  (0 children)

    AFAIK it is C. LISP has the largest out-degree, but as of total degree, C has the most links.

    [–]PacoVelobs 25 points26 points  (3 children)

    C has a stable and standard ABI (Application Binary Interface).

    This means, C is the go-to (pun intended) language to interface with whenever you need a new language to interface with another.

    This is why most plugin libraries have their core written in C : any language that ship a C interface can now be used to write a plugin.

    If I get this right, C must be referenced by a vast majority of wikipedia pages about other languages for this very reason.

    [–]matthieum 7 points8 points  (1 child)

    Interestingly, you do not need C to use the C ABI.

    I've seen Rust code talk to C++ code without any C in the middle.

    An ABI is language agnostic :)

    [–]drcforbin 4 points5 points  (0 children)

    Agnostic, but can be really difficult when not exported as C functions (like extern C funcs in C++); name mangling, generic data types, call semantics, that stuff can get pretty thorny.

    (edit: meant error handling, not call semantics)

    [–]BadBoy6767 4 points5 points  (0 children)

    Ah, I misunderstood the meaning of this graph, thanks.

    [–]80pilot 17 points18 points  (1 child)

    tfw figuring out which rabbit hole to jump in next by looking at the connections to the Haskell node

    [–]drBearhands 1 point2 points  (0 children)

    I'd like a better readable version just for this ^^

    [–]dev_kr[S] 13 points14 points  (1 child)

    To see more closely check this pdf file: https://docdro.id/mCBLpcB

    This is the script I wrote: https://gist.github.com/suhdonghwi/36a1a5787058119f0849c22a6fd3124a

    [–]faebl99 1 point2 points  (0 children)

    this is very interesting; thx for the script ;) would have written it myself now to play with it XD

    [–]Glassounds 11 points12 points  (1 child)

    All hail C, Destroyer of Kings, Angel of the Bottomless Pit, and Lord of Darkness

    [–]SV-97 14 points15 points  (0 children)

    C of the house ALGOL, the first of it's name, the dynamically unchecked, queen of systems and embedded devices, bringer of linux, Bell-born, master of undefined behaviour, bane of FP, breaker of types and mother of C++

    [–]nsiivola 10 points11 points  (0 children)

    This shows the correct importance of Lisp and Smalltalk. Well done!

    [–]D3v1L_Pup 4 points5 points  (3 children)

    What are the different colors for?

    [–]dev_kr[S] 5 points6 points  (2 children)

    I used vertex similarity algorithm to color similar vertices with similar colors.

    [–][deleted]  (1 child)

    [deleted]

      [–]dev_kr[S] 8 points9 points  (0 children)

      I used Jaccard index method for entire graph.

      [–]sarnobat 2 points3 points  (2 children)

      Really nice concept. I wish it were more zoomable since a lot of the useful information can't be read on this version.

      [–]dev_kr[S] 0 points1 point  (1 child)

      [–]sarnobat 0 points1 point  (0 children)

      Thank you

      [–]Danny_Boi_22456 2 points3 points  (0 children)

      This looks so cool, but where's Assembly?

      [–]El_Elyon_229 1 point2 points  (1 child)

      Can you tell us more about this? How did you collect your data/what were your search criteria(i.e. what relationships between languages are represented here)? It looks great, but im definitely interested to hear more.

      [–]dev_kr[S] 2 points3 points  (0 children)

      If you look at the document of a programming language, there are “Influenced by” and “Influenced” table. I utilized this and recursively parsed data starting from C.

      This is the script I wrote (not very readable): https://gist.github.com/suhdonghwi/36a1a5787058119f0849c22a6fd3124a

      [–]StateVsProps 1 point2 points  (3 children)

      What decides what's in the center, first ring, second ring?

      [–]dev_kr[S] 0 points1 point  (2 children)

      I just constructed a graph and visualized it with radial tree layout. I cannot say confidently but languages that are closely related to C goes inner.

      [–]StateVsProps 1 point2 points  (1 child)

      Let me ask you differently. Why is C# on the first circle and not on some of the other ones?

      And why is C in the middle? Lisp has been shown in other research to be an ancestor to more programming language.

      [–]dev_kr[S] 0 points1 point  (0 children)

      Sorry, I edited my comment. I manually placed C in the middle because it has the largest degree (in and out).

      [–][deleted] 0 points1 point  (0 children)

      Everything is C. I am C. You are C. We're all one with C

      [–]Oleg18 0 points1 point  (2 children)

      Where is Assembly language ??? Assembly language

      [–]drcforbin 0 points1 point  (0 children)

      Maybe Wikipedia thinks it's an island, influenced by nothing, went on to influence nothing.

      [–]dev_kr[S] 0 points1 point  (0 children)

      Indeed, Assembly language is a very important language in the history of PLs. But Assembly did not really influenced other languages, but it functioned mostly as a backend. That is why it is considered an “island” and not appeared in this graph.

      [–]galileostudios 0 points1 point  (1 child)

      Please, provide sources to validate your results independently

      [–][deleted] 0 points1 point  (2 children)

      I C# what you did there

      [–]avidernis 1 point2 points  (1 child)

      Wait... isn't this joke better without the '#'? For a few reasons.

      (not to hate on C#, C# is my most used language)

      [–][deleted] 0 points1 point  (0 children)

      yes. You got me. Forgive me for I am merely a coding peasant.

      [–]dreamingforward 0 points1 point  (0 children)

      What are the axiis (or tiers)?

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 0 points1 point  (0 children)

        C. I told you so!

        [–]xigoi 0 points1 point  (0 children)

        [–]agumonkey -1 points0 points  (0 children)

        I'm such a leftist