6 ms·
Two comments: 1) it's not surprising: a lot of very simple systems can compute. It seems to naturally happen as you add flexibility to your rules. See for inst
by murbard2 11y ago
Two comments:
1) it's not surprising: a lot of very simple systems can compute. It seems to naturally happen as you add flexibility to your rules. See for instance Wang Tiles or some cellular automata.
2) it's not a good thing: it means that the behavior of CSS3 is undecidable in general, which makes it much harder to build tools that can meaningfully analyze it.
- SeanAnderson 11y agoYeah. My initial thought after reading the title was, "Shit. Don't tell people this! Someone's going to be crazy enough to invent something with this knowledge." Anyone who has worked with CSS long enough knows that: 1) Rule priority can get out-of-hand very quickly. 2) It's a nice thought to have more powerful selectors, but, taking #1 into consideration, perhaps limiting its power isn't such a bad idea after all. I was already on-board with using PostCSS modules, https://github.com/postcss/postcss https://github.com/postcss/postcss, to selectively import functionality for use in CSS rather than the heavy-handed approach of bringing all of SASS, LESS, or Stylus. Leaving powerful expression to languages built for it seems natural -- especially when CSS and JS intermingle so heavily.
- d-Pixie 11y agoI completely agree that it's not a good thing. I know that the browser maintainers also see the increasing complexity of CSS as a bad thing. That's why I was so sceptical to it from the start ...
- api 11y agoGUIs tend to do this. I think the reason is that programmers fundamentally underestimate the problem of building a good graphical user interface, and therefore systematically design solutions that are inadequate. These inadequate frameworks then accumulate ugly nasty cruft because their underlying structure is not adequate to elegantly address the problem domain. GUI toolkit and renderer development should begin with the humble admission that building a good GUI system is incredibly hard, on par with massive distributed systems and AI, and that the problem should be tackled with that level of difficulty as an expectation. A good analogy would be between a GUI toolkit and a mature 3d virtual world game engine. Those are probably roughly equivalent problem domains.
- andrewflnr 11y agoAI=~=GUIs=~=3D game engine? One of these is not like the others, and I'm not talking about the number of letters in the name. I take your point in general, but I don't buy the idea that designing a good GUI system is as hard as AI or distributed systems.
- api 11y agoI dunno. Can you deal with right-to-left, left-to-right, and vertical languages with different glyph forms on the same screen while also coping with multiple accessibility settings, sub-pixel anti-aliasing, embeddable GL components, component reusability, efficient updates on state changes without a full re-render, and platform support for over 200 different graphics chipsets? I'm just saying it's a problem domain that is consistently underestimated.
- murbard2 11y agoIt's not the same type of difficult; it's extremely painstaking and it's by no mean an easy task, but it's much less conceptually hard than a 3D engine, let alone an AI.