Live data from Hacker News

The Elements of UI Engineering

overreacted.io

71–80 of 84 posts

Re: The Elements of UI Engineering

#71

Earlier quoted context omitted.

Why is it people think being "honest and transparent" means being rude and mean? Tact is also a useful skill.

Because sensitive people are too selfish to tell the difference. The world isn’t always smiles, hearts, and rainbows there to please you. Directness isn’t condescension unless you are a child. Sometimes honesty really does mean telling people what they don’t want to hear. Tact isn’t a form of antidepressant. Tact is the means to account for the intention of offense without regard for actual offense. Overly sensitive…

> The world isn’t always smiles, hearts, and rainbows there to please you.

Of course it isn't, but that does not grant one an implicit licence to be uncouth.

> Directness isn’t condescension unless you are a child.

Directness isn't condescension, period. That, however, does not mean you can mix condescension with directness and call it plain directness.

> Sometimes honesty really does mean telling people what they don’t want to hear.

Then please, by all means, do just that, without resorting to improper name-calling.

----

You know what, I'm going to stop countering your points one-by-one, and try to talk to your central idea.

I agree with you, at a central level. I wouldn't hire people who cannot write their own code either. I, too, would rather work with people who can and want to solve problems than merely put pegs in holes with assistance from the likes of npm and SO.

But I wouldn't call them cowards. Because that would be mis-characterization, at best; and hyper-generalization, at worst.

Even if you meant to call someone risk-averse, or fearful, using the word 'coward' is more than being direct. 'fearful' is direct and sufficient, as is 'risk-averse', but if you couldn't settle there and had to reach as far as 'coward', that suggests you wanted to use the extra force that comes with that word. Thus, condescensional offence.

And then you continue in this path, characterizing those who wouldn't respond to you as lacking "balls", everyone who disagrees with your choice of words as "insecure", and everyone who downvoted you as "JavaScript developers" with "shattered hearts", those suggesting your "honest and rude" words lack tact as "overly sensitive" people.

Lastly, I'll leave you with the suggestion that people in this world lead happier and even more fulfilled lives without resorting to even the slight force you're employing here.

Re: The Elements of UI Engineering

#72

I've been building UI for years now and all these points highlighted by Dan are spot on. Great post! I've been thinking lately about the "design system" trend that is becoming more and more popular where companies want more control over styling and behaviour to make their UX unique to their brand as well as consistent across all their products. Ready-made 3rd party components like the excellent react-select don't rea…

This is why I always liked Cocoa (macOS native UI toolkit) and still prefer it over web UI when writing native apps. It separates out the concepts of layout, appearance, and behavior, and lets you customize any one of them without needing to readjust the others. I just released an app this morning here that uses a non-trivial amount of Cocoa, and it would be full Cocoa if there was a Cocoa-version of the excellent Mo…

I always blamed it on the fact we stopped adding HTML tags too early.

There were a lot of UI elements that were obviously needed if you were going to use a browser as an interactive app platform, but were easily passed over when minimal forms were considered sufficient.

I could see, for examples, a consistent WYSIWYG edit-box, a dropdown menu construct, a select-with-manual-override, consistent date and time widgets. Instead we got a bunch of inappropriate elements glued together with CSS and JavaScript to sort of work, but in unpredictable, non-native ways.

Re: The Elements of UI Engineering

#73

Earlier quoted context omitted.

Because sensitive people are too selfish to tell the difference. The world isn’t always smiles, hearts, and rainbows there to please you. Directness isn’t condescension unless you are a child. Sometimes honesty really does mean telling people what they don’t want to hear. Tact isn’t a form of antidepressant. Tact is the means to account for the intention of offense without regard for actual offense. Overly sensitive…

> The world isn’t always smiles, hearts, and rainbows there to please you. Of course it isn't, but that does not grant one an implicit licence to be uncouth. > Directness isn’t condescension unless you are a child. Directness isn't condescension, period. That, however, does not mean you can mix condescension with directness and call it plain directness. > Sometimes honesty really does mean telling people what they do…

> Directness isn't condescension, period.

Then we wouldn't be having this conversation. This conversation is here because people are offended I used the word coward and not at anybody specifically. I call them cowards because the behavior stems from intimidation. Everybody has fear, but its how people respond to it that determines bravery/cowardice. That said it isn't a surprise that cowards would be angrily offended at the mere thought of such a characterization even when not directed at them.

