Song Player

Below is a song player interface that shows up on the bottom of the page when this site is displayed on a screen.

Loading...
Now playing: Song Artwork
/

TABL

A simple, human-writable data serialization language.

standard-readme compliant

Table of Contents

Background

The urge to create a new data serialization language came from a personal dissatisfaction with:

  • JSON, for its clunky, finnicky, and limited syntax,
  • TOML, for its repetitivity and inflexibility,
  • YAML, for its complexity and confusing features.

Initially, my plan was to create an analog of JSON, with a similarly minimal spec, but with a Python-like syntax, where colons and whitespace are used not to nest blocks of code, but to nest data structures.

My eureka moment hit when I learned how Lua employs "tables" as its sole data structure, capable of emulating the functionality of associative arrays, lists, and sets. The fewer data structures you need to emulate, the more minimal your syntax can be - and with only one, the colon as a table marker was all I needed.

The name "TABL" doesn't stand for anything; it's an abbreviation of the word "table". I just thought it was the perfect-sounding name for this language.

Example

The syntax of TABL is somewhat self-explanatory, in that a glimpse of it can be enough to replicate it yourself. Here's an illustrative example; the specifics of how the language works are outlined here.

name = "Owen"
age = 23
shoe-size = 9.5
is-cool = true
parents: mother = "Rohan", father = "Stephen"
schools:
    elementary = "Inglis"
    middle = "Gorsebrook"
    high = "Citadel"
location: "Halifax", "Nova Scotia", "Canada"
interests: music, coding, teaching, politics
friends:
    : name = "Emile", location: "Oakland", "California", "United States"
    : name = "Christian", location: "Chicago", "Illinois", "United States"

Contributing

N/A

License

MIT © Owen Maitzen

Implementations