Think of a simple instruction: draw a line from (a,b) to (c,d).
How many ways can it be "encoded as an API"? we already have a gazillion forms of drawing: SVG, OpenGL, Postscript, Asymptote, PGF/Tikz, Canvas, and so on. Why?
Forget about existing line-drawing APIs. Which of these would you choose?
- line(a,b,c,d)
- Line (a,b) to (c,d)
- draw-line (a,b) (c,d)
- drawline
- make-a-line
- line-from-to
- ...
- ...
Not to mention placement of parentheses (C vs s-expression), curly braces or angle bracket. The list goes on.
I started reading Bertrand Russell's 'On Denoting' but I'm not really sure it'll help me out (although I haven't finished reading it yet).
At another level: once you've converted your vector graphics primitive to "pixel maps", that itself is no less of a language. So at a more fundamental level, it's really information represenation, not language.
I'm not sure where the problem is, language vs computable-form vs information-representation.
Not to mention metalinguistics. Because API is not just one layer on top of your program. You build an API/language layer as a scaffolding, to use it to build a higher level API/language layer. And apparently its turtles all the way up and all the way down.
It's all very confusing