Show HN: Codigo – The Programming Language Repository

(codigolangs.com)

47 points | by adamjhf 2 days ago ago

14 comments

  • WillAdams 10 minutes ago ago

    How are you defining "programming language"?

    TeX is listed: https://codigolangs.com/language/TeX

    but OpenSCAD is not.

  • pella 5 hours ago ago

    I’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...

    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

  • huhtenberg 2 hours ago ago

    A more comprehensive list of 900+ languages -

    https://github.com/ChessMax/awesome-programming-languages

  • tgv 4 hours ago ago

    You 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

  • LandR 2 hours ago ago

    If 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

  • pella 6 hours ago ago

    I’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

    • genewitch 5 hours ago ago

      How? 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 5 hours ago ago

        I have created a minimal wikidata query 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
  • philocalyst 8 hours ago ago

    Wondering if you would be interested in plugging into my

    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

  • blami 5 hours ago ago

    Great 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.

  • worldsayshi 5 hours ago ago

    Would be interesting to see which languages a language has influenced in addition to which influenced it.

  • cranberryturkey 3 hours ago ago

    how do I add https://smashlang.com?

  • ranger_danger 8 hours ago ago

    Why is the C++ example for 100 doors 10,000x over-complicated compared to the C version?

    Is this a sick joke?