The phrase "human writable" is being used in goals discussions.
However, it's not clear that we all mean the same thing by this phrase.
I propose that it means
Human writable is a spectrum, not a binary.
There are programming languages that are writable entirely with a text editor using only ASCII, and yet are not practically human writable, except as a challenging intellectual exercise. Two examples: Brainfuck and SKI combinator calculus.
While no version of WGSL is likely to be a Turing tarpit like the above examples, the extreme illustrates that we must give some consideration to pragmatics, and not just the mechanical fact that something can be written with a text editor.
I think the property we want is something like "human writable enough to be practical", or "reasonably human writable". In addition, more human writability is better other things being equal, or if the cost of more human writability is low enough.
Thanks for the reminder of SKI combinators! I set a course assignment to process them.... in 1996.
The following is a relevant snippet from https://github.com/gpuweb/gpuweb/issues/569#issuecomment-607002670
- When discussing APIs that are well-behaved-by-default, I have formulated the argument as being "concerned about new programmers." This may have led to some miscommunication, which I regret and apologize for. We're concerned about programmers who are new to WebGPU, rather than people who have never programmed before in their lives.
My point is there is a path-dependency here, an open door to affinity bias and availability bias.
I think we have to do our best to balance valid consideration of path-dependency, familiarity and understandability, with avoiding risk of undue affinity bias. It鈥檚 unfortunate that this has to be something of a judgment call and not always 100% objective, but I think the CG has done pretty well so far.
This definition of "human writeable" is a very low bar. It excludes SPIR-V binary format, but it includes SPIR-V Assembly Language (https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+/spirv-0.99-rev32/syntax.md).
Since WebGPU is the replacement for WebGL on the web browser, and since the WebGL shader language is GLSL, I think that "human writeable" should include "easy to read and write for someone who already knows GLSL".
The point is that WGSL should be a high level language, at the same level as GLSL, rather than a low level language, at the same level as SPIR-V Assembly Language.
I don't think there's anything that we can hit consensus on in the abstract here (that we haven't already), so we should document what we've agreed on, and to move forward by discussing specifics.