5 ms·
Show HN: Codigo – The Programming Language Repository
Codigo is a site I've built for discovering, exploring and comparing programming languages, including language news, trends and code examples.
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 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!
- ranger_danger 1y agoWhy is the C++ example for 100 doors 10,000x over-complicated compared to the C version? Is this a sick joke?
- benatkin 1y agoIt gets the last one, maybe it would be better if it got the first one: https://rosettacode.org/wiki/100_doors#C https://rosettacode.org/wiki/100_doors#C
- philocalyst 1y agoWondering if you would be interested in plugging into my https://github.com/philocalyst/lang-config 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
- pella 1y agoI’m interested in a list of new open-source programming languages released in the last 5, 3, and 1 years - ideally organized by category. Does such a list exist anywhere? EDIT: minimal wikidata version: https://w.wiki/E5e3 https://w.wiki/E5e3
- genewitch 1y agoHow? Just a bunch of volunteers? Make a wiki-like and let people edit it, show HN, and maybe eventually PL makers will add their PL to your database. 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.
- pella 1y agoI have created a minimal wikidata query https://w.wiki/E5e3 https://w.wiki/E5e3 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
- pella 1y agoI’m glad to see there’s a substantial metadata system powering the portal (and even minimal Wikidata integration + CC0-1.0 license! ) This is the Julia: https://github.com/codigo-langs/codigo/blob/master/languages/Julia.yaml 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 https://github.com/coderonion/awesome-julia-list
- adamjhf 1y agoYes, some initial data was scraped from Wikidata, but there is no synchronisation. For reference, I've added the Wikidata queries here: https://github.com/codigo-langs/codigo/tree/master/scripts/wikidata https://github.com/codigo-langs/codigo/tree/master/scripts/w... Good idea on including awesome lists! I'll take a look at that.
- worldsayshi 1y agoWould be interesting to see which languages a language has influenced in addition to which influenced it.
- blami 1y agoGreat job! Would be lovely to have filters on when language was created. Also one minor nit, I am not super mouse oriented person and wanted to bookmark the site but ctrl+d is mapped to scroll down.
- adamjhf 1y agoThanks for raising that. I've changed that key mapping now to a less common one to avoid conflicts.
- tgv 1y agoYou might want to add some relation between the versions of Ada. Each is basically a superset of the previous version. You could treat them as one, and specify per feature from which version onward it is part of the language, e.g. https://www.adaic.org/advantages/ada-comp-chart https://www.adaic.org/advantages/ada-comp-chart
- adamjhf 1y agoYes, at the moment it’s just a flat listing of languages. Will think about how to solve for dialects etc. without making it overly complex.
- cranberryturkey 1y agohow do I add https://smashlang.com https://smashlang.com?
- adamjhf 1y agoNew languages can be added by adding a relevant YAML file to https://github.com/codigo-langs/codigo/tree/master/languages https://github.com/codigo-langs/codigo/tree/master/languages, following the defined schema.
- huhtenberg 1y agoA more comprehensive list of 900+ languages - https://github.com/ChessMax/awesome-programming-languages https://github.com/ChessMax/awesome-programming-languages
- LandR 1y agoIf you change the theme, sometimes the theme dropdown shows white text on a white background. 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
- adamjhf 1y agoThanks for flagging. This is hopefully fixed now.
- WillAdams 1y agoHow are you defining "programming language"? TeX is listed: https://codigolangs.com/language/TeX https://codigolangs.com/language/TeX but OpenSCAD is not.
- anentropic 1y agoWhat is it?
- elviejo 1y agoYou can also look at pldb.com It has a huge list of programming languages and its attributes.