Hacker News new | past | comments | ask | show | jobs | submit login

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.






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

It's a good start, and i can't think of missing items off-hand, and i didn't know you could do that. I've done queries like this on the wiki sql itself locally, but i didn't know there was a notebook interface to querying like that.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: