Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> this is largely accidental complexity.

Is it? I know hating CSS is a fun pastime for folks around here, but maybe it’s just that building good, rich user interfaces that people can use is an inherently hard problem.

Sure, the browser is slightly more difficult due to maintaining backwards compatibility and multiple implementations, but I’ve yet to see a better UI framework/language that has to deal with the other constraints of the web platform.

 help



> I know hating CSS is a fun pastime for folks around here, but maybe it’s just that building good, rich user interfaces that people can use is an inherently hard problem.

That CSS and web never really addressed did they? There's almost nothing in the web platform to build rich user interfaces. You can barely do styled text.

CSS and HTML are literally littered with accidental, ad-hoc, badly thought-out and badly designed one-off solutions, often to problems no one asked for. There's a reason it took until 2026 to animate `height: auto`. There's a reason why `article` "semantic" element has to be used when you display product cards or widgets. There's a reason why CSS scoping has been stuck in limbo for 10+ years. There's a reason...

The web is one of humanity's greatest achievements. But let's not pretend that it's not a textbook study in accidental complexity.


> That CSS and web never really addressed did they? There's almost nothing in the web platform to build rich user interfaces. You can barely do styled text.

Let me guess, you stopped reading web standards documents because Facebook told you it didn’t matter, since you could just ship 10MB of javascript with every request


What a nice ad hominem you decided to employ in lieu of an actual argument.

Try again.


>that has to deal with the other constraints of the web platform.

Well there's your problem right there


Right - but those constraints are inherent to the medium. Like basically unconstrained screen sizes from large desktops to mobile, with the user free to resize anywhere in between (and can't be constrained in the way that 'real' apps often are). Input methods of both fine mouse control, and course touch.

It is a hard problem. That is why in the pre-browser days a small number of entities did the hard work and gave the rest of us mere mortals tidy APIs to make use of their efforts without everyone having to painstakingly duplicate what they created each and every time.

But then CSS came along and threw out the baby with the bathwater, returning us back to the bare primitives, forcing entities to redo all that work again. Except this time CSS didn't offer a good mechanism to wrap up that hard work in a nice API bow, so everyone ended up getting pushed into having to redo that same hard work every time they started a new project, leading to a bunch of poor, inconsistent, and often downright wacky implementations.

To be fair, the problem isn't CSS per se, it is just that it is much too low-level for all but the small number of entities focused on the aforementioned hard problems and browsers failed to offer anything higher-level for the rest of us. Javascript has tried taking on a stand-in role for the lack of the higher-level abstraction being natively offered by the browser, but that comes with its own limitations so it isn't always a viable choice, not to mention that having to resort to using a full programming environment completely defeats the purpose of having CSS.

CSS gets all the hate because it is more often than not the wrong tool for the job but the only tool available at hand.


CSS is for styling documents, not for creating applications interface (which has a whole sets of constraints). It's like trying to use typographic design rules to create a car dashboard. CSS is great, just not fit for that particular job. There's an handful of properties that are the same (padding, margin, border, background color,...), but one common thing with native toolkits is that they have specific widgets for layouts.

It is for styling documents, but nobody (except for maybe designers trying desperately cling to a job) wants every document to have a bespoke style. I want to use a style created by experts that is consistently shared with every other document across the whole of the internet. CSS is fine as a low-level primitive for those experts, but it is not the mechanism the rest of us should be using. However, there is nothing in-between, at least not unless you lean heavily into Javascript, but, again, if you are going to use a programming environment then CSS is pointless anyway. There are much better ways to draw to screens when you have a programming language at your disposal.

People do want bespoke style (think booklets) and there’s a load of templates (and frameworks) on the internet if you want a standard set of components. The web as a platform was built for documents, and when we try to twist it to do applications, the crack appears. It’s just the wrong tool for the job.

Javascript is used for the Gnome shell and it’s doing a fine job there. And if you paired javascript to something like Tk (as in Tcl/Tk), I guess it would be fine too. The web primitives are just horrible for desktop uses.


> (think booklets)

That's what PDF is for. CSS is for documents, but namely documents for screens, and on screens you want consistency with all the things on that same screen.

> there’s a load of templates (and frameworks) on the internet if you want a standard set of components.

But not a great way to use them. You can make anything work when you have low-level primitives, so it is not a case that it cannot be done, but that's missing the forest for the trees. You can also program a computer by flipping toggle switches, yet we developed better tools (e.g. programming languages) because sometimes its nice to have more comfortable abstractions.


> Is it? I know hating CSS is a fun pastime for folks around here, but maybe it’s just that building good, rich user interfaces that people can use is an inherently hard problem.

I dunno, seemed easier 20+ years ago when in high school we were taught how to use Delphi than now.

HTML/CSS is just terrible way to build interfaces. It was made to build basically resizeable documents, not applications, and it shows in every crevice




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: