&gt; What is 5 seconds of CSS takes a good 30 minutes of wrangling with NSButton&#x2F;NSButtonCell. The very existence of PaintCode is an indictment.<p>Imperative graphics and view hierarchies certainly make simple things tedious, but they&#x27;ll never match the DOM&#x27;s ability to occasionally make simple things nigh-impossible either.<p>I&#x27;m curious, if you call drawRect ugly then what do you call the menagerie of frameworks required to strong-arm the declarative environment of the web into the simplest of desktop tasks (shadow DOM, anyone?) Pot, kettle?<p>&gt; With a little effort they can be made to blend in perfectly.<p>I&#x27;ll believe it when I see it. I&#x27;ll grant you that this works OK on windows, but that&#x27;s due to MS making the decision to bring the widget kit down to web-level rather than the other way around. Meanwhile, iTunes and the AppStore continue the long and well-established tradition of poor integration.<p>&gt; It&#x27;s the same CoreGraphics.<p>Hidden behind a dozen trendy frameworks, a hundred bloated abstractions, and a thousand crusty layout engine implementation details to glue it all together.