I couldn't find any definitive resource for finding new languages and comparing them, so decided to make one.
It combines dynamic data from sources like PyPL Index, TIOBE Index and official feeds as well as static data about each language defined in a structured format. The language data is open-contribution and can be updated by anyone on the GitHub repository: https://github.com/codigo-langs/codigo.
I styled it specifically for coders - using a monospaced font and terminal-esque styling, along with many common IDE themes to choose from.
Codigo is built using Rust, Axum, HTMX and Alpine.js.
Keen to hear any feedback!
This is the Julia: https://github.com/codigo-langs/codigo/blob/master/languages...
I assume the initial database was built on Wikidata plus a lot of data cleaning. Is the code for the Wikidata synchronization available anywhere? I can’t seem to find it in the repo.
One thing you could add is a free-form wiki-style description field, where you could even embed an "awesome" list for each language, for example: https://github.com/coderonion/awesome-julia-list
Good idea on including awesome lists! I'll take a look at that.
EDIT: minimal wikidata version: https://w.wiki/E5e3
Even if you scrape Wikipedia, or stack overflow or whatever, you're going to miss the newest and also the esoteric and possibly even wider use stuff. Basically you can't do it alone.
My life is a series of "why doesn't this exist? Oh, what a gigantic pain in the ass. That's why it doesn't exist. God bless anyone who makes this, because it ain't gunna be me" situations. I hope someone has done what you are looking for.
SELECT ?language ?languageLabel ?inceptionDate
(GROUP_CONCAT(DISTINCT ?website; SEPARATOR=", ") AS ?websites)
(GROUP_CONCAT(DISTINCT ?developerLabel; SEPARATOR=", ") AS ?developers)
(GROUP_CONCAT(DISTINCT ?paradigmLabel; SEPARATOR=", ") AS ?paradigms)
WHERE {
# Find items that are either programming languages or types of programming languages
{
?language wdt:P31 wd:Q9143 . # programming language
} UNION {
?language wdt:P31 wd:Q116481801 . # type of programming language
}
# Get the inception date
?language wdt:P571 ?inceptionDate .
# Filter for languages created within the last 10 years
FILTER(?inceptionDate >= "2009-05-12"^^xsd:dateTime)
# Optional properties to get more information
OPTIONAL { ?language wdt:P856 ?website . } # official website
OPTIONAL {
?language wdt:P178 ?developer .
?developer rdfs:label ?developerLabel .
FILTER(lang(?developerLabel) = "en")
} # developer
OPTIONAL {
?language wdt:P3966 ?paradigm .
?paradigm rdfs:label ?paradigmLabel .
FILTER(lang(?paradigmLabel) = "en")
} # programming paradigm
?language rdfs:label ?languageLabel .
FILTER(lang(?languageLabel) = "en")
}
GROUP BY ?language ?languageLabel ?inceptionDate
ORDER BY DESC(?inceptionDate) # Sort by date, newest first
LIMIT 100
https://github.com/philocalyst/lang-config
Which contains comment tokens, block and line, common language servers, special pairs, recognized shebangs, root scopes, etc.
It's mostly for use in one of my other projects, although you can see some of its higher aspirations one day in the README. Would love to collaborate with you and make it useful for a real use-case outside my own! If any of the information contained there could be useful! Reach out through an issue or through an email (linked in my github profile) if you're keen
TeX is listed: https://codigolangs.com/language/TeX
but OpenSCAD is not.
e.g. on chrome / Ubuntu, change theme to material or nord-dark, then dropdown is all white (shows if you hover the items)
Same if you go to a programming language page, the drop down for code examples is white on white
Is this a sick joke?