Source

Chrysoberyl / data / types.yaml

# encoding: UTF-8
type:
  type: type

Metanode:
  type: type

Concept:
  type: type
Article:
  type: type
News Item:
  type: type
Computational Class:
  type: type
Genre:
  type: type
  description: |
    This category is a little weird,
    because there are genres for programming languages, games, music, and books,
    all mixed together here.
Individual:
  type: type
Organization:
  type: type
Competition:
  type: type
Programming Paradigm:
  type: type
Language Construct:
  type: type
Mathematical Object:
  type: type
Book:
  type: type
Website:
  type: type
Conlang:
  type: type
Musical Instrument:
  type: type
Discipline:
  type: type
Ranking:
  type: type
Collection:
  type: type
Programming Language Family:
  type: type

# implementations:
Implementation:
  type: type
  description: |
    These are implementations of *all* kinds of things:
    [[Programming Language|programming languages]],
    [[Platform|platforms]],
    [[Library|libraries]],
    [[Tool|tools]],
    [[Game|games]],
    [[Electronics Project|electronics projects]],
    [[Musical Composition|musical compositions]], and so forth.
    For a more fine-grained breakdown, see those individual categories.
Implementation Type:
  type: type
Development Stage:
  type: type
License:
  type: type

# distributions:
Distribution:
  type: type

# implementables:
Game:
  type: type
  description: |
    For a list of just those games produced by [[Cat's Eye Technologies]], see
    [[Games by Chris Pressey]].
Library:
  type: type
  description: |
    For a list of just those libraries produced by [[Cat's Eye Technologies]], see
    [[Tools by Chris Pressey]].
Tool:
  type: type
  description: |
    For a list of just those tools produced by [[Cat's Eye Technologies]], see
    [[Tools by Chris Pressey]].
Platform:
  type: type
  description: |
    For a list of just those platforms produced by [[Cat's Eye Technologies]], see
    [[Tools by Chris Pressey]].
Programming Language:
  type: type
  description: |
    For a list of just those languages produced by [[Cat's Eye Technologies]], see
    [[Chris Pressey's Lingography]].
  commentary: |
    There are two things about programming languages that every programmer
    should know.
    
    One is that a programming language is an abstract entity. Much like
    Beethoven's 7th Symphony, it just doesn't exist in the same sense a tree
    or a street exists. Sure, there are *recordings* of *performances* of
    Beethoven's 7th, and there are *transcriptions* of Beethoven's 7th, but
    these are only attempts to capture the symphony, they aren't the
    symphony itself.
    
    Simlarly, take a programming language, like [[Java]]. There are
    implementations of Java — there's Sun's `javac`, for instance, but
    there are also IBM's `jikes` and GNU's `gcj`. And there are
    specifications of Java — the official spec is from Sun (much like the
    official version of Beethoven's 7th issued straight from Ludwig von's
    pen,) but there are countless books on learning Java that also explain
    the features and rules of Java, in their own words.
    
    In short, languages aren't the tools that implement them or the
    documents that describe them.
    
    Ponder this fact, for fully appreciating it will mean you'll be able to
    save yourself from appearing ignorant by referring to how this or that
    language is "not fast enough" or "widely available."
    
    The other thing that every programmer should know about programming
    languages is that it's very important to choose the right programming
    language for every software project. That's why you'll always choose
    [[C++]] no matter *what* the software project is.
Musical Composition:
  type: type
  description: |
    For a list of just those compositions by [[What is this I don't even]], see
    [[Music by What is this I don't even]].
Music Format:
  type: type
Electronics Project:
  type: type
Demo:
  type: type
Database:
  type: type