PLDB - A Programming Language Database

December 12, 2024 ยท View on GitHub

Build Status

PLDB is a comprehensive public domain database containing over 135,000 facts about more than 5,000 programming languages. The project includes both the complete dataset and the website code for pldb.io.

๐ŸŒŸ Key Features

  • Rich Dataset: Extensive information about programming languages, from high-level formats to binary specifications
  • Multiple Export Formats: Access the complete dataset in CSV, TSV, or JSON format
  • Public Domain: All data and code is freely available for any use
  • Regular Updates: Actively maintained with version control and release notes
  • Web Interface: Browse the data through an intuitive web interface at pldb.io

๐Ÿ“Š Data Downloads

Access the complete dataset in your preferred format:

Full documentation for the data formats is available at pldb.io/csv.html

๐Ÿš€ Local Development

Get started with local development:

# Clone the repository
git clone https://github.com/breck7/pldb
cd pldb

# First-time setup
npm i -g cloc
npm install .

# (Optional) Run tests
npm run test

# Build the site
npm run build

# Before committing changes
npm run format

๐Ÿ“ Repository Structure

The most important components of the repository:

  • concepts/: Contains the ScrollSet (individual files for each concept)
  • code/measures.parsers: Contains the Parsers (schema) for the ScrollSet
  • View detailed language statistics at pldb.io/pages/about.html

๐Ÿ† Rankings

PLDB includes a sophisticated ranking system for programming languages based on five key metrics:

  • Number of estimated users
  • Foundation score (languages built using this language)
  • Estimated job opportunities
  • Language influence
  • Available measurements

Learn more about the ranking algorithm at pldb.io/pages/the-rankings-algorithm.html

๐Ÿ“œ Version History

Latest major releases:

  • 9.0.0 (May 2024): Migrated to Scroll 84
  • 8.0.0 (March 2023): Upgraded to TrueBase 9
  • See Release Notes for complete history

๐Ÿค Contributing

Contributions are welcome! PLDB is designed for two main audiences:

  1. Programming Language Creators: Use our organized data to make informed design decisions
  2. Programming Language Users: Get data-driven insights about the programming language ecosystem

๐Ÿ“š Resources

๐Ÿ“– Citation

This project is dedicated to the public domain. When using PLDB, we appreciate attribution but it's not required. All sources are listed at pldb.io/pages/acknowledgements.html.

๐ŸŒ Mirrors

The primary site is hosted at pldb.io via ScrollHub. For offline access or redundancy, you can clone the repository and build locally:

git clone https://github.com/breck7/pldb.git
cd pldb
git pull  # To keep updated