I could almost stretch my mind that far. You could kind of think of a song as a program, and the musical notation as the programming language, and the performance of the song as executing the program.
Super cool! This list is very comprehensive and includes languages that aren’t on many other lists. I’m wondering how the author collected all of these. I’ve been building a list of programming languages posted to HN in my favorites list — it’s fun because everyone has their own idea or angle on what a programming language should look like and what features it should have.
https://github.com/serprex/oilrshttps://esolangs.org/wiki/OIL someone shared an esolang they'd been implementing in Python, I decided to implement it in Rust. Making a second implementation made for good discussion, such as "how strict is integer format?" where it was decided 007 shouldn't be accepted, that empty cell vs empty-string cell being semantically different be kept, & the stdlib was moved to its own repo
Even among "pl", even a quick sampling shows that these aren't necessarily correctly categorized. For instance, "advice-taker" according to the site is "an actively used programming language created in 1958". But Wikipedia, which I would take to be more credible in this context, says it "was a hypothetical computer program" and explains the philosophical point put forth by the idea. So it was not a language, not even a real program, and certainly not actively used.
I like how comprehensive this is. Some of these are super obscure, including some systems that seem to only be referenced in a scholastic paper.
I don't like how disorganized/mis-characterized this is. As others have pointed out, there is little mention of open source (have to go into the language page for that), and these aren't all programming languages. Seems like it started as such and then scope crept to include...formal languages? What is CSV even?
Don't get me wrong, I think it's awesome that there is some abstraction in which Arezzo notation, matplotlib, CSV, and a bunch of esolangs are in the same category. But saying it could benefit from focus is an understatement.
The website, for being as sparse and web 1.0 as it is, takes a long time to first interactive scroll on mobile.
I think both problems could be solved, or mitigated, by breaking it into separate lists. Programming languages, libraries, markup languages, encoding formats, and "misc".
Really give you ther idea of what is needed in build a programming language. Soemthing won't quite obvious. until you I down and write code. Example the ability to rewind, go back to a few earlier token.
It's usually the source code for the compiler or interpreter we're referring to when we say a language is open source or not. As you say, though, it is a misnomer of sorts. Many languages have both open and closed source compilers.
Law: Only an idiot thinks anybody else will use their new language.
Corollary: All languages are created by idiots.
We have been very lucky that a few languages created by such idiots have turned out to be usable. I doubt the ones that happened not to fizzle would have been the best a priori choices, but by the Law we are lucky that any are usable at all.
Wow, alerted by a few pull requests and then pleasantly surprised to see this here.
As tyingq pointed out, this is not a list of "open source" languages, though I don't think it was too off for the OP to add that since indeed most of them are. It's also a bit broader than "programming languages". The list is termed "computer languages". That is the main category and ~75% of the langs, but formats and other things are counted as well (see table below). Even musical notations make an appearance, as I find those relevant to people interested in designing computer languages for music, or visual languages in general. While the focus is on computer languages, I think it's helpful to have a light touch of some of the earlier developments in language in general. So I didn't draw explicit lines, rather the strategy is to keep focus on programming languages with a peripheral view of the bigger picture.
As to accuracy, in general, there are ~420,000 cells in my "spreadsheet". My initial target accuracy was ~98% or so. Gathering the cells was a mixture of manual curation, crawlers, simple NLP models, and contributions from the community.
This project sadly fell by the wayside. I need to decide whether to 1) abandon it and instead just contribute facts as I find them to the relevant pages on Wikipedia or 2) determine if there's a good reason to build a fact site like this outside Wikipedia and if so get it into gear.
Sorry about any inaccuracies and thank you for the feedback (and especially the pull requests!).
24 comments
[ 3.0 ms ] story [ 53.0 ms ] threade.g. it is very unlikely that all the Basic variants listed here are open source.
There are definitely proprietary languages on that list.
So much so that some entries that initially appeared weird to me are:
- morse code
- arezzo notation (a musical notation system)
- Balanced ternary
Then you look better... and you realize it's about languages in general, not about open source or programming at all.
They need to pick a theme at least, to make this useful.
Almost. It's sure not Turing complete, though...
Anyways, if you want lots of silly languages https://esolangs.org/wiki/Language_list
I'll list some languages I've implemented which aren't on this list:
https://github.com/serprex/Rue I implemented Rue based off of https://esolangs.org/wiki/Thue but with the idea to extend it with regex & modules
https://github.com/serprex/oilrs https://esolangs.org/wiki/OIL someone shared an esolang they'd been implementing in Python, I decided to implement it in Rust. Making a second implementation made for good discussion, such as "how strict is integer format?" where it was decided 007 shouldn't be accepted, that empty cell vs empty-string cell being semantically different be kept, & the stdlib was moved to its own repo
https://github.com/serprex/NULL I decided to port https://esolangs.org/wiki/NULL to Rust. If there were more programs in NULL I'd consider digging for a faster bignum implementation
Bonus: https://esolangs.org/wiki/Three_Star_Programmer is an interesting one-instruction machine. One instruction is a neat space, a somewhat different dimension of minimalism from brainfuck, see also https://esolangs.org/wiki/Jot
It's a list of...things.
I don't like how disorganized/mis-characterized this is. As others have pointed out, there is little mention of open source (have to go into the language page for that), and these aren't all programming languages. Seems like it started as such and then scope crept to include...formal languages? What is CSV even?
Don't get me wrong, I think it's awesome that there is some abstraction in which Arezzo notation, matplotlib, CSV, and a bunch of esolangs are in the same category. But saying it could benefit from focus is an understatement.
The website, for being as sparse and web 1.0 as it is, takes a long time to first interactive scroll on mobile.
I think both problems could be solved, or mitigated, by breaking it into separate lists. Programming languages, libraries, markup languages, encoding formats, and "misc".
Just because someone talks a lot doesn't mean they know a lot, just like a long list isn't necessarily comprehensive just because it's long
I am just remarking that it has a lot of entries that you would not necessarily see elsewhere.
Really give you ther idea of what is needed in build a programming language. Soemthing won't quite obvious. until you I down and write code. Example the ability to rewind, go back to a few earlier token.
Corollary: All languages are created by idiots.
We have been very lucky that a few languages created by such idiots have turned out to be usable. I doubt the ones that happened not to fizzle would have been the best a priori choices, but by the Law we are lucky that any are usable at all.
And it misses 2 of 3 of mine. Which are not eso nor toy languages.
As tyingq pointed out, this is not a list of "open source" languages, though I don't think it was too off for the OP to add that since indeed most of them are. It's also a bit broader than "programming languages". The list is termed "computer languages". That is the main category and ~75% of the langs, but formats and other things are counted as well (see table below). Even musical notations make an appearance, as I find those relevant to people interested in designing computer languages for music, or visual languages in general. While the focus is on computer languages, I think it's helpful to have a light touch of some of the earlier developments in language in general. So I didn't draw explicit lines, rather the strategy is to keep focus on programming languages with a peripheral view of the bigger picture.
As to accuracy, in general, there are ~420,000 cells in my "spreadsheet". My initial target accuracy was ~98% or so. Gathering the cells was a mixture of manual curation, crawlers, simple NLP models, and contributions from the community.This project sadly fell by the wayside. I need to decide whether to 1) abandon it and instead just contribute facts as I find them to the relevant pages on Wikipedia or 2) determine if there's a good reason to build a fact site like this outside Wikipedia and if so get it into gear.
Sorry about any inaccuracies and thank you for the feedback (and especially the pull requests!).