5 ms·
That's my experience too. Unfortunately I don't think it's possible for complex standards to be well specified in human language instead of in code so a referen
by BenoitEssiambre 5y ago
That's my experience too. Unfortunately I don't think it's possible for complex standards to be well specified in human language instead of in code so a reference implementation is what will always win in the end.
At least chromium is open source. The best we can hope is maybe that organizations adopting chromium other than Google can wield more influence over it.
As I point out here https://news.ycombinator.com/item?id=27222818 https://news.ycombinator.com/item?id=27222818 human language is not precise enough to write good specifications. Natural language words are polysemic and contextual. See the meaning of "break" for example: https://www.merriam-webster.com/dictionary/break https://www.merriam-webster.com/dictionary/break
Kolmogrov showed that fully specified information distills down to computer programs: https://en.wikipedia.org/wiki/Kolmogorov_complexity https://en.wikipedia.org/wiki/Kolmogorov_complexity, https://en.wikipedia.org/wiki/Minimum_description_length https://en.wikipedia.org/wiki/Minimum_description_length
The ideal language for a specification might be a mix of natural language and code with a test suit, something like Literate Programming (https://en.wikipedia.org/wiki/Literate_programming https://en.wikipedia.org/wiki/Literate_programming) or its descendants along with modern pull request based discussions that are tied to version controlled code.
I wish Mozilla or a similar organization adopted the chromium core. We really need a well funded non-profit managed release of the reference browser.
- dmitriid 5y ago> complex standards to be well specified in human language instead of in code so a reference implementation is what will always win in the end. > At least chromium is open source. That source code is 12-15 million lines of code. They implement literally thousands of specs. Chrome adds 40-70 new web APIs [1] with each release which happen roughly once every 40 days and contain god knows how many code changes. Good luck deducing "precise specs" from that. > I wish Mozilla or a similar organization adopted the chromium core That would mean cementing Google's monopoly of the web. [1] https://web-confluence.appspot.com/#!/confluence https://web-confluence.appspot.com/#!/confluence
- BenoitEssiambre 5y ago>That source code is 12-15 million lines of code. Exactly, it's impossible to describe that in human language which doesn't have precise enough semantics. That's why the spec has to be in code, in the form of a reference implementation and/or test suit. The goal should be to move chromium away from being controlled too much by Google.
- dmitriid 5y ago> Exactly, it's impossible to describe that in human language which doesn't have precise enough semantics. On the contrary, this implements specs that are defined in a human language. For example, the full semantics of rendering HTML were standardised with HTML5, and now all browsers render HTML the same way. The problem isn't the human language. The problem is the sheer number of these specs. Hundreds, if not thousands. However, good luck understanding these specs by reading code or unit tests (and yes, there's a multitude of tests [1]). How do you know what a piece of code encodes? Or a test tests? You really propose to reverse engineer behaviour from code? Example: here's a test: https://github.com/web-platform-tests/wpt/blob/master/html/semantics/forms/the-datalist-element/datalistoptions.html https://github.com/web-platform-tests/wpt/blob/master/html/s... What exactly does it test? Why? Is this a correct test for this behaviour? Care to pinpoint the exact precise location of this spec in Google Chrome's code? [2] It's only 12 or so million lines of code, should be easy to find. > The goal should be to move chromium away from being controlled too much by Google. By doing what exactly? [1] https://web-platform-tests.org https://web-platform-tests.org [2] https://github.com/chromium/chromium https://github.com/chromium/chromium
- BenoitEssiambre 5y ago>now all browsers render HTML the same way. Is this sarcasm? Writing web apps that work the same across browsers is still the most painful part of web development. The underspecified natural language specs lead to subtly different behaviors in different browsers. Full specs of a complex systems are very complex.