You have no idea how many horror stories I have heard from legal that boils down to my boss is mean. After further investigation more than 90% of the time the person making the complaint needed a mean boss because they were a piece of crap.

> And then you continue in this path, characterizing those who wouldn't respond to you as lacking "balls"

Yes, people who down vote for a minor disagreement of opinion or because their mortal soul was shredded apart by their deeply profound state of offense don't understand what the down vote is for. It isn't there to reinforce an echo chamber. The down vote is there to push down comments that are completely outside the conversation at hand or that demonstrate bad behavior. The big tears of sensitive people isn't an indication of bad behavior.

When I down vote a comment I always reply saying why I am doing so unless somebody else has already said it for me. It is the mature courteous thing to do.

Re: The Elements of UI Engineering

#74
post #54
post #19

Earlier quoted context omitted.

I think the reduction of the cognitive load of entropy was what propelled React (and specifically its innovation of the Virtual DOM) to be the most widely-used front-end framework. Being able to write a function transforming state to a description of the view, without having to worry about getting from whatever the view currently looks like to what you want it to look like, is a huge advantage. It can certainly still…

> innovation of the Virtual DOM Virtual DOM is rather a desperate move - to support components life time constructor/destructor events componentWill/DidMount / Unmount. What if you will be able to define in standard HTML/CSS something like this (as it is supported natively in Sciter) // css div.mycomponent { behavior: MyComponent url(components.js); } // script in components.js class MyComponent : Element { function…

So let's say that that's a component that displays a user's username - how do you make sure that its view is always up-to-date, whether the user is logged in, logged out, or another user's logged in?

Virtual DOM is not just about componentWill/DidMount/UnMount. It's when updating the view when a component's inputs (props) change that Virtual DOM shines.

Re: The Elements of UI Engineering

#75

I've been building UI for years now and all these points highlighted by Dan are spot on. Great post! I've been thinking lately about the "design system" trend that is becoming more and more popular where companies want more control over styling and behaviour to make their UX unique to their brand as well as consistent across all their products. Ready-made 3rd party components like the excellent react-select don't rea…

That's exactly how some of the newer libraries in React ecosystem work btw. For example, Downshift is that "DYI Autocomplete" — it handles a11y and mechanics but you can compose any kind of behavior and styling out of its primitives. https://github.com/paypal/downshift I'm glad to see this trend.

> a11y

I had to look that one up. I find it amusingly ironic that an accessibility initiative uses an abbreviation that renders the name incomprehensible.

Re: The Elements of UI Engineering

#76
post #61

Earlier quoted context omitted.

How does that scale? It's more than just 'branding' or pretty colours. What about actual featureS? There's the standard say there's the standard 'airline' app, that handles booking flights and then the lifetime of managing that booking. Reserving a seat and so on. Airlines build the data and the APIs, OS vendors (?) build the frontends. Then Singapore Air or whoever comes out with a new product/service - you can book…

You create a standard that covers 90% of most used cases and an nice extension api that allows crazy customization of the last 10%

Ahh cool, so like a web browser?

Re: The Elements of UI Engineering

#77

Earlier quoted context omitted.

> The world isn’t always smiles, hearts, and rainbows there to please you. Of course it isn't, but that does not grant one an implicit licence to be uncouth. > Directness isn’t condescension unless you are a child. Directness isn't condescension, period. That, however, does not mean you can mix condescension with directness and call it plain directness. > Sometimes honesty really does mean telling people what they do…

> Directness isn't condescension, period. Then we wouldn't be having this conversation. This conversation is here because people are offended I used the word coward and not at anybody specifically. I call them cowards because the behavior stems from intimidation. Everybody has fear, but its how people respond to it that determines bravery/cowardice. That said it isn't a surprise that cowards would be angrily offended…

I responded to you, not because of any of the reasons you mention, but because I genuinely wanted to point out to you your mistakes. It appears I have done a poor job of it, and I'm unlikely to succeed with further tries.

So I won't try very hard, and you might pardon me for the brevity:

1. Flight can be a perfectly sensible alternative to fight, and isn't always cowardice.

