Skip to content

breck7/pldb

Repository files navigation

title PLDB Readme

import rootHeader.scroll

printTitle

# A Programming Language Database

wideColumns 1

#### View this readme as HTML
 https://pldb.io/readme.html

import code/ciBadges.scroll

PLDB is a public domain ScrollSet and website containing over 135,000 facts about over 4,000 programming languages.

This repo contains the entire ScrollSet, code, and website for https://pldb.io.

## To download the data
The entire ScrollSet is ready to analyze in popular formats. Full documentation is here: https://pldb.io/download.html
- As CSV: https://pldb.io/pldb.csv
- As TSV: https://pldb.io/pldb.tsv
- As JSON: https://pldb.io/pldb.json
- The JSON file is also available via npm:
javascriptCode
 // npm install pldb
 console.log(require("pldb").javascript.appeared)

## To add a new language
Create a new Scroll file in `concepts` with a unique URL friendly filename and send a pull request.

## To update a language
Edit the corresponding `concepts/*.scroll` file and send a pull request.

## To add a new measure
Update the file `code/measures.scroll` and add at least 1 measurement to a concept in `concepts` and send a pull request.

## To build the site locally
code
 git clone https://github.com/breck7/pldb
 cd pldb
 # Required to run this during first install only.
 npm i -g cloc
 # Required to run this on fresh checkout and when upgrading from an old checkout or periodically when there are new releases
 npm install .
 # (Optional) Run tests
 npm run test
 npm run build
 # After you make changes and before you commit make sure to run:
 npm run format

## To explore this repo
The most important folder is `concepts`, which contains the ScrollSet (a file for each concept). The file `code/measures.scroll` contains the Parsers (schema) for the ScrollSet.
You can see the `cloc` language stats on this repo at https://pldb.io/pages/about.html.

## To use as an npm package:
code
 npm install pldb
javascriptCode
 console.log(require("pldb").javascript.appeared)

import citation.scroll

All sources for PLDB can be found here: https://pldb.io/pages/acknowledgements.html

endColumns

import footer.scroll