4 ms·
> The problem is that it's bad. I say this as someone who comes from the outside, and isn't an expert ("barely competent" in HTML/CSS is probably accurate). Bas
by cphoover 6y ago
> The problem is that it's bad. I say this as someone who comes from the outside, and isn't an expert ("barely competent" in HTML/CSS is probably accurate). Basic layout of things in a way that copes with different screen sizes/orientations is a surprisingly black art sometimes. There's a lot of history confusing the issue and three ways of doing each thing.
How can you say this with a "barely competent" level of expertise? I would rather hear a well reasoned argument from someone who knows the ecosystem and its trade-offs.
- rkangel 6y ago> How can you say this with a "barely competent" level of expertise? I get that, and that's why I declared it. I have two reasons why I think the opinion is still valid: I'm not completely incompetent. I have produced useful web frontend work. After having spent more time on web technologies than a lot of others I still find it to be slower and harder. This point is about learning - I have done some learning in both and I can compare. It's a small sample size, but seems to agree with the experience of other people. The other point is that most people talking about this are already experts in HTML/CSS. That learning is a sunk cost for them so they're not making fair comparisons. I also sometimes feel like there's a little 'Stockholm syndrome' - they've invested time and effort in learning the techniques and tools required to produce good quality web UI, and now that they can they overlook the effort required to get to that point and proclaim the wonderful nature of what they're using. The sunk cost thing is the important aspect. I'm not even saying that it's wrong that it's become the standard UI description language - it as at least an open specified standard. I'm just saying that not enough attention is paid to the downsides.
- franklampard 6y agoI have a hard time understanding why the cost of learning web dev (CSS/html) is a sunk cost. It’s reaping so much benefit that these experts can easily make mobile apps without learning another way to describe UI.
- asiachick 6y agoI'm agree with you but I gotta say, I have yet to find the perfect tutorial that say "follow these N steps and you'll always get what you expect". For me, the common places things break are, setting up a flexbox and not having the content scale to fit. Trying to make an app like layout (so the page itself doesn't scroll though some content in various areas might) and again, trying to get various flexbox areas to either fit their content or get the content to fit its area without expanding the page past the window size (note: if you use overflow: hidden you failed) In any case I'm not a UI/UX designer so I don't do it daily, therefore when I do need to do it it's always a bunch of frustrating trial and error. That said, I do think there are a class of designers that also don't know these answers. They just know a few frameworks that handle all of this for them.
- discreteevent 6y agoIt is a sunk cost for them. They literally cannot get it back. But for somebody new why should they have to pay this cost if there are many less expensive ways to describe a UI. The lowest common denominator is now invading everything including native. This often happens but it is regrettable.
- hexanal 6y agoSuper valid point. I've been a frontend dev for a while and I'm comfortable with HTML and CSS but I can definitely imagine switching to something else. The sunk-cost fallacy thing is real, though. But the complexity arises from wanting to make apps with something meant for simple documents. That being said, even building the simplest website nowadays requires a mind-boggling knowledge of the idiosyncrasies of the "languages". I want to lose my job; I want the next best thing to be completely different but still allow for creativity and productivity.
- Phrodo_00 6y agoBecause of backwards compatibility, HTML+CSS makes it cumbersome to use the simplest ways to layout things. And it's also confusing because the oldest ways are still very much valid. You have to make divs (or semantic equivalents that I'm not sure are used anymore), and then mark them as different kinds of displays using CSS, with multiple sublanguages for multiple properties. Compare that to QML Quick Layouts[1], GTK containers [2] or winui controls [3] where you just instantiate whatever kind of display with the container you want in a single model using qml/GTK Builder XML/XAML and be done with it. [1] https://doc.qt.io/qt-5/qtquicklayouts-index.html https://doc.qt.io/qt-5/qtquicklayouts-index.html [2] https://developer.gnome.org/gtk3/stable/GtkContainer.html#GtkContainer.object-hierarchy https://developer.gnome.org/gtk3/stable/GtkContainer.html#Gt... [3] https://docs.microsoft.com/en-us/windows/winui/api/microsoft.ui.xaml.controls?view=winui-3.0-preview https://docs.microsoft.com/en-us/windows/winui/api/microsoft...
- mumblemumble 6y agoThe last paragraph really hits the nail on the head. HTML+CSS+JavaScript is just so complex, with so many details to learn, and so many corner and edge cases to understand. Not necessarily inherently, more as a result of taking a set of tools that were originally designed for doing one thing - creating hypermedia documents - and repurposing it for creating rich application graphical user interfaces. Which is ultimately a very different problem space with different needs and design constraints. I'm also struck by the total development effort required. Once upon a time, the GUI was something that the whole dev team pitched in on. Hopefully a designer was guiding the work. But all the programmers could easily pitch in on the actual implementation, with minimal up-front training. Nowadays, the work often goes to specialists, and "full stack" is actually a thing people highlight on their resumés, rather than something that goes without saying. Perhaps that has nothing to do with the technology. Some of what's going on is undoubtedly just that all professions become more specialized as they mature. The bar for what counts as a good UI has also raised quite a bit over time. And the actual ask is quite a bit more impressive, too. A single GUI codebase that can dynamically adapt to everything from a smartphone screen to a large computer monitor, without looking janky at any point in between, is something that, to my knowledge, has never been asked of a Visual Basic application. But still, even given all that, it's hard not to at least wonder if we could have ended up in a better place if we had been given a technology stack that had been designed from the ground up for the problem domain, rather than having to make do with something that was never meant for this problem domain, but has been adapted to it through the accretion of many layers of hacks.
- rkangel 6y agoI did come to appreciate how much detail (and therefore) effort goes into a modern UI. I was building something that was effectively a messaging app for my startup. I was doing it in Flutter so progress was good and things generally behaved pretty well. But so many little things needed to be done to get e.g. the input box to behave intuitively (e.g. hide 'attach image' button when writing text). I was basically copying the standard approach from FB Messenger and WhatsApp. Apps at that level of polish have raise out expectation. That changes thing for developers - when it was "just add a button" everyone could pitch in, but now it can be full time work for several people.