I find myself repeatedly frustrated by ambiguous wording in the specification. I know the specification practically by heart,
but even that doesn't help at times when the terms are becoming just too chaotic.
Given that I don't expect anyone to do my bidding and spend the next two weaks correcting the plenthora of inconsistencies,
but would rather have this considered a plea for future revisions, I will save myself the effort and not publish an endless list
Also, I know that certain terminology has become a de-facto standard despite its inconsitency, however, that shouldn't stop
anyone from bringing it back to a consistent level.
On top of that, I'm aware that the specification is written by people who are close to, if not directly involved in
implementation. This certainly forges a specific perspective on the way things are conveyed to the "end-user" of the GL,
nonetheless I'd also ask those who've assumed that perspective to recall that the perspective from which an API should
be written is that of the user of the interface. And by itsself an API has in no sort of way, whatsoever, to reflect the
That said, even if the same entity can equally adequately be described by multiple terms depending on the vantage point, it
is best to choose one perspective to be held regardless of the context, because we bear the user in mind, for whom the
optimal specification (in the very meaning of the word) is minimal, unifying as much as possible into as few as possible
different concepts. No matter whether the technical realization is far from unified.
As two trivial examples of how wording can affect the understandability of the spec consider the redundant use of something
being "attached" to a binding point or something being "bound".
Similarly, we have ARRAY_BUFFERs designated to be "Buffers for Vertex Attributes" called "Vertex Buffer Objects". Furthermore,
we have "Vertex Array Objects" and the spec ocasionally (6.8, for example) refers to "Vertex Array". Well, damn whomever
doesn't eventually get confused by that.
These are just two examples of something which has become an unfortunate characteristic of the specification throughout.
The issue is less to absolutely not apparent to the person who wrote the things him- or herself, knowing what they meant by
it, but in light of its original purpose, that is, specifying the concepts cleary and uniquely to strangers, the specifiation
quickly becomes nebulous and unnecessary complex (worst of all: partly ill-defined, if a term such as "Vertex Array" is used
without clear intend).
Please take greater care of the use of terms and definitions. On behalf of all those among us who work primarily with the spec,
I thank you in advance.