6 ms·
"One of my fundamental rules of system design is when people keep doing it wrong, the people are right and your system or idea is wrong." excellent, and in hil
by recursivedoubts 3y ago
"One of my fundamental rules of system design is when people keep doing it wrong, the people are right and your system or idea is wrong."
excellent, and in hilarious contrast with the responses in this thread...
- Dudester230526 3y ago[flagged]
- jrm4 3y agoRight? I've never seen a thread like this; it's hilarious. Hacker news thread talks about how to do HTML. Guy writes article refuting the thread. But it happens backwards TENET!
- mananaysiempre 3y agoCan you explain? What I’m reading here is people discussing drawbacks of various non-string-based systems, which seems like an appropriate reaction to a guy telling them that maybe people use strings because the non-string-based stuff sucks. (Not being well-known or available in a widely-used language is a drawback in this context!)
- jrm4 3y agoAnd the author made the (annoying) point that I'm now ready to call as a bit of an old-timer here. When people keep recreating the "bad design pattern" over and over, you should probably get over it and roll with it.
- andrewflnr 3y agoNo matter what other damage it causes?
- warkdarrior 3y ago"Roll with it" probably means that we should expect people to use strings for templating, so we should design other downstream mechanisms to handle or prevent potential damage.
- uglycoyote 3y agoI think you still need to explain further. it is not clear why you think the author is being annoying. it sounds like you are agreeing with the author in your last sentence. I'm confused.
- mananaysiempre 3y ago> [Y]ou should probably get over it and roll with it. I’m not sure that’s what he’s saying: > If people want to displace string templating, figuring out what those current advantages are and how to duplicate them in alternatives seems likely to be important. But that’s not an interesting objection—if you want to say it, we might as well use that to justify talking about it instead. What is interesting from my point of view is that I can’t see what it would actually mean to “roll with it”. Stop trying to invent something better? Thanks but no thanks. (I’m just a sucker for potentially extremely neat things with a long history of mostly failing—structural editing, live programming, graphical programming... I doubt anybody can reform me at this point.) Try to mitigate problems that result from this? If there ever was something that failed even heavier and in even stupider ways than eliminating string templating, it’s web application firewalls and their ilk. At least I haven’t ever heard of them stopping a determined or even somewhat competent attacker. Try to trick people by doing something that looks like string templating but is in fact syntactic? Worth exploring, but doesn’t really count as rolling with it, I think. The only thing I can imagine here is tainted strings, and those do work, but like the previous option they are hardly seamless. Something else? What?
- WesolyKubeczek 3y ago> I’m just a sucker for potentially extremely neat things with a long history of mostly failing—structural editing, live programming, graphical programming... I doubt anybody can reform me at this point. There exists a cohort of people, so called “harbingers of failure”, that inexplicably prefer and buy new products which turn out to be flops. I suspect I am one, too. The topic of this strange kind of people seems to be discussed here quite a lot: https://hn.algolia.com/?q=harbingers+of+failure https://hn.algolia.com/?q=harbingers+of+failure You could probably be one of such people. I think you should document your preferences somewhere public, so that we know what else is likely to turn out to be a flop. > tainted strings At least in Perl’s implementation (one that is famous among me) it’s possible to untaint them accidentally by doing some innocuous operations which may not be directly related to their final purpose.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- betenoire 3y agoI learned this concept hiking with a ranger when I was young. I caught myself about to cut the corner of the trail. I jokingly shamed myself for the thought, and he says,"that's a sign we designed it wrong here". He went on to explain that they do watch hikers for how they got it wrong in that sense
- rgbrenner 3y agoThe assumption in that statement is that the trail being convenient for people is the only important consideration. I was out hiking a couple of years ago on a very steep trail with lots of signs telling people to stay on the trail because they were trying to regrow the forest in the surrounding area to prevent land slides... and what did people do? They cut through it anyway. No wonder they had to shutdown entire portions of the trail. Sometimes things have to be done a certain way for other reasons. The most convenient technical solution is not always the right solution either.
- betenoire 3y agoThe assumption? I think it is more subtle than that. Your example shows that if perhaps there were two trails, say the one for the hasty short-cutters, and one for the others, the inevitable damage could have been minimized and a closure avoided. But my comment wasn't about trail management, I'm recounting an anecdote from 25 years ago. The point was to check your assumptions against reality, and adjust accordingly.
- GauntletWizard 3y agoI wish more trails I walked had "fast, hard, short" vs "slow, easy, long, pretty" route markers - and not necessarily in that combination! Sometimes a long trail is long because it's pretty, sometimes because it has low grade. I've walked with people in crutches and wheelchairs, warnings that "this trail has steps" have been invaluable (and really annoying when missed).
- regular_trash 3y agoI might not totally understand the context of the trail you were on, but how does making the trail less convenient support re-growing the forest? It seems like the regrowth probably has little to no preference on where it occurs, so couldn't the trail designers still have made the trail with convenience as the chief goal?
- splatzone 3y agoIt reminds me of theatre writing, bizarrely. A lot of playwrights I know think that the audience is wrong when they don’t come to see their plays, don’t interpret the meaning of the play as understood by the playwright, or don’t laugh at the jokes… but in my opinion the audience is always right, and playwrights are there to serve them, not the other way round
- setr 3y agoYou have to be careful with this — the playwright should have a model of the “intended audience”. It is to this group he serves — not any random person off the street. The playwright is not wrong because the play could not be understood by a man who doesn’t understand the language the play is written in. There is an expected background that allows the play to be more than a blast of noises designed to only interact with your basic senses (which would also assume the audience has those senses in the first place), and the audience can be wrong for not meeting that expectation. Of course, the intended audience may have no relationship to the audience he will get — in this case the playwright is unreasonable, though the play may still be correct. I would say both the audience and the playwright operate in a symbiosis; they serve one another, and they both have responsibilities in the matter.
- klodolph 3y agoYes, exactly. I’ve seen the same discussion play out as “if you make a game and somebody plays it, and they don’t enjoy it, it’s your fault.” It seems as nonsensical as, “if you’re a chef and somebody doesn’t like your food, it’s your fault.” A midwesterner with a dislike for fish, who likes meat well done, could conceivably end up in a sushi restaurant. The point of having a market of plays, games, and restaurants is that we can match producers and consumers with each other. People are going to watch movies they don’t like, eat food they hate, and watch plays that they think are boring. That doesn’t mean that we have to assign responsibility (or blame) to anybody for it! Not everybody has to like your play.
- tracker1 3y agoThere's a large difference between a single one off not liking something and a majority not liking something. Even with food tastes. Knowing the expected audience where you are at does count. And if you're in an area with enough people, even then you can do well with a limited portion of the population.
- coffeeshopgoth 3y agoAnyone here ever take analytical chem lab? This is essentially how you get graded. Just wondering if anyone else was subjected to punishment for being careful?
- CharlesW 3y ago> "One of my fundamental rules of system design is when people keep doing it wrong, the people are right and your system or idea is wrong." Digital desire paths? https://en.wikipedia.org/wiki/Desire_path https://en.wikipedia.org/wiki/Desire_path
- winrid 3y agoI prefer digital cow paths.
- cpeterso 3y agoFor the desire/cow/elephant fans out there, this Instagram account shares satisfying photos of urban desire paths (and the attempts to block them): https://www.instagram.com/olifantenpaadjes/ https://www.instagram.com/olifantenpaadjes/
- Too 3y agoPit of success https://blog.codinghorror.com/falling-into-the-pit-of-success/ https://blog.codinghorror.com/falling-into-the-pit-of-succes...
- rgbrenner 3y agoGood thing people dont use this reasoning for web security: - Storing credentials in plaintext - Not validating input - SQL injection - etc All more convenient than doing it the right way.
- JustLurking2022 3y agoThe primary design constraint for all of those is security whereas for generating HTML it's done combination of simplicity/maintainability/performance.
- jeremyjh 3y agoThere are also security implications for how HTML is constructed.
- chrisandchips 3y agoAnd which of those implications bare importance on string templating? Of course there are examples of situations where this heuristic doesn't apply, but that doesn't mean its a bad idea that we should totally disregard. This kind of thinking has plagued engineering fields for a long time; Don Norman talks about it in "The Design of Everyday Things". Engineering teams get mad when users don't use their products the "right way", when really they just won't admit to themselves that they've implemented bad design. Simpler, cleaner designs and use patterns tends to win as time goes on.
- lelanthran 3y agoI was going to jump in with a pithy DOET quote[1], but you got the essence quite correct: if the intended users of your system can't get it right, then you, the designer, got it wrong. [1] Maybe something about "probably won awards" :-)
- jeremyjh 3y agoUntrusted input has to be escaped before injecting it into an HTML document, or else there is a script injection vulnerability when text from one user is executed as script in another user's browser. Good templating systems eliminate this possibility through parameter systems, but maybe those are still considered string templating systems?
- pdntspa 3y agosomeone please tell this to game designers
- oehtXRwMkIs 3y agoThis is lesson #1 in https://youtu.be/QHHg99hwQGY https://youtu.be/QHHg99hwQGY
- lucideer 3y agoOne of my fundamental rules is that if a rule involves a simple binary, it's probably wrong. Many of the responses in this thread are highlighting that the analysis here is useful but oversimplified: if people are "doing it wrong" it's an opportunity to reflect on our approach to UX/DX, but accepting populism for its own sake is throwing out the baby with the bathwater. It's also been pointed out by numerous commenters that the central qualifier - that everyone uses string templates - isn't even true. The most popular front-end systems in modern stacks are structured html. It's in common use today.
- PaulHoule 3y agoFor years I have been fascinated with the idea of a template system that works at the DOM level, that’s a bit like what happens with React, but really parsing HTML at the DOM. I wrote some of the ideas up here https://ontology2.com/the-book/html5-the-official-document-language.html https://ontology2.com/the-book/html5-the-official-document-l... One big problem is that systems like this are orders of magnitude slower than text-based template systems. Another one is a problem with namespaces. If you mash together two arbitrary documents they could have identical id attributes (forbidden) or identical classes (talk about wires getting crossed.). You ought to be able to transcoded an arbitrary HTML document into another one but you’d need to rewrite the CSS to eliminate conflicts in some cases, which I think is possible but is rarely done.