Live data from Hacker News

Systems that defy detailed understanding

blog.nelhage.com

61–65 of 65 posts

Re: Systems that defy detailed understanding

#61

I often wonder if things would be better if systems were less forgiving. I bet people would pay more attention if the browser stopped rendering on JavaScript errors or misformed HTML/CSS. This forgiveness seems to encourage a culture of sloppiness which tends to spread out. I have the displeasure of looking at quite a bit of PHP code. When I point out that they should fix the hundreds of warnings the usual answer is…

Well, there is the Robustness Principle:

Be conservative in what you do, be liberal in what you accept from others (often reworded as "Be conservative in what you send, be liberal in what you accept").

the wisdom of that policy just accrues over time.

[1] https://en.wikipedia.org/wiki/Robustness_principle

Re: Systems that defy detailed understanding

#62
post #23

I often wonder if things would be better if systems were less forgiving. I bet people would pay more attention if the browser stopped rendering on JavaScript errors or misformed HTML/CSS. This forgiveness seems to encourage a culture of sloppiness which tends to spread out. I have the displeasure of looking at quite a bit of PHP code. When I point out that they should fix the hundreds of warnings the usual answer is…

This often devolves into extremely fragile systems instead. For instance, let's say you failed to load an image on your web site. Would you rather the web site still work with the image broken or just completely fail? What if that image is a tracking pixel? What if you failed to load some experimental module? Being able to still do something useful in the face of something not going according to plan is essential to…

> This often devolves into extremely fragile systems instead.

as if the systems we have today aren't fragile? instead, they're fragile but their fragility is hidden and obfuscated.

being robust and reliable is different than just letting systems do whatever they think is best.

Re: Systems that defy detailed understanding

#63
post #61

I often wonder if things would be better if systems were less forgiving. I bet people would pay more attention if the browser stopped rendering on JavaScript errors or misformed HTML/CSS. This forgiveness seems to encourage a culture of sloppiness which tends to spread out. I have the displeasure of looking at quite a bit of PHP code. When I point out that they should fix the hundreds of warnings the usual answer is…

Well, there is the Robustness Principle: Be conservative in what you do, be liberal in what you accept from others (often reworded as "Be conservative in what you send, be liberal in what you accept"). the wisdom of that policy just accrues over time. [1] https://en.wikipedia.org/wiki/Robustness_principle

Hyrum's Law challenges that supposed wisdom.

https://www.hyrumslaw.com/

Postel's Law creates debt that we pay interest on forever

Since Hyrum's law is a naturalist observation and Postel's Law is a suggestion, Hyrum's law is a more definitive truth.

Re: Systems that defy detailed understanding

#64

I often wonder if things would be better if systems were less forgiving. I bet people would pay more attention if the browser stopped rendering on JavaScript errors or misformed HTML/CSS. This forgiveness seems to encourage a culture of sloppiness which tends to spread out. I have the displeasure of looking at quite a bit of PHP code. When I point out that they should fix the hundreds of warnings the usual answer is…

"I bet people would pay more attention if the browser stopped rendering on JavaScript errors or misformed HTML/CSS."

This was strongly suggested by those who fought for strict XHTML, but then Sam Ruby, who was leading the HTML5 effort, asked the question, "I find an image that I know my daughter will like. I send it to her. It is SVG. She wants to upload it to her Myspace page. However, the image won't render, because SVG is a form of XML, and Myspace is non-compliant. And yet, if I send her a JPEG or GIF image, she can upload that to Myspace."

The point was we typically embed content from one page into another page, and no one believed there would ever come a day when every page on the Web would be strict compliant. So HTML5 went in the other direction, dropping most requirements and allowing pretty much anything.

As I've written elsewhere, the fundamental problem we face is that a markup language, such as HTML, is completely unsuitable to the apps we now like to build and run over the Web. We rely on HTML to function as the GUI of TCP/IP, but it was not actually designed for that, as it was descended from SGML, and it carries with it a publishing history. What would make more sense would be use of a data format, such as JSON or EDN, which can then be given visual characteristics, without ever having to participate in one hierarchy or any one understanding of a DOM. Developers understandably complain that Java/Swing had 9 different layout options, the product of much experimentation, but having a variety of layout options does allow more flexibility of styles of building a GUI, with some approaches being simpler than what we get with the React/JS translation into HTML.

Re: Systems that defy detailed understanding

#65
post #61

Earlier quoted context omitted.

Well, there is the Robustness Principle: Be conservative in what you do, be liberal in what you accept from others (often reworded as "Be conservative in what you send, be liberal in what you accept"). the wisdom of that policy just accrues over time. [1] https://en.wikipedia.org/wiki/Robustness_principle

Hyrum's Law challenges that supposed wisdom. https://www.hyrumslaw.com/ Postel's Law creates debt that we pay interest on forever Since Hyrum's law is a naturalist observation and Postel's Law is a suggestion, Hyrum's law is a more definitive truth.

I can see that too. You end up possibly supporting a bug-compatible interface or other nonsense.

Amusing but unrelated I looked to see if that law was on wikipedia and clicked on this thinking it might be another spelling:

https://en.wikipedia.org/wiki/Yhprum%27s_law

Post reply on HN