3 ms·
Ask HN: Visualizations of an Overview of Programming Languages
Having consulted search engines to death, I turn to the HN Community for some good visualizations that give an overview of the programming languages out there and include a lot more than just the mainstream languages. I'm struggling to find good results, because most searches are drowned in tutorials of "How to visualize data in $PL" or visualizations that cover a very small set of languages [0]. I found a visualization that shows the influence of programming languages on one another [1]. Something that includes such an insane amount of PLs, but for the visualizations described below, would be perfect.
I'm specifically looking for two kinds of visualizations:
1. A visualization that puts PLs into application domains: Something like a Venn diagram of the domains covered in [2] would be great.
2. A visualization that shows a timeline of programming languages and how they branch off from another: Something like [0], but with more PLs. Perhaps with the data of [3], but visualized. I know of a visualization that does this for Linux distros [4].
[0] https://www.mindmeister.com/104015524/programming-languages
[1] https://news.ycombinator.com/item?id=4581948
[2] https://en.wikipedia.org/wiki/Programming_domain
[3] https://en.wikipedia.org/wiki/Timeline_of_programming_languages
[4] http://futurist.se/gldt/
Any other visualizations about programming languages that you deem beautiful would be greatly appreciated as well. Some visualizations I found along the way:
https://news.ycombinator.com/item?id=17470161
https://news.ycombinator.com/item?id=8544882
https://news.ycombinator.com/item?id=9914924
https://github.com/stereobooster/programming-languages-genealogical-tree
(See also the "Similar projects" section. I shared this one with HN earlier today, since it was noticeably absent.)
https://hopl.info/taxandgenie.html (This one is a bit dated, unfortunately. I also shared it on HN.)
- brudgers 6y agoThat type of visualization is more literary than scientific. All Turing complete languages are formally equivalent. Java and J. Haskell and Brainfuck. Common Lisp and C. The differences are arbitrary. Clojure was designed based on experience with Common Lisp, C++, and Java. Under every programming language is the Vonn Neuman architecture. Programming languages are abstractions on top. To the machine, it's all the same: only machine code. A taxonomy of programming languages will contain more baseless assumptions in proportion to the number of languages it covers. SQL was cut from the whole cloth of mathematics. COBOL was the product of a committee. C followed B. C++ was something else. And then there's Perl 6. The reason there are not good diagrams is it's not a particularly useful exercise for describing facts. It's art, mythology, ideology, opinion...all fine things in their place. Often entertaining. But not sound scholarship. Good luck.
- lizmat 6y ago> And then there's Perl 6. Sadly, there is no Perl 6 anymore: it has been renamed to the Raku Programming Language (https://raku.org https://raku.org using the #rakulang tag on social media).
- brudgers 6y agoI agree because that’s what I meant.
- not_knuth 6y agoThank you for your reply :). Supposing most people think like that, it would indeed explain why there are so little of these types of visualizations out there. The effort, as you say, is probably not worth the objective value it would create (which is why I hoped someone else had already done the work). For me, a visualization of the breakdown of languages by application domain would have immense value, especially for broadening my perspective. As someone who never gets to toy with FPGAs in my day job for example, I would be oblivious to most of the ideas that flow into PLs for FPGAs. Why a visualization? I guess that is just taste. I find visualization a lot easier and faster to digest. And I bet there are quite a few PLs that I have no idea about that have answers to problems I have encountered before. And for the second type of visualization, I find those to be quite helpful in understanding and tracing back the roots of PLs. This often makes me comprehend quite quickly why things are done certain ways in different PLs. Especially looking at the main, root influence of a bunch of PLs and understanding the zeitgeist it was created in, what problem it was solving, who created it etc. give me a much deeper understanding. So I don't think such visualization are useless, but I could probably not justify spending the amount of time it would take to create them either.
- brudgers 6y agoYour reference to FPGA’s illustrates the problem. Hardware Description Languages are not Programming Languages. Any picture that places them in a programming language taxonomy is wrong. Any picture that is not wrong in that way is incomplete. There is never the order that the pictures suggest because programming languages are formal and rigid. Natural language is defined by use. Natural language can be partially used and still work. There are pigins and creoles and dialects and slangs. But no parsers, lexers, and tokenizers.
- raiph 6y agoSearch of reddit/r/dataisbeautiful for "programming languages": https://camas.github.io/reddit-search/#{%22subreddit%22:%22dataisbeautiful%22,%22searchFor%22:1,%22resultSize%22:250,%22query%22:%22programming%20languages%22} https://camas.github.io/reddit-search/#{%22subreddit%22:%22d...