A Network of Computer Language Influences

Computer languages rarely come into existence spontaneously. Even the first computer languages were built on a foundation of mathematics and logic. Today there are about 450 languages and more are still being created. Each language has probably been influenced by previous languages. And all languages have the potential to influence others.

A first step toward understanding the network of computer language influences is to visually explore them. Contrast a text explanation that the computer language Processing was influenced by C, Java, Logo, and PostScript with a picture.

A data graphic of the Processing computer language layout.

This data graphic (a formal name for a picture of data) displays the same languages. It adds relationships (the lines) making this a directed graph that shows you the languages Processing was influenced by. The arrowheads point to Processing showing the direction of the influence. The relationships are also blue, helping to differentiate them from any languages Processing has influenced, in this case none. Any such relationships will be red with the arrowhead pointing to the influenced language.

Now take a look at GW-BASIC, a computer language created in 1983. It has six relationships, three that influenced it and three other languages it has influenced. The data graphic on the left shows this with red and blue directed lines.

Data graphics of the GW-BASIC computer language layout. The left without additional influencers, the right with them.

The data graphic on the right, however, has three extra blue lines. A computer language can influence more than one language and that is shown here. This is called a sphere of influence and provides additional information regarding the influence of a language. Of course, there could be more languages related to an influencer to be found elsewhere in the network of computer languages. Afterall, you are only viewing a subgraph of the entire network.

If you want to better explore these computer language influences, a tool has been created just for you. Much like venturing off into an unknown area, you may start with little or no knowledge. Perhaps you've heard rumors of a dangerous Python near a Chapel, hidden Jade and Krypton, or an Oak with a Squirrel! Those are all names of computer languages are fun places to start your journey. But even if you have never heard of these or other computer languages, you can still use this tool.

Your journey starts with a randomly selected computer language, displayed as a network subgraph. From here, you have several exploration options:

Let's try this out. The tool is at the bottom of this web page if you want to do this yourself. We'll start with an early computer language Plankalkul, created in 1948. Given the early date, it is not surprising it has no influencers. Press the Influences are OFF button. button to change state to Influences are ON button. so you can see the extra relationships. Clear the text box by pressing the DEL key, type the name (spelling matters but case does not) and press the RETURN or ENTER key. You should see the subgraph below on the left. Plankalkul influenced ALGOL 58 so double left click on the ALGOL 58 node. You should see a new subgraph second from the left. Continue your journey with a double left click on JOSS, followed by a double left click on CAL. Your forward journey ends here as CAL has not influenced another language. But you could explore the influencers of CAL with a double left click on Haskell.

A journey through several languages.

Along your journey, did you notice the subgraphs were not as well laid out as well the ones above? Forced-directed layouts can be a bit messy. The Redraw layout button. button might help. Otherwise, this can be cleaned up by dragging the nodes to a better location. Move the mouse pointer over a node then left click, hold and move the mouse. The node will follow the pointer. Release the mouse button when the node is in a better spot.

The data behind this exploration tool was derived from Wikipedia's pages for each computer language. Most pages had sections showing "Influenced By" and "Influenced." This was used to build a From => To list that the tool displays.

The tool was written in the Processing language, then translated into p5.js for integration with HTML. p5.js is a reinterpretation of the Processing language.


User Interface

Buttons:

Node Layout:

Enter a Computer Language:


FAQ

Ctrl-F does not Work
All keyboard presses are intercepted and discarded if they are not ASCII text, DEL, BACKSPACE, or ENTER/RETURN. This is obviously annoying and high on the list of changes.

Revisions

Date Changes to network tool and web page
13 March 2023: Added missing languages.
Added Carbon and ZOPL.
7 January 2022: Added missing languages and updated one.
Added Ballerina, Bosque, Microsoft Excel Functions, Microsoft Excel Macros, Microsoft Power Fx, Q#, Reason, and Wolfram Mathematica.
Updated Zig.
24 July 2020: Added missing languages.
Added CLIPS, Jess, Language H, Raku, and Zig.
29 May 2019: Improved key press reaction.
Patched code so that CONTROL key combinations are recognized. Searching the web page using CONTROL-F is possible again. Solution was to use function keyTyped for normal letters as it ignores 'action' keys such as CONTROL. The function keyPressed is used to react to a small set of action keys like BACKSPACE, DEL, ENTER, and RETURN. It was interesting that both functions could operate at the same time.
21 May 2019: Initial linked node position.
Rather than assign nodes linked to the selected language random positions, spread them evenly along a circle surrounding the selected language. This improves the layout for small to medium sized networks.
19 May 2019: Set the slected node to start at the center of display.
Ensures theoretical space for each node is no smaller than nodesize + 5 [c2 = max(k, nodeSize + 5)], where k is the square root of the diplay area divided by the number of subgraph nodes.

Comments, suggestions, or questions? Send an email: Dale K. Brearcliffe