It’s incomprehensible to visual designers, incomprehensible to programmers, and incomprehensible to document authors.
On the upside, it provides a massive moat of sunk cost and implicit implementation dependency around Chromium, so at least there’s that.
But sure, if you want, CSS is a conspiracy theory to ensure the dominance of Google.
It’s the same kind of growth pattern as government bureaucracies. Those are largely not conspiracies either, despite the occasional optics.
It’s ironic you’re saying that CSS is some form of vendor lock in. I have to imagine that if Google proposed a new layout engine for the web tomorrow they’d be roasted to kingdom come for their attempt at taking over the web.
I'm quite certain there's no human on earth that could reliably predict the outcome of most non-trivial real-life CSS layouts given just the code. And even though the situation has improved a lot, it's still common to have to use clearfixque hacks that definitely weren't envisioned by the commitees.
Yes, CSS is a lot more powerful than those kinds of systems. Perhaps comparable to constraint satisfaction layouts that tend to be quite surprising.
But even so, there are so many settings and their combined behavior in CSS that it's, for me at least, totally infeasible to try to code much CSS "up-front" without constantly checking the result of the changes. And I don't mind it that much, but I'm quite certain that a more "predictable" equally powerful layouting system is entirely possible.
It could be an interesting challenge to show people some layouts and ask them to produce them using CSS without being able to iterate the results.
The reasons why Apple still maintains their own browser engine have to do with corporate prestige and expensive insurance policy. They can afford it because Apple is literally the world’s richest corporation.
Nobody else does anymore. Even Microsoft gave up on their own browser engine despite having 97% market share two decades ago. And Mozilla is bankrolled by Google as their own kind of insurance policy.
However the glory days are evidently behind us, because these insinuations never end with "in a weekend" anymore.
Sure, today we have grid and vanilla CSS is sane and useable by anyone who takes the time to learn the modern way of doing things.
But let's not forget what a long and tortured road CSS has taken to become what it is today. CSS was a total dumpster fire up until around when flexbox came out. It was SO HARD to make it do what you want for SO LONG.
The MOST BASIC NOTION of layout, putting things in a freaking grid, was missing from CSS for almost two decades. Yet, the grid concept has been around in application layout since the 1980's. I can't explain why it took CSS such a long time, and the explanations I've heard don't seem plausible to me.
It's understandable that folks who were around in the bad days of CSS are still kind of bitter. I was, and if I didn't take the time to see the new ways of using it, I would still be incredulous about CSS.
It is weird to look back on but the web platform essentially went through a dark ages for a while. You could say the same about why it took us so long to get to ES6 JS, too. The standards bodies were frozen in ice (and I don’t quite know why either), everyone was debating HTML5 vs XHTML and somehow the rest of the platform floundered for years.
This is not true. CSS have had ‘display:table’ for 25 years, which is a simple grid layout model equivalent to html tables. Content can be aligned in rows and columns.
‘Display:grid’ is much more powerful of course.
That way, we could pretend to do page layout with CSS, while still feeling shitty about repurposing something meant for tables.
There's just no justifiable reason for putting whole-page lay-out on the back-burner for so long. So many other far less important things came out before grid, it feels almost like it was deliberately spiteful to delay it so long.
It puts things into a freaking grid as you asked for.
I was in the cult. It was totally inane, but seems to carry some effects to this day.
Web-apps were "a thing" starting in the very early naughts, yet just getting stuff to stick where you wanted it on web page required a bunch of stupid hacks and accommodations. Of course people resorted to using tables for page layout. The display:table thing was just a continuation of that.
Whole-page layout should have been an absolute top priority for the folks that controlled css, yet it seems they just didn't care until grid finally came out in 2017-ish? I just don't understand why that is.
Sure, it is not as sophisticated as Display:grid eg it doesn’t support changing the number of columns depending on the viewport width and it doesnt support elements overlapping multiple grid cells. But many common “full-page” layouts, like header, sidebar, footer can be expressed using “display:table”.
So if you wanted to "do right" you could not because IE6 was still "a thing" and did not support display:table. You were forced to use actual tables for layout or do endless tedious workarounds to make things work.
Who to blame? The W3C? Microsoft? I don't know but I glad those kinds of problems are mostly over.
I’m not sure why you’d blame this on W3C though. IE stasis froze any standard including ECMAScript. It was Microsofts attempt to halt the progress of the web because they considered it a threat to their desktop dominance. Luckily it didn’t work.
It's also worth keeping in mind that CSS is sometimes more complicated than it seems like it should be due to accessibility concerns and flexibility. That's why you can take some HTML produced by some part of your system and use it in completely different contexts with totally different designs, entirely as is, just by adding a few different rules.
I've been doing HTML dev since the late 90s and things were infinitely more difficult back in the old days. CSS might have been simpler, but doing complex things required tons of bizarre hacks that also made your design more frail and less accessible. These days CSS has improved to the point where you can do just about anything, and even very complicated effects can fairly easily be deconstructed just by looking at the devtools and poking around until you get it.
CSS isn't perfect, but all things considered I'm not complaining.
What I do see here, is one of many cases of "I don't understand it therefore it is dumb because it can't be my fault".
Its like if the terminal was actually now mostly a video player and people complaining about how awk and sed are tough to use against video frames.