Right, just boring old netlists have been around for, heh, probably half a century I would suppose. There are as many formats as there are PCB tools, but aside from formatting, they're usually something along the lines of:
<part name> <node 1> [<node 2> [<node 3> [...]]] <model> [<parameters...>]
For SPICE, the first letter of the part name identifies the type of part, but a PCB entry netlist probably doesn't need that.
PCB netlists are most likely flattened? SPICE netlists for example can be hierarchical.
SKiDL looks like basically this kind of netlist, if I understand correctly. That would be sort of the hardware equivalent of assembly code, I would say? More specifically, a macro assembler, so you can set directives and instantiate subcircuits.
If that's good enough "programming", there you go; but if you're looking for something higher level, equivalent to say, C or VHDL, that's where you'll have a harder time.
Cheers,
Tim