2. Fear isn't the only possible reason to avoid an endeavour.

3. Not every offence is taken angrily.

4. Not every offence is taken for the same reason.

5. Taking offence isn't exclusive to any single group, let alone "cowards".

6. I am a "mean" boss who also has to deal with people you dislike dealing with, and even I agree I am being uncouth when I call someone names because of their ineptitude, or other technical reasons.

7. The downvotes you are receiving aren't necessarily only from people who fall into those two extreme characterizations you describe.

8. There are no big tears here, only downvotes and people trying to talk to you.

9. Explaining every downvote due to bad behaviour gets tiring, eventually; though, here I am, and I haven't even downvoted you, yet.

Re: The Elements of UI Engineering

#78

Earlier quoted context omitted.

> Directness isn't condescension, period. Then we wouldn't be having this conversation. This conversation is here because people are offended I used the word coward and not at anybody specifically. I call them cowards because the behavior stems from intimidation. Everybody has fear, but its how people respond to it that determines bravery/cowardice. That said it isn't a surprise that cowards would be angrily offended…

I responded to you, not because of any of the reasons you mention, but because I genuinely wanted to point out to you your mistakes. It appears I have done a poor job of it, and I'm unlikely to succeed with further tries. So I won't try very hard, and you might pardon me for the brevity: 1. Flight can be a perfectly sensible alternative to fight, and isn't always cowardice. 2. Fear isn't the only possible reason to a…

> Explaining every down vote

This is written as an excuse of laziness, which doesn’t makes sense. Clearly there is the energy to become emotionally responsive. That is the nature of an echo chamber, destroy that which is disagreeable for comfort.

The rest of your points are all assumptions and stereotypes to qualify bad behavior. If you really merely disagreed with an opinion you would ignore it. There is something more at play if you feel the need to silence or destroy an opinion.

While I understand this all stems from immaturity and a vain need to somehow qualify it I will leave you with this:

https://www.bartleby.com/130/2.html

Re: The Elements of UI Engineering

#79

Earlier quoted context omitted.

I responded to you, not because of any of the reasons you mention, but because I genuinely wanted to point out to you your mistakes. It appears I have done a poor job of it, and I'm unlikely to succeed with further tries. So I won't try very hard, and you might pardon me for the brevity: 1. Flight can be a perfectly sensible alternative to fight, and isn't always cowardice. 2. Fear isn't the only possible reason to a…

> Explaining every down vote This is written as an excuse of laziness, which doesn’t makes sense. Clearly there is the energy to become emotionally responsive. That is the nature of an echo chamber, destroy that which is disagreeable for comfort. The rest of your points are all assumptions and stereotypes to qualify bad behavior. If you really merely disagreed with an opinion you would ignore it. There is something m…

1. Energy to downvote 2. Discouraging bad behaviour != Echo chamber

3. Rest of my points: specific refutals of your mistakes.

4. I didn't even disagree with your opinion, and I'm telling you this for the third time now. I didn't even downvote you, though I want to, especially now.

The very first site guideline about comments says "Be civil". You break that, complain about downvotes (which breaks another site guideline), and when someone tries to reason with you, you up the snark (which breaks the first guideline), and refuse to see/read anyone's point of view except your own.

Forget your misguided ideas that all you presented here is an opinion, and that every one who disagreed with your comment is fragile, thin-skinned, and thin-skilled, and examine just your behaviour here. Are you really, truly, surprised anyone wants to discourage such behaviour around here?

Re: The Elements of UI Engineering

#80

From the part on accessibility: > But we also need to make it easy for product developers to do the right thing. What can we do to make accessibility a default rather than an afterthought? Yes! We accessibility advocates have been wishing for this for decades. In the context of web development, application developers should rarely, if ever, have to reach for the ARIA role attribute, because they should be able to re-…

The "make accessibility a default rather than an afterthought" phrase was exactly what I've been looking for. I'm currently summarizing my evaluation of over 20 UI frameworks for an upcoming blog post. It's a pity to have even accessibility-aware frameworks like Bootstrap going with inaccessible colors by default - on purpose [0]. Yes, it is not hard to customize those colors, but many people simply go with the defaults, leading to an inaccessible site.

[0] https://getbootstrap.com/docs/4.1/getting-started/accessibil...

Post reply on HN