[HN Gopher] SmooshGate FAQ (2018)
       ___________________________________________________________________
        
       SmooshGate FAQ (2018)
        
       Author : tosh
       Score  : 15 points
       Date   : 2021-06-03 17:21 UTC (5 hours ago)
        
 (HTM) web link (developers.google.com)
 (TXT) w3m dump (developers.google.com)
        
       | tialaramex wrote:
       | https://www.hyrumslaw.com/
       | 
       | Monkey-patching is cool, until it breaks the world. In hindsight
       | the Javascript language ought to prevent this sort of trick from
       | working, but when it was invented none of our modern web was
       | imaginable, so, too bad.
       | 
       | To anybody inventing new languages: If you think there will ever
       | be too many programmers of your language to all fit in one room
       | for an intervention about monkey-patching, you need to ensure it
       | cannot happen. Do it now.
        
       | nonbirithm wrote:
       | This reminds me of the time Mozilla attempted to improve
       | Firefox's error message for undefined property accesses, but it
       | caused breaking changes because some websites relied on parsing
       | the old error message format, so nothing could be done to improve
       | it.
       | 
       | https://bugzilla.mozilla.org/show_bug.cgi?id=1488417
       | 
       | https://news.ycombinator.com/item?id=19493433
        
       | klodolph wrote:
       | With great power comes great incompatibility.
       | 
       | Every so often there's another story about how a bunch of
       | software broke because somebody was monkey-patching classes in
       | production. JavaScript isn't the only language where this
       | happens; this happened plenty in Rails until people figured out
       | it was a bad idea.
        
       | nailer wrote:
       | The thing is flat() is a poor name for a method and inconsistent
       | with the other array methods which are verbs.
       | 
       | Sacrificing a simple name that will affect 1000x more developers
       | to not break an unmaintained website that's somehow still up
       | (how? Why is billing being kept up to date and domain names being
       | renewed but the site isn't being maintained?) was a bad idea.
       | 
       | Also attempting to reframe the controversy as about people
       | misunderstanding smoosh - when it was about 'flatten' not being
       | used for a bad reason.
        
         | egypturnash wrote:
         | Imagine it's 2007. You are not a web developer. You are not a
         | programmer, either. But you do something you want to make
         | available online. You built a site that serves your needs, and
         | used MooTools as part of the process. Or you hired someone to
         | do it. It's probably a pretty simple site by the standards of
         | someone from 2021 who routinely dumps ginormous piles of
         | javascript onto people to create apps. But it does what you
         | need.
         | 
         | Whoever built it did a solid job. It has sat there continuing
         | to do what it needs to do for a decade. It may not look like
         | the current trends in web development, but you don't care - you
         | still like the way it looks. It still serves its purpose.
         | You're not a web developer, you have no need to rebuild it to
         | show off how you can use this year's hot framework. You still
         | update it regularly with new content, without ever touching the
         | code. It hasn't broken, it hasn't become a spam link farm. And
         | then along comes a new release of Mozilla and you start getting
         | people bitching about your site being broke. Or, thankfully,
         | because Mozilla decided to not make this name change, nothing
         | happens, and you keep on having your website just work while
         | you get on with doing whatever you built it to help support you
         | doing.
         | 
         | I'm pretty close to this description; I'm an artist, whose
         | self-made personal site _did_ use MooTools for a while, though
         | that went away when I stopped using my own personal mods to an
         | obscure image gallery package with some MooTools for spice in
         | favor of Wordpress around 2011. I have dug into the site 's
         | code maybe a half dozen times in the intervening years, mostly
         | to set up new styles for new comics projects, and recently to
         | replace the ten-year-old front page hero image and freshen up a
         | few colors to match it. Sacrificing this "simple" name would
         | have affected a _whole_ lot more people than you think it
         | would.
         | 
         | (More succinctly, consider this line from the "Why don't we
         | just keep the existing name and break the Web?" section (https:
         | //developers.google.com/web/updates/2018/03/smooshgate...): _As
         | it turns out, "don't break the Web" is the number one design
         | principle for HTML, CSS, JavaScript, and any other standard
         | that's widely used on the Web._ With a link in there to a W3C
         | document on the core ideas for guiding the evolution of HTML
         | that expands on this.)
        
       | uncleyo wrote:
       | I wonder if JS could benefit from a system similar to Rust
       | editions (https://doc.rust-lang.org/edition-
       | guide/introduction.html). Requiring assertion like "This code was
       | written in 2021, no MooTools here" seems like a reasonable ask to
       | access new features in the standard library.
       | 
       | I know it may sound similar to what X-UA-Compatible did, but that
       | was really horribly implemented and vendor specific...
        
         | steve_adams_86 wrote:
         | I think something like this was proposed actually, but was
         | thought to potentially fragment the web too much.
         | 
         | I wonder if it would also mean an inherently more complex
         | runtime with correspondingly complex debugging. At the moment
         | you have a single JS environment you run and debug in. If we
         | began tiering it by versions, what would that look like for day
         | to day development? You'd no longer track just browsers but
         | versions of JS running in each.
        
       ___________________________________________________________________
       (page generated 2021-06-03 23:02 UTC)