3 ms·
Because the XHTML spec would have made a lot of things easier. I can write an XHTML1.1 parser and renderer in about one month. Writing an HTML5 parser takes t
by kuschku 9y ago
Because the XHTML spec would have made a lot of things easier.
I can write an XHTML1.1 parser and renderer in about one month.
Writing an HTML5 parser takes thousands of developers 5 years.
- Latty 9y agoI can make a self-driving train far more easily than I can make a self-driving car. You are comparing two things that aren't equivalent. The living standard provides a lot more value than the old specs, and that's why they won.
- kuschku 9y agoThe living standards winning is something we should see as tragedy, not as something good. We’ve made parsing the web something that only massive corporations can do. We’ve made building a browser so complicated that even Opera gave up after the complexity of HTML5, and we’re now left with only 4 major browser engines, of which 2 share a significant amount of code. Do you see an innovative ecosystem there? We’re left with a web that can’t be parsed, we’re left with a web where, to run Selenium tests, we have to run Chrome headless, because nothing else can even attempt to render websites anymore.
- chrisseaton 9y ago> Do you see an innovative ecosystem there? Yes! Everyone says that the specification approach is what was severely limiting innovation, and when they took the living specification approach instead that's when web innovation took off again.
- kuschku 9y agoOh? How many tools do you know that can parse a current HTML5 react app without importing any existing browser? Every tool we have to use on the web relies on 4 existing tools that only major companies can build. I’ll pay you $100 if you manage to write, in 4 weeks, a browser, from scratch, that renders a real life React app accurately, including all content, without importing a single bit of code or libraries from existing browsers or web tools.
- chrisseaton 9y agoYou asked about innovation, not how easy it is for new people to enter the market. Innovation in browsers has definitely gone up and as a user I feel like I'm winning from this with better websites and more powerful web apps.
- kuschku 9y agoHow many new browsers do you see? Is that innovation in browsers? Browser competition and innovation is at its lowest ever. Chrome holds 2/3rds usage globally. I don’t want more powerful ways to display ads, I want to get more content, better connected, without any of the fluff around it.
- chrisseaton 9y ago> Browser competition and innovation is at its lowest ever. I don't care directly about competition, because that's just a means to an end, and the end I care about is innovation, and I don't agree that innovation is low - I think it's high. New HTML features are coming out in a fast continuous stream, unlike how it used to be.
- tptacek 9y agoWhat does it even mean to parse a React app? Crawlers can't resolve the halting problem, either.
- kuschku 9y ago> Crawlers can't resolve the halting problem, either. And yet, that’s where we’re at today. Blogspot posts require JS. So many other pieces of content are similarily built. And with phatomjs gone, we’re now running entire headless browsers just to test if websites are rendered correctly. It’s insanity.
- sangnoir 9y ago> Oh? How many tools do you know that can parse a current HTML5 react app without importing any existing browser? I don't recall XHTML deprecating JavaScript- pray tell, how would you render the XHTML version of a react app without a browser, or a JS engine as a bare minimum? (X)HTML is orthogonal to Js/react. I could develop a self-driving car for $50 000 (instead of millions) if human drivers and pedestrians started behaving in well-defined patterns, following strict rules and stopped doing stupid, unexpected things. I'd really love that, but it's not going to happen even though there already are "standards" in the law books.
- Latty 9y agoYes, and before that there were maybe 1.5 viable ways to render flash content. Then you need to take that `.exe` and try and pull out it's content. Game, app, whatever. We have a web that can be parsed, with difficulty, instead of a web without half of the content we want to parse. The web was being replaced - this is what saved it, like it or not.
- sanxiyn 9y ago> Writing an HTML5 parser takes thousands of developers 5 years. This is demonstrably untrue. Servo's HTML5 parser, html5ever, was largely written by a single developer within a year. (Yes, it's not a month, but it's also not 5 years.)
- kuschku 9y agoAnd wouldn’t it have been easier to write it without any of the leniency it has to expose? Wouldn’t it have been easier if all tags were either ending in /> or followed by a closing tag? Wouldn’t it have been easier if the syntax was formally defined as ABNF, and could be translated into code in a matter of days? I believe it would have been. And I believe that making the web easier machine readable, and making it easier for people to develop tools working with the web, would be a valuable goal.
- hsivonen 9y ago> Wouldn’t it have been easier if all tags were either ending in /> or followed by a closing tag? Not really. > Wouldn’t it have been easier if the syntax was formally defined as ABNF, and could be translated into code in a matter of days? No, working from an spec written as an algorithm is easier than working from ABNF plus some inconvenient prose constraints. (With the exception of template element support, I wrote the HTML parser used in Firefox and Validator.nu.)
- kuschku 9y ago> No, working from an spec written as an algorithm is easier than working from ABNF plus some inconvenient prose constraints. That sounds very unlikely. I’ve implemented my own parsers for countless specs – plaintext or binary, and the parsers that are written as imperative algorithms are insanely complicated to implement as functional implementations. I end up with horrifying code, while the specs written as ABNF are much easier to translate into pattern matching code. The specs written as algorithm only work fine for a single type of implementation IME, while the ABNF specs work equally well for all types.