[HN Gopher] Rebuilding our tech stack for the new facebook.com
       ___________________________________________________________________
        
       Rebuilding our tech stack for the new facebook.com
        
       Author : alexvoica
       Score  : 433 points
       Date   : 2020-05-08 16:04 UTC (6 hours ago)
        
 (HTM) web link (engineering.fb.com)
 (TXT) w3m dump (engineering.fb.com)
        
       | bryanmgreen wrote:
       | I wonder what the Mobile App versus Mobile Browser versus Desktop
       | Browser usage percentages look like.
       | 
       | Generally speaking, how important is it to actually update the
       | desktop version other than for the sake of updating tech? I only
       | use desktop as part of my marketing work, if I do it use it at
       | all.
       | 
       | (Side Note: I can't believe it took this long for Dark Mode to be
       | a normal option for all software)
        
       | Groxx wrote:
       | > _We addressed this by generating atomic CSS at build time.
       | Atomic CSS has a logarithmic growth curve because it's
       | proportional to the number of unique style declarations rather
       | than to the number of styles and features we write._
       | 
       | I've always wondered... has anyone checked to see if this
       | strategy of CSS (which AFAICT is slowly growing in popularity,
       | since it's a super simple minification trick) ends up costing
       | more in bandwidth?
       | 
       | It seems like it would, because 1) you frequently need multiple
       | classes per html element, and 2) those html classes need to be
       | sent _on every page load_ , where CSS caches well if used
       | "normally". I can see it being smaller on _any individual page_ ,
       | especially with class-name minifying, but across many? And
       | infinite scrolling loading many more elements?
        
         | axyz wrote:
         | we use this approach since more than a year with very good
         | results. Regarding the data transfer it is not much of a
         | problem because those classes usually get repeated a lot across
         | the elements and having lot of repeated string is the best case
         | scenario for gzip compression leading to basically no size
         | impact.
         | 
         | https://github.com/utilitycss/atomic This is the framework we
         | developed to create atomic CSS component libraries if you want
         | to have a look (documentation needs some love, but is quite
         | stable)
        
           | Groxx wrote:
           | Your HTML is still undeniably larger than something with
           | dramatically fewer class attributes though, if you minify the
           | same way. Hence my "single page" vs "many" difference.
           | 
           | gzip helps for sure, but I doubt `<class="card">...` ends up
           | larger than `<class="a b c d e"><class="sub-a sub-b q
           | etc"><class="repeat per element">...`.
        
             | axyz wrote:
             | there is of course a bit of difference in some use cases,
             | my point is that in a real world scenario you often do not
             | have
             | 
             | <class="card"> vs <class="a b c d e">
             | 
             | but more something like <class="card"><class="stuff-inside-
             | card"><class="other-stuff">
             | 
             | vs <class="a b c d e"><class="b c f"><class="c d e g">
             | 
             | so in the long run you tend to have more repeated strings
             | across even completely unrelated elements and that usually
             | balances out the possible increase in non gzipped bytes.
             | But to be honest we did not had a detailed comparison with
             | edge cases and it would be interesting to see when it
             | actually may be a bad idea and when it is totally fine
        
               | Groxx wrote:
               | when you're less "component-y" with your styles, yeah,
               | that happens pretty frequently. careful styling is mostly
               | rare (like all careful things)... but atomic styling
               | seems to make the savings of careful styling effectively
               | _impossible_ , though I absolutely believe it helps the
               | less-careful (especially the least-careful) cases.
        
       | scalableUnicon wrote:
       | I rarely use Facebook, but when I do I use https://m.facebook.com
       | instead of the main site. Similarly i.reddit.com and the HTML
       | version of Gmail. Which aren't great looking, but pretty usable.
       | I hope these versions will be maintained for a long time.
        
         | Drip33 wrote:
         | >Similarly i.reddit.com
         | 
         | Try https://old.reddit.com
         | 
         | It's so bad that people made Browser Extensions for Firefox[0]
         | and Chrome[1]
         | 
         | [0] https://addons.mozilla.org/en-US/firefox/addon/old-reddit-
         | re...
         | 
         | [1] https://chrome.google.com/webstore/detail/old-reddit-
         | redirec...
        
           | benbristow wrote:
           | Old Reddit is so damn ugly though apart from the Subreddits
           | which have nice custom themes (although does make for a 00's
           | Myspace-like inconsistent interface)
           | 
           | The new Reddit definitely seems a lot faster nowadays than it
           | did when it first launched.
        
             | SketchySeaBeast wrote:
             | > The new Reddit definitely seems a lot faster nowadays
             | than it did when it first launched.
             | 
             | For me it's not the speed, it's the number of times the
             | page straight up just doesn't refresh, or comes back with
             | no data. Very frustrating.
        
             | ccmcarey wrote:
             | I don't think old reddit is ugly, though it takes some
             | getting used to. Combined with RES for some minor
             | enhancements (navigation etc) and it's great.
             | 
             | It's similar to HN. Not fantastic design, but incredible
             | information density and usability.
        
               | thelean12 wrote:
               | Incredible? HN has horrific usability.
               | 
               | Good luck knowing when people respond to your comments.
               | Searching takes you to a completely different website.
               | You can't delete comments (which should be a basic
               | privacy ask from this crowd). Click targets are
               | incredibly small.
               | 
               | It took years of begging for them to even implement
               | collapsing comments. And for some reason they put it on
               | the right side (not lined up with the tree level), and
               | made it a super small click target.
        
               | Supermancho wrote:
               | Not to go off on a rant about reddit here, but I still
               | use the old reddit (old.reddit.com). The new reddit
               | layout is horrid,. Using additional whitespace to improve
               | readability, has done the opposite. Counter-productive
               | iconography sizing and font styling, it goes on and on.
               | Some of this is to make it more mobile-friendly. I get
               | it, but as a singular design, it's worse for desktop
               | users.
        
         | aerovistae wrote:
         | Gmail is a disgrace. I've been using it for so long and I miss
         | the version from 2005. It's so slow today I just hate using it.
         | It's really sad because it was a great product and that's why
         | it took over email.
        
       | pathartl wrote:
       | Great write up. Glad to see they're making some changes as the
       | current interface still feels like 2005 with the main feed at
       | 500px wide. And as always, dark mode is welcome.
       | 
       | I really hope this helps performance on the site. In the past
       | year or so I've been noticing that when the page sits in an
       | unfocused tab for a while, clicking back usually takes 20+
       | seconds to actually load and I'm stuck at a white screen. It
       | actually locks up the tab pretty well too, so navigating to other
       | addresses and such takes a pretty long time.
        
         | dehrmann wrote:
         | > And as always, dark mode is welcome.
         | 
         | I don't get this infatuation with dark mode, beyond it looking
         | cool. People claim it helps with eye strain, but a brighter
         | background constricts your pupils, improving focus.
        
           | cerved wrote:
           | OLED
        
           | olcor wrote:
           | Just wanted to point out you might've pasted the wrong
           | snippet, which is about eBay's policies.
        
             | dehrmann wrote:
             | Oops! Thanks for the catch.
        
           | pathartl wrote:
           | In my experience light mode will work fine on things like
           | e-paper displays, but when you have an emissive or
           | transmissive display the bright light can be straining.
           | 
           | I also feel like dark mode highlights text more, making it
           | easier to identify the text. If I use light mode in text
           | editors I get completely lost very quickly.
        
           | tgvaughan wrote:
           | It never occurred to me that this could be the reason for
           | dark mode blurriness, but it makes sense intuitively. (Think
           | you mean "constricts" rather than "dilates" though.)
        
             | dehrmann wrote:
             | Yup, you're right; they constrict. I found this
             | Stackexchange post that goes into far better detail than I
             | did: https://graphicdesign.stackexchange.com/a/15152
             | 
             | The only thing I have to add is you can think of
             | constricted pupils like a pin-hole camera or a higher
             | f-number on a camera aperture. You need brighter light, but
             | the depth of field is wider.
        
           | attilakun wrote:
           | I think people might have different sensitivities to this
           | issue. Before I changed everything to dark mode, I had
           | trouble concentrating on a bright screen especially in a
           | dimly lit room. Dark mode feels like a total game changer for
           | my productivity.
        
         | Amezarak wrote:
         | I've been using the new Facebook and the interface is even
         | slower than before. It also feels (may not actually be) less
         | information-dense, forcing me to interact with the page more to
         | see the same information, compounding the problem.
         | 
         | This is on a i7 laptop.
        
           | the_pwner224 wrote:
           | > forcing me to interact with the page more to see the same
           | information
           | 
           | Product Lead to Zuck: user engagement up 5% after this
           | update!
           | 
           | Zuck: great, here's your bonus check
        
             | linuxftw wrote:
             | This is the only reasonable explanation. The user density
             | is terrible as GP said.
        
           | pathartl wrote:
           | Interesting to hear. I haven't gotten the new interface yet,
           | so time will tell.
           | 
           | I think we need to shift back to 4:3 displays. Widescreen is
           | great for consuming content, but we lose so much vertical
           | space.
        
         | neogodless wrote:
         | About every 3 minutes I went a little mad with the new
         | interface. With the old one, photos open, and you can click
         | _almost anywhere_ to close them.
         | 
         | With the new (desktop) interface, you have to find the X to
         | close the photo. No, no, not the X you find on the top right of
         | every other interface ever. This time it's on the top left!
        
           | pathartl wrote:
           | You mean they didn't just use Fancybox like everyone else? /s
           | 
           | But yeah, that's annoying. We've had lightboxes for like 15
           | years now and people still can't get it right.
        
           | TheSpiceIsLife wrote:
           | > top right of every other interface ever.
           | 
           | That doesn't sound right.
           | 
           | Mac OS and at least _some_ Linux desktop environments have
           | buttons at top left.
           | 
           | Still, I agree with your general point: why change away from
           | a tradition for little to negative benefit?
        
       | yepthatsreality wrote:
       | Facebook folded to the "quit changing the UI" crowd years ago
       | when they opened registration up beyond colleges.
        
       | gfodor wrote:
       | This is 100% incidental complexity. It's painful to consider that
       | this level of sophisticated engineering is needed to render a
       | website quickly in 2020. What went wrong?
       | 
       | I'm personally excited about things like turbolinks and phoenix
       | liveview, which may provide a path out of this mess.
        
         | janitor61 wrote:
         | The frontier of web design is apparently digital Rube Goldberg
         | machines, existing probably more for job security rather than
         | consideration for the end-user.
        
           | gfodor wrote:
           | On the contrary, it does seem like jumping through these
           | kinds of hoops has become strictly necessary if you are
           | building web apps you would like to be responsive.
        
             | cosmotic wrote:
             | Are you sure? Media queries handle layout changes font size
             | has been proportional to user agent since the beginning the
             | web. A little SCSS preprocessing makes writing complicated
             | CSS a lot easier.
        
               | gfodor wrote:
               | I didn't mean responsive in the CSS sense, I meant
               | responsive as in the "not slow to load" sense, which is
               | the point of this article.
        
           | lookdangerous wrote:
           | The all-but defacto use of javascript transpilers especially
           | invokes the image of 'Rube Goldberg' machines.
        
             | the_other wrote:
             | When you don't use transpilers, you _have_ to write ES5
             | code. No-one wants that.
        
               | saagarjha wrote:
               | Is ES5 really that bad that nobody can stand it?
        
               | goatlover wrote:
               | Even in 2020? Isn't ES6 standard now across all supported
               | browsers?
        
               | robertoandred wrote:
               | No. And "ES6" is itself a vague term. Browser support for
               | features and syntax varies considerably and changes
               | constantly.
        
               | uryga wrote:
               | that might well be, but just recently i got a crash
               | report and it turned out the user had some "unsupported"
               | version of Safari... and i'd rather transpile/polyfill
               | than be _that site_ that asks you to upgrade your browser
               | to use it
               | 
               | (funnily enough, it actually parsed ES6 stuff fine, but
               | was missing the `Object.fromEntries` method)
        
         | nck4222 wrote:
         | >This is 100% incidental complexity.
         | 
         | The article talked a lot about their new dark mode feature, how
         | they wouldn't have been able to implement it in their old tech
         | stack, and how they were able to reduce their CSS size while
         | adding a dark mode.
         | 
         | But is dark mode all that important? Even as a developer I
         | don't care at all about FB having a dark mode, did they really
         | need to rewrite their entire site to implement features no one
         | cares about? Also, for a photo and video sharing site, is CSS
         | size really important? I just loaded the page and it loaded
         | 13.2mb worth of data while making 249 requests. Thanks for
         | cutting down your 400kb CSS file though I guess.
        
           | orpheansodality wrote:
           | "I don't care about this feature" !== "nobody cares about
           | this feature." I feel like this is a fallacy a lot of
           | programmers (myself included) tend to fall into, but it's a
           | dangerous trap.
        
           | robertoandred wrote:
           | Just because you don't care about a feature doesn't mean no
           | one does.
        
           | splintercell wrote:
           | Dark mode is very important. Do you use Flux by the way?
        
             | gowld wrote:
             | Supporting dark mode == 2 bad UI instead of 1 good one.
             | 
             | f.lux works well with normal UI, replicating natural light.
        
         | dimitrisnl wrote:
         | ...but it's not a website. It doesn't list 10 cars, 1 family
         | photo and the address on the footer.
        
           | gfodor wrote:
           | take a screenshot of facebook - it's a website.
        
             | Groxx wrote:
             | I can run Linux in my browser. Is Linux a website?
             | https://bellard.org/jslinux/
             | 
             | You have to draw the line somewhere, or it becomes
             | meaningless.
        
               | gfodor wrote:
               | sure, for me the line is clearly on the side of
               | "scrolling through boxes of text and basic commenting" =
               | website, since that was the case in 1995. my point was
               | that if you took a screenshot of facebook today and when
               | it launched, other than some cosmetic improvements, you
               | couldn't tell me which version warranted extreme dynamic
               | application logic and which was just a dumb server
               | generated HTML page. the point being that it shouldn't be
               | necessary to do all the stuff in this post to get this
               | result, but it is, because our field has failed to build
               | better generalized solutions to these problems.
        
         | toohotatopic wrote:
         | >What went wrong?
         | 
         | From yesterday:
         | 
         | https://news.ycombinator.com/item?id=23101483 Hello, World -
         | Zerodha, India's largest stock broker
         | 
         | Facebook most likely has a different attitude towards software
         | development.
        
         | core-questions wrote:
         | Facebook rendered just fine a decade ago. What changed between
         | now and then, in terms of actual improvement to end user
         | experience, to make it so slow this kind of crap is needed?
         | 
         | My guess is:
         | 
         | - Desire to offload more processing to end user machines to
         | save compute
         | 
         | - More and more ads and user analytics in order to pick which
         | ads to show
         | 
         | - More engineers that irrationally hate the simplicity of PHP
         | 
         | Duct tape on top of abstractions on top of duct tape in order
         | to make a document platform behave like an application
         | platform. Isn't it time to just replace web browsers with
         | something that doesn't suck?
        
           | laggyluke wrote:
           | > Duct tape on top of abstractions on top of duct tape in
           | order to make a document platform behave like an application
           | platform. Isn't it time to just replace web browsers with
           | something that doesn't suck?
           | 
           | Be careful what you wish for. You just described native
           | mobile apps.
        
             | core-questions wrote:
             | I do prefer native apps on mobile in many cases. At least
             | the UI is idiomatic.
        
           | badfrog wrote:
           | > Facebook rendered just fine a decade ago. What changed
           | between now and then
           | 
           | It does way more things. In particular, there are a lot more
           | interactive experiences. A decade ago, it just loaded a web
           | page and nothing changed until you refreshed. Now live videos
           | and other content types have streams of comments and
           | reactions pushed to the client in real time.
        
             | dullgiulio wrote:
             | I really don't want a video to autoplay on the side of the
             | screen when I'm reading some news article, for example.
             | 
             | It was so much better before when there just were less ways
             | of doing what the website wanted and more ways of doing
             | what you wanted with your browser and your computing power.
        
               | badfrog wrote:
               | Sure, it's totally reasonable for somebody to dislike
               | these features. I just object to the claims that it
               | doesn't do anything substantially different than what it
               | did 10 years ago.
        
             | core-questions wrote:
             | None of that stuff has improved anyone's life worth a damn.
        
             | AlexandrB wrote:
             | > Now live videos and other content types have streams of
             | comments and reactions pushed to the client in real time.
             | 
             | Many of these are anti-features I'd love to be able to turn
             | off.
        
           | aeyes wrote:
           | A lot more features?
           | 
           | Facebook of 12 years ago didn't have groups, marketplace,
           | dating, live videos, stories, ...
        
             | core-questions wrote:
             | 99% of that could have been implemented fine using the same
             | technology. Live videos etc. are a scourge on the culture
             | and I wouldn't miss them.
        
           | lookdangerous wrote:
           | 'Desire to offload more processing to end user machines to
           | save compute' strikes me as a real possibility
        
             | badfrog wrote:
             | I think this is very unlikely. Making the page load one
             | second faster pays Facebook more in terms of user retention
             | and engagement than it costs them in server usage.
        
               | core-questions wrote:
               | Do Facebook users really quit Facebook because the page
               | is too slow? Maybe a minute, but one second?
        
           | AgentME wrote:
           | I don't think it's any of those. It's about interactivity in
           | the webpage. Imagine you have the template for the HTML of
           | comments implemented in PHP. Now if the user posts a comment
           | and you want to show the comment on their screen before it
           | gets to the server and back, then you need the template
           | itself on the client. The template being on the server in PHP
           | isn't any help. You could imagine the server filling the
           | template in with dummy values, and then giving that to the
           | client to fill in, but that only works for the simplest of
           | templates where a few values need to be substituted in. You
           | have to create another template language both the server and
           | client understand if you have more complicated logic like
           | many conditional or repeated parts. When you have one part of
           | the UI the client needs to render on its own, it's easy to
           | make a one-off solution for it, but in Facebook's case, I
           | imagine they have a ton of UI that they want to be server-
           | rendered but also renderable on the client. React is a
           | template system that can run on both the server and client,
           | and can live-update already rendered elements on the client
           | as the user interacts with the page.
        
             | core-questions wrote:
             | I don't have to imagine any of that, I used it. In fact,
             | it's basically how HN works now, and we seem to be
             | commenting fine.
        
             | gfodor wrote:
             | I agree with this assessment of the 'why' - and it's why I
             | mentioned things like turbolinks and liveview. What you
             | mention here seems like a convoluted solution to the
             | problem, but I realize it's how it's done, and I've written
             | thousands of lines of code doing it.
             | 
             | In fact, the original AJAX stuff in the early 00's
             | typically did a primitive version of this since it was the
             | most obvious solution during the era of server side
             | rendering: just have the server render the new comment and
             | slap it in as-is. Instead of extending the reach of that
             | concept instead we shifted towards generic data access APIs
             | and pushing all the complexity to the client, which has
             | resulted in the gigantic mess we see.
             | 
             | I remember writing a basic client-side templating system in
             | literally 2002 that naively regenerated the whole page in
             | Javascript in response to AJAX API updates - you wouldn't
             | notice unless you looked at the CPU being pegged and
             | realize your computer was useless for multitasking if that
             | site was open. It was clearly a bad idea. Little did I
             | realize at the time that the next ~20 years of web software
             | development would take that approach and just try to
             | optimize it.
        
               | core-questions wrote:
               | > Instead of extending the reach of that concept instead
               | we shifted towards generic data access APIs and pushing
               | all the complexity to the client, which has resulted in
               | the gigantic mess we see.
               | 
               | So like, fat clients done badly? I had a Usenet client in
               | 1993 that provided just as good of a forum experience as
               | we have now, in 16 bits and 4 megs of ram.
        
               | AgentME wrote:
               | Asking the server for new HTML means you can't show
               | changes until you've done a roundtrip with the server.
               | That means no optimistic rendering or immediate feedback
               | for local changes, such as a comment being made or an
               | option being set in a modal that opens up related
               | settings, etc. I think it's extremely useful to have a
               | system that allows the client to respond to changes
               | locally on its own as the default case rather than
               | treating local interactions like a strange one-off
               | exception.
               | 
               | React only re-renders the components that have their own
               | props or state change. There seems to be a popular
               | misunderstanding that React that makes you re-render the
               | whole page in response to changes, but that's not how it
               | works.
        
           | ahupp wrote:
           | I worked on FB site performance a decade ago and I assure you
           | it was abysmally slow.
        
             | core-questions wrote:
             | I used it a decade ago and it was fine for an end-user, so
             | why should I care? Raw advancements in CPU power would have
             | been enough to keep the old backend going just fine.
        
           | reaperducer wrote:
           | _Duct tape on top of abstractions on top of duct tape in
           | order to make a document platform behave like an application
           | platform. Isn 't it time to just replace web browsers with
           | something that doesn't suck?_
           | 
           | It's not the browsers that suck, it's what companies like
           | Facebook do with browsers that sucks. And then all the other
           | non-thinking middle managers in other companies who want to
           | copy these terrible things because they're incapable of
           | leadership.
        
             | core-questions wrote:
             | > It's not the browsers that suck,
             | 
             | They're great at rendering documents, yep. Applications
             | delivery platform? Not so much, not until you tack a shitty
             | language on top of it and then a bunch of crap on top of
             | that language to make it remotely useful....
        
         | gorgoiler wrote:
         | You have a ten digit user base that you need to engage, so you
         | have a four (five?) digit engineering team that somehow needs
         | to coordinate their patches in a way that doesn't cause the
         | complexity of the site to explode.
         | 
         | It's huge and pretty impressive.
        
           | gfodor wrote:
           | I never said it wasn't impressive. I was saying that it's sad
           | that this level of incidental complexity is necessary to run,
           | what is for all intents and purposes, a website.
        
             | webdood90 wrote:
             | I think you're unfairly trivializing it by labeling it a
             | "website".
        
               | gfodor wrote:
               | I think you're missing the point by assuming I'm making a
               | statement about Facebook. I'm talking about the fact that
               | this incidental complexity is necessary to do what
               | Facebook does. I don't think my description of it as a
               | website is relevant, it conveys the point that ultimately
               | it's a tragedy that to render obviously simple content to
               | users you are stuck building all this crap to make it
               | work.
               | 
               | Too many people in this thread seem to be projecting that
               | I'm somehow saying this complexity speaks poorly of
               | Facebook's product or engineering. On the contrary, my
               | point was that it's tragic that brilliant minds at
               | Facebook are forced to build all the stuff described in
               | the post just to achieve simple goals like "the page
               | loads quickly", instead of focusing on other problems.
        
       | motoboi wrote:
       | I have been using Facebook for like +10years. Facebook used to be
       | reference for speed and usability.
       | 
       | I left it ~4 years ago.
       | 
       | Last day I entered again for curiosity. It's so sad. Strange
       | interface, slow, unresponsive. It's sad.
        
         | wallawe wrote:
         | Did you try the new UI? It's a lot better but you may have to
         | opt in
        
         | reaperducer wrote:
         | _Facebook used to be reference for speed and usability_
         | 
         | On web, for a while. Remember when Facebook's iPhone app came
         | out, it was a disaster. It was so slow, I could open the app,
         | then take the elevator down to the basement of my building,
         | drop off some outgoing mail, and return to my apartment before
         | it finished updating the news feed. It was legendary in its
         | time for its slowness.
         | 
         | At first, nobody complained because there weren't a lot of
         | "apps" available. But then all the other apps came out, and
         | everyone complained for years that all the other app-building
         | companies could build responsive apps, but Facebook couldn't.
         | 
         | Then one day Facebook updated its app and it was a little
         | better. Then another update came and it was good enough, and
         | everyone stopped complaining and forgot.
         | 
         |  _Last day I entered again for curiosity. It 's so sad. Strange
         | interface, slow, unresponsive. It's sad._
         | 
         | I only use Facebook once a week, to update the page for a web
         | site I manage. It is terribly slow on web. On both of the
         | computers I use it on, loading the first page takes upwards of
         | 15 seconds. Clicking on the text field to enter a new post
         | takes eight to ten seconds for the editor to load.
         | 
         | I don't know how people who are addicted to Facebook manage to
         | use it so much without going mad.
        
           | delusional wrote:
           | Remember when they had to monkey patch the android runtime
           | because their app had too many methods?
           | https://www.facebook.com/notes/facebook-engineering/under-
           | th...
           | 
           | It's a fun hack, and I enjoy spectacle, but it might be a
           | sign that you are complicating your app more than you need.
        
             | saagarjha wrote:
             | Remember when reached the limit for __TEXT and had to put
             | code in sections that weren't really meant for it:
             | https://blog.timac.org/2016/1018-analysis-of-the-facebook-
             | ap...?
             | 
             | Remember when they were taking to long to start up that
             | they pulled stuff into a separate framework just so they
             | could meet launch deadlines:
             | https://blog.timac.org/2017/0410-analysis-of-the-facebook-
             | ap...?
             | 
             | Remember when the app had 18,000 Objective-C classes:
             | https://quellish.tumblr.com/post/126712999812/how-on-
             | earth-t...?
             | 
             | Facebook's teams somehow cannot manage their bloat and they
             | keep hiring people to hack the platform they're running on
             | rather than fixing the actual underlying problem.
        
               | plorkyeran wrote:
               | The root cause of the problem is that they have too many
               | people working on it, and that's obviously not a problem
               | you can hire your way out of.
        
               | saagarjha wrote:
               | Perhaps they should hire engineers who have the explicit
               | job of ripping out things that should not belong.
        
           | motoboi wrote:
           | Your comment made me remember being amazed by BigPipe and how
           | damn fast that made the app (still called page back those
           | days).
        
           | fossuser wrote:
           | Steven Levy talks about this in his new book (which is really
           | good).
           | 
           | Zuckerberg's focus on mobile first was a major focus to save
           | the company and ultimately a success story (this happened
           | right after the IPO).
           | 
           | Their big mistake was non-native applications.
        
           | keymon-o wrote:
           | > I don't know how people who are addicted to Facebook manage
           | to use it so much without going mad
           | 
           | That's the thing with the addiction. Once you get used to it,
           | it doesn't matter how bad it is.
        
           | jtbayly wrote:
           | On their phones, perhaps? At least we already know that
           | testing it on a computer browser is _not_ testing it for the
           | majority user.
        
       | fossuser wrote:
       | I miss information density.
       | 
       | HN is great for this and you can change enough settings on reddit
       | to get it where it used to be, but FB is really bad for it and
       | Twitter is just ok (though with the tweet deck app you can get a
       | lot on macOS).
       | 
       | In that FB screenshot you can see half of one post?
        
       | janpot wrote:
       | I don't really care about their end result because I don't use
       | facebook. But in spite of all the negative comments here, I'm
       | actually interested in how their styling solution works.
        
         | kall wrote:
         | If I had to guess, I would expect it to be similar to react-
         | native-web. They say the api is inspired by RN
         | (StyleSheet.create) and the atomic classes look similar to what
         | react-native-web produces. Also the author of RNW works at
         | facebook.
         | 
         | It's called xstyle and you can see some examples in a talk from
         | last year that presented the new tech for new faceook. I will
         | update if I find the link (can't right now).
         | 
         | Edit: starts at about 28:00 here, but the rest about
         | react+relay data fetching is interesting as well if you care
         | about that stuff
         | https://developers.facebook.com/videos/2019/building-the-new...
        
       | brailsafe wrote:
       | A browser extension that automatically filters out Karen from
       | your feed would yield better results, but they wouldn't want to
       | alienate their core users
        
       | Chyzwar wrote:
       | I like the approach to css with stylex. I hope that now linaria
       | and astroturf will get more support.
        
       | chx wrote:
       | The most irritating "feature" of Facebook is they insert
       | themselves like eight deep in the history when opening their page
       | so the back button doesn't work.
        
         | AlexandrB wrote:
         | This kind of thing is normally the domain of sites you find
         | after searching "office 365 warez". Pretty bad.
        
       | liquid153 wrote:
       | Do they still use PHP on backend. If so ick
        
         | innocenat wrote:
         | They use Hack if you really needed to know.
        
         | benbristow wrote:
         | AFAIK they use 'Hack', a language designed to be very similar
         | to PHP.
         | 
         | https://hacklang.org/
         | 
         | PHP is a lot better than it used to be now though! It's got a
         | bad rep but newer versions are fast and surprisingly modern-
         | feeling.
        
       | kichu37 wrote:
       | Faceb OMEGALUL OMEGALUL k.
        
       | thesz wrote:
       | It uses scrolling as cookie consent, apparently.
       | 
       | Which is wrong as discussed here:
       | https://news.ycombinator.com/item?id=23090393
        
       | polymorph1sm wrote:
       | I opt in when Facebook prompted me to test out the new UI in
       | Chrome browser, immediately I regretted and frustrated to find
       | the button to revert back to the old one.
       | 
       | But then I found out my "old" Safari browser wasn't supported in
       | their new fancy UI. Now I only check my Facebook once per day in
       | Safari and never sign in again from Chrome.
        
       | trevor-e wrote:
       | What I find weird about the article is that they spend so much
       | time talking about the performance of the new design, yet fail to
       | include any hard numbers comparing the old vs new
       | implementations. They do throw out a few numbers like how the new
       | page only downloads 20% of the previous 400kb CSS for the
       | homepage, etc, but I'm surprised to see no actual browser
       | benchmarks for what they claim. How else would they be measuring
       | this internally?
        
       | polote wrote:
       | Future will tell, but I do think this is a good strategic move by
       | FB.
       | 
       | FB is now seen as an app for old people and not fun at all, and
       | probably one of the reason is because of how it looks. With the
       | new design, things are more shiny, and the product now looks
       | cool. How a product is perceived has a big influence on how
       | people use it, (for example why people use snap when they can
       | send the same videos on insta).
       | 
       | I wouldn't be surprised that this is a beginning of a lot of
       | changes on FB
        
         | Panini_Jones wrote:
         | What other changes would you forecast?
        
       | [deleted]
        
       | jariel wrote:
       | Everything is in the past tense without dates. When was this
       | massive re-write? 2010? 2018?
        
         | amelius wrote:
         | Looking at the graphical design changes, they haven't rolled
         | this out yet.
        
           | rvnx wrote:
           | They did roll this new interface on some users (like me), and
           | this new experience genuinely sucks.
           | 
           | It's easy to guess what happens under the hood:
           | 
           | "Legacy" programmers implemented working solution.
           | 
           | A newcomer comes into the company, doesn't really give a shit
           | about the company because he is #XXXX, follows textbook
           | processes, has a very nice pay-check so no pressure, and
           | decides to rewrite because "code sucks".
           | 
           | A second newcomer joins, still no pressure, because he knows
           | he will get his pay-check. Tells his manager that he cannot
           | work without refactoring (it's not true).
           | 
           | 10 programmers later, you refactor code instead of producing
           | features. You can do that for all your lifetime.
           | 
           | To their defense, the FB initial codebase from the time of
           | Mark Slee or Philip Fung was not a gift but because they had
           | pressure to make revenues they were trying to do what was
           | right.
           | 
           | When you have 10 years of positive iterations regarding
           | product experience and user feedback, revamping everything in
           | a big bang boom is a terrible idea from both engineering and
           | product perspective.
           | 
           | Sometimes, full revamp are positive because the initial
           | product sucked, but when you managed to onboard a billion
           | user, it's dangerous to change their habits if you aren't
           | 100% sure it's an improvement.
           | 
           | Here, we have PO/PM pushing for change, for whatever reason
           | (engineering pressure, or they get a bonus if they deliver
           | the product, etc). Same story with all the Google Messengers.
        
             | underwater wrote:
             | This is not a big bang rewrite. All the technology here is
             | stuff that's been built over the last decade. Haste is a
             | decade old, React is 8 years old, GraphQL is around 7
             | years, Relay must by 5 years old by this stage. This is
             | simply bringing them all together.
        
         | swyx wrote:
         | theyve been talking about this since 2019
         | https://www.youtube.com/watch?v=WxPtYJRjLL0 i reckon it
         | happened over the course of 2018-19
        
       | pmlnr wrote:
       | > We knew we wanted Facebook.com to start up fast, respond fast,
       | 
       | You failed.
       | 
       | mbasic.facebook.com on the other hand, is actually fast. Oh.
       | Wait. That's no js at all.
        
       | pier25 wrote:
       | > _as little as possible_
       | 
       | I just opened FB with the cache disabled and it downloaded 5.85MB
       | (19.76MB uncompressed).
       | 
       | Most of it happens after the page has rendered, which is great,
       | but that's a lot of stuff. There are 13.74MB of uncompressed
       | JavaScript.
        
         | panta wrote:
         | Stealing data about the users as accurately as possible
         | requires more code than one would think.
        
           | dylkil wrote:
           | >Stealing data about the users
           | 
           | its not stealing when the users agreed to it
        
             | infogulch wrote:
             | Using a website does not imply informed consent.
        
               | xd1936 wrote:
               | No, but signing up for an account and agreeing to the
               | Terms of Service does. The not-logged-into homepage is
               | 1.3mb. Still not tiny, but definitely not the same as the
               | web app.
        
               | AlexandrB wrote:
               | No it doesn't. Informed consent is not the same as
               | shoving a ToS/EULA in front of someone who may not have
               | the legal or technological education to understand it or
               | its consequences.
               | 
               | From the Wikipedia definition[1] of informed consent (in
               | medicine):
               | 
               | > An informed consent can be said to have been given
               | based upon a clear appreciation and understanding of the
               | facts, implications, and consequences of an action.
               | Adequate informed consent is rooted in respecting a
               | person's dignity. To give informed consent, the
               | individual concerned must have adequate reasoning
               | faculties and be in possession of all relevant facts.
               | 
               | What tech companies do is obtain the minimum _legally
               | required_ consent - and sometimes not even that. This may
               | be legal, but it's far from ethical.
               | 
               | [1] https://en.m.wikipedia.org/wiki/Informed_consent
        
               | ianmobbs wrote:
               | Fortunately, Facebooks ToS[0] is not full of legalese or
               | jargon, and I'm sure anybody with enough technological
               | education to sign up for Facebook can understand it too.
               | 
               | [0] https://www.facebook.com/terms.php
        
         | bzb3 wrote:
         | With a standard 4G/FTTH connection that's less than one second
         | of download time.
        
           | sopromo wrote:
           | If I have to download 5mb of js for every page I visit on my
           | phone I would be out of data in less than 15 days.
        
           | edhelas wrote:
           | Everyone have 4G and Fiber, and a Core i7 and 16Gb of RAM :)
           | Seriously...
        
             | bzb3 wrote:
             | That's not what I've said, and I somewhat agree with the
             | original point, but this trend of wanting to cater to the
             | lowest denominator rubs me the wrong way.
             | 
             | Some guys think the web should be usable with a 50EUR
             | smartphone on GPRS, and I say no, because there's a middle
             | ground.
        
               | nromiun wrote:
               | How about just caring for the real world instead of the
               | numbers provided by the internet provider? Those download
               | numbers are for the best case scenario. And unlike
               | broadband 4G is not reliable at all.
        
               | pier25 wrote:
               | > because there's a middle ground
               | 
               | So where's your middle ground?
        
               | saagarjha wrote:
               | Have you read anything about Facebook's emerging markets?
               | They want to cater to those people themselves!
        
               | pathseeker wrote:
               | >Some guys think the web should be usable with a 50EUR
               | smartphone
               | 
               | You went to the other extreme though. Most people in
               | high-income countries don't even have FTTH.
        
               | ukyrgf wrote:
               | The web should be usable on a 28.8k modem from the mid
               | 90s. Why wouldn't it be?
        
               | buboard wrote:
               | There is absolutely no excuse. The app is not doing
               | protein folding, its merely showing text!
               | 
               | Surprise, many many ppl use facebook in crap laptops, fb
               | is popular with everyone.
        
               | bzb3 wrote:
               | No, it's not merely showing text. Facebook does a
               | thousand things more than show text. You could argue
               | those features don't belong in Facebook, but you can't
               | argue that features are supposed not to take up any
               | space, because that's unrealistic.
        
             | [deleted]
        
         | [deleted]
        
         | throwaway43423 wrote:
         | For reference, vscode ships as 13.3MB of uncompressed JS. (Not
         | including builtin extensions, but that wouldn't add much)
        
         | schkkd wrote:
         | That's pretty much size of a mobile app. But the thing with web
         | apps is that they are downloaded every time and hence the
         | outcry.
        
           | mgraczyk wrote:
           | Not so, refresh the page to see how large the second download
           | is (much smaller)
        
           | speedgoose wrote:
           | They aren't though. You have a cache.
        
             | the_other wrote:
             | Facebook release multiple times a day (or they did), so the
             | browser cache is irreLevant.
        
               | victorvation wrote:
               | As mentioned in the blogpost, they use code splitting and
               | bundle hashing to actually maximize usage of browser
               | cache.
        
               | randall wrote:
               | There's a bunch of ways FB mitigates this.
        
               | foota wrote:
               | I would bet that js bundling and splitting might prevent
               | that from being true?
        
               | the_other wrote:
               | Thanks siblings, for letting me know about FB's use of
               | code splitting and how it helps caching.
        
               | speedgoose wrote:
               | Perhaps but thankfully not all webapps are like Facebook.
        
               | pier25 wrote:
               | If you have code splitting many chunks will remain the
               | same.
        
       | amelius wrote:
       | Did they fix the "back" button? (I.e. if you click a link in the
       | middle of a feed, then "back", do you get back at the same
       | position in the feed?)
        
         | aeyes wrote:
         | I think the Facebook feed is completely random on purpose to
         | make it feel more up to date.If the app crashes on your phone
         | then good luck on finding a post in your feed again.
        
         | beefield wrote:
         | My guess is that they have a/b tested that if you remove the
         | item from the feed user clicked, users become "more engaged"
         | i.e. frustratingly scrolling to find the place where they were.
        
       | [deleted]
        
       | lgl wrote:
       | Can we now sanely read comment threads with several hundreds or
       | thousands of comments without clicking 200 times on "show
       | previous comments" only to then lose all "progress" if we click
       | somewhere else? Also looking at you Instagram.
        
         | marcodave wrote:
         | One minute of contemplation for those who scroll for 10 minutes
         | on mobile, to finally find something interesting to read/click,
         | just to click by mistake the back button, and the whole
         | timeline completely changed. Youtube recommendation feed also
         | terribly guilty of that.
        
       | suyash wrote:
       | There is nothing about backend here, that's where the heavy
       | lifting is done. Is that all in PHP still and GraphQL ?
        
       | raphaelj wrote:
       | Quite sincerely, it's a total failure. I got the chance to try
       | the new interface, and it's so slow that it's barely usable. It's
       | even slower than the old website, that was already painfully
       | slow.
       | 
       | Loading a random profile takes 8 seconds. Opening a messenger
       | discussion takes 6 seconds. It reminds me of the new Reddit
       | website. Facebook was more enjoyable to use 12 years ago.
       | 
       | It's really sad that in 2020, 10k+ engineers can't make a photo,
       | video, post and message sharing website that is not a pain to
       | use. We collectively failed as a profession. If one needs 2MB of
       | CSS for such a website, there is clearly a problem.
        
         | ulfw wrote:
         | Agreed. Using this on the i9 8-core 16" MBP and the thing just
         | isn't fluid. Has anyone at Facebook even bothered testing this
         | on computers people actually use? Like some 2015 Macbook Pro?
         | Or a 2014 Macbook Air or whatever.
         | 
         | I wouldn't even want to know how it runs on those.
        
           | lordnacho wrote:
           | I've got a 2015 MBP. FB is pretty sluggish, and I wonder why.
           | When you send someone a list of notifications, it's probably
           | worth getting the data ready in case they click it. And the
           | resource usage is pretty big as well.
           | 
           | The mobile app seems to be just fine though, perhaps they
           | want to push people to use that.
        
         | ngngngng wrote:
         | It really is appalling. I'm on a top of the line laptop with
         | Gigabit internet and I can't do anything on Facebook without
         | waiting several seconds for loading. Usually I only open it to
         | check notifications. I just refreshed and counted and it took 9
         | seconds for the page to load and to show my notifications.
        
         | notyourwork wrote:
         | Agree whole heartedly, Facebook is a disgrace of a website and
         | has been for years. Crazy how slow it is to load.
        
           | lancesells wrote:
           | I think you could add Twitter and New Reddit to the list as
           | well.
        
             | notyourwork wrote:
             | Yes! I use old.reddit.com and am not a twitter user so I
             | don't have much exposure there.
        
             | TechBro8615 wrote:
             | Mobile twitter website gives me an "oops, something went
             | wrong" or "you're doing that too much" error probably about
             | 50% of the time I open a link to it.
        
             | edhelas wrote:
             | In France we have a Craiglist-like website. They recently
             | moved to ReactJS : https://www.leboncoin.fr/
             | 
             | The website features didn't changed in between. It's
             | basically a pagination + a search based on radius (so DB
             | related) + name (so DB related) + categories (so DB
             | related).
             | 
             | The complete website could be build in pure HTML + CSS and
             | a bit of JS + Ajax to refresh parts of it.
             | 
             | But no, it's build with ReactJS, and it takes seconds to
             | search a simple item on it.
             | 
             | To compare, just try the same search on the Dutch
             | equivalent, MarktPlaats, https://www.marktplaats.nl/. The
             | experience is way snappier, way lighter, the features are
             | the same, and it's just HTML + CSS + a bit of JS.
             | 
             | We made a mistake with React/Vue/Angular. And we should
             | really go back and stop using those frameworks.
        
               | julosflb wrote:
               | Could not agree more. It is barely usable now. The exact
               | opposite of the original spirit. A complete failure.
        
               | amedvednikov wrote:
               | It has 96 .js scripts on a single page.
        
               | pyronite wrote:
               | This used to be a bigger deal before HTTP/2 increased the
               | number of concurrent requests to be virtually unlimited.
               | 
               | Unless I'm missing something, it's "optimal" for a site
               | to have many split files. If their JavaScript were 1
               | file, a change to a single character would mean the need
               | to re-download every bit of JavaScript. Instead, with 96
               | files, it would mean 95 of them are still cached client-
               | side and only 1 is need of downloading.
        
               | thomaslord wrote:
               | It looks to me like these scripts are asynchronously-
               | loaded components that load only once they're needed. In
               | this case it looks suspiciously like they're nested and
               | each script download causes another script to be
               | downloaded once the component renders, which would make
               | HTTP/2 a moot point. I can even watch the requests pile
               | up in the dev tools when they're cached, so my guess is
               | if they dumped everything in one file (or even 10 files,
               | just not 95) they'd get noticeably improved performance.
        
               | goatlover wrote:
               | What's the reason for redoing a website that provides the
               | same functionality? Why use an SPA for basic website
               | features?
        
               | pier25 wrote:
               | > _And we should really go back and stop using those
               | frameworks_
               | 
               | I think you are cherry picking.
               | 
               | There are plenty of examples in the modern web of
               | terrible React/etc implementations but that doesn't mean
               | the approach in itself is bad.
        
               | kolanos wrote:
               | > There are plenty of examples in the modern web of
               | terrible React/etc implementations but that doesn't mean
               | the approach in itself is bad.
               | 
               | If the creators of React can't get it right, then what
               | hope is there?
        
               | pier25 wrote:
               | React is bloated and slow, but there are dozens of
               | frameworks other than React.
               | 
               | https://krausest.github.io/js-framework-
               | benchmark/current.ht...
        
               | deanCommie wrote:
               | Please name some.
        
               | pier25 wrote:
               | Some good React alternatives?
        
               | mhoad wrote:
               | I've been plying around with lit-element lately and am
               | finding it a much simpler experience overall. Likely a
               | lot faster as well https://youtu.be/uCHZJy2n8Qs
        
               | fbnlsr wrote:
               | Thank you for this post. I yell at my screen each time I
               | have to use leboncoin.
               | 
               | It was super ugly, but it did the job. Now it's super
               | ugly, but it steals my focus at every opportunity,
               | refreshes parts of the UI I'm about to click, or has
               | select inputs that love to play hide and seek with my
               | cursor. It's a UX nightmare.
               | 
               | I must say their new payment system is nice. But boy do
               | we have to suffer when looking for something to buy now.
        
               | girishso wrote:
               | Agreed. SPAs only make sense for few websites like
               | Trello, for most other websites plain dynamic HTML with
               | dash of ajax here and there are much better.
        
               | pier25 wrote:
               | You know it's possible to use any of the modern JS
               | frameworks without SPA, right?
        
             | ljm wrote:
             | I sort of tolerated New Reddit at first, until I
             | experienced first hand their (to the user) cynical reasons
             | for doing it. Namely: throwing mobile app prompts in your
             | face, blocking some reddits unless you're logged in,
             | inserting ads masquerading as proper posts...
             | 
             | Even then, I could cope with some of it, except that they
             | just totally broke the experience with shitty infinite
             | scrolling. You can't click a damn thing and hope to go back
             | to where you left on a post. Sometimes even old.reddit.com
             | will redirect you to the new version now.
             | 
             | These redesigns would suck less if they were more about
             | being functional and not about scraping every last morsel
             | of engagement from unwitting visitors, through whichever
             | devious methods they can imagine.
        
             | troughway wrote:
             | Twitter and the new Reddit aren't in the same category.
             | Twitter is still somewhat usable.
             | 
             | Reddit, on the other hand, is an absolute clusterfuck from
             | layout and usability perspective. The choices made were not
             | made for monetary gain, they are simply really bad design
             | choices that for one reason or another have not been fixed.
        
               | mrweasel wrote:
               | Aah, the Reddit redesign. I still can't use it. I check
               | up on it once in a while, but my 7 year old MacBook Pro
               | still don't like it. It remains slow, regardless of the
               | number of times Reddit claims of have improved the speed.
               | 
               | On the phone it's even worse, a large number of subreddit
               | now require that you use the app... unless you just go to
               | old.reddit.com.
               | 
               | The point of the reddit redesign still alludes me. Sure
               | the old design isn't mobile friendly, so I can understand
               | that they would want to fix that. Then again they mainly
               | use the redesign to push the app. And the new design
               | isn't that mobile friendly anyway. Certainly not if you
               | value battery life. Comments are now also hidden by
               | default, which is just weird. But you have infinite
               | scroll, which seems to be the main selling point. I'm not
               | sure I needed that though.
        
               | v7p1Qbt1im wrote:
               | I like the redesign actually. The default view is
               | terrible, though. Once you start using classic or compact
               | view it's usable.
               | 
               | Like 80% of my reddit usage is on mobile by now, though.
               | So it doesn't matter that much to me.
        
               | pier25 wrote:
               | Totally agree.
               | 
               | It's incredible that ugly old.reddit.com with RES still
               | provides a better user experience.
        
           | notyourwork wrote:
           | Not sure why I'm being downvoted, in what way is Facebook's
           | performance not atrocious?
        
         | freediver wrote:
         | It is not a failure of the profession. There are engineering
         | teams out there that excel at software performance. Granted
         | they may not have billions of users. It is a matter of mindset
         | and core values and those are hard to change.
        
         | tambourine_man wrote:
         | Sorry, I won't take blame for that.
         | 
         | Still haven't found a use case for React/Angular or
         | SASS/whatever.
         | 
         | If I'm guilty of something is not recognizing the validity of
         | those tools, as I'm sure there are.
         | 
         | But 2MB CSS is simply inconceivable to me.
        
           | tiborsaas wrote:
           | That 2MB of CSS is legacy crap most of it they didn't use.
           | It's the hallmark of Conway's law.
        
           | seph-reed wrote:
           | React, Vue, and Angular all use a virtual DOM, which means
           | they're already deprecated 5 years from now. A virtual DOM is
           | dumb.
           | 
           | SASS, SCSS, LESS, etc are kind of great though. It sucks you
           | have to compile them to css, but you can do this:
           | .App {           .Topbar {             .Logo { color: green }
           | }           .Content {             h2 { color: orange; }
           | }         }
           | 
           | Saves a lot of time and effort.
        
             | hmcdona1 wrote:
             | Angular uses an incremental-dom not a virtual dom:
             | https://github.com/google/incremental-dom
        
               | seph-reed wrote:
               | https://github.com/google/incremental-dom#usage
               | 
               | Technically correct. The point is, it's not native.
        
           | edhelas wrote:
           | Big +1.
           | 
           | I would be really interested to find one, only ONE, website
           | where React/Angular was really bringing a better experience
           | and better final product than a standard pure JS with simple
           | Ajax system.
        
             | taurath wrote:
             | I can't help but feel like the people that feel this way
             | are people that don't build maintain and modify customer
             | focused web products for a living.
        
             | JoshuaDavid wrote:
             | I've used react for internal administrative tools for
             | configuring UI, and the ability to do a real-time preview
             | of what the UI will look like based on how you've
             | configured it is pretty useful. Also used it a number of
             | times to build form inputs that aren't natively supported
             | ("list of objects all with the same properties where you
             | can select and make a change to a bunch at once" sort of
             | thing).
             | 
             | Basically I've found that if you're doing something useful
             | which could be done with jquery but would probably have had
             | subtle bugs due to a combinatorial explosion of possible
             | states, you can usually use react in that context to make a
             | cleaner, faster, and less buggy version of that same UI
             | that is faster to develop and easier to reason about (and
             | thus better for the end user, since software that works
             | consistently is more valuable than software that mostly
             | works as long as you don't breathe wrong near it).
             | 
             | If you're looking for examples where a single-page app is
             | better than server-side-rendered HTML with some javascript
             | sprinkled in to make certain components more interactive,
             | though, I can't help you. The successful use cases I've
             | seen for react are of the "use it as the way you sprinkle
             | additional functionality into your server-side-rendered
             | HTML" type.
        
             | komali2 wrote:
             | What simple Ajax system?
        
             | __s wrote:
             | I updated openEtG to use React instead of PixiJS.
             | https://etg.dek.im https://github.com/serprex/openEtG
             | 
             | Fixed some UI bugs, made it straight forward implement
             | features like better animations & replays, performance
             | improved by removing stuff like a constant timer for UI &
             | having a global mousemove handler tracking mouse
             | coordinates
        
             | freedomben wrote:
             | better experience for who? For the developer it's a _way_
             | better experience. For the consumer it often isn 't because
             | of inefficient bloat, but if effort is put into packaging
             | it sensibly it can be better thanks to build
             | pipelines/optimizations. In my experience, there's a lot of
             | apps that would have never gotten written in the first
             | place without the boost from React/Angular/etc. It simply
             | takes way longer (which means also more expensive) to use
             | "pure javascript and ajax."
        
               | munchbunny wrote:
               | I've been doing FE development on and off since IE5/6,
               | starting out with pure JS and Ajax, and in my opinion the
               | modern FE developer experience using the major frameworks
               | is a generational improvement over the messes we used to
               | write. There are still frustrations, but it's a lot
               | better than it used to be.
               | 
               | Browser API's and CSS have all improved drastically since
               | then, so pure JS and Ajax isn't as bad. I still avoid
               | frameworks for small things just to keep pages
               | lightweight. But for heavyweight projects, if you don't
               | use an established framework, you just end up with a
               | shitty home-grown framework anyway, because the
               | alternative, teams of developers working on the same site
               | with no frameworks, is even worse.
        
               | freedomben wrote:
               | Agree completely. I'm amazed at how good pure JS is these
               | days. I only use React when I have a non-trivial UI that
               | I need to write. It's just not worth it for simple stuff.
               | That said I don't do a ton of FE work these days, so my
               | opinion is less relevant.
        
               | OkGoDoIt wrote:
               | For a certain kind of developer who drinks a certain kind
               | of Kool-Aid, sure. Personally I am a lot less productive
               | when I'm forced to work on a React codebase. It's kind of
               | like using an ORM, it can feel like it makes things
               | easier, but really you end up fighting with the
               | abstraction more than if you had just learned the
               | underlying technology itself.
        
               | jdavis703 wrote:
               | The thing is, every place I've worked that was against
               | ORMs or frontend frameworks wound up evolving their own
               | half-documented, half working framework. I find it's
               | easier to spend as much time learning the abstraction as
               | the underlying technology, and then that knowledge can be
               | ported from system to system.
        
               | freedomben wrote:
               | My experience too. The whole "we don't use a framework"
               | sounds great but it always turns in to some sort of home
               | grown framework that is poorly documented, has bugs, and
               | isn't open source so you can't take it with you when you
               | leave.
        
               | rhizome wrote:
               | Related: "I don't watch or even own a TV" [ _watches
               | Netflix /YouTube on a laptop six hours a day_]
        
               | akamia wrote:
               | You also miss out on the community aspect of things.
               | Working with a framework like React means that there is a
               | worldwide community of developers that you can tap into
               | when you run into a roadblock.
               | 
               | It is incredibly frustrating to run into an issue with a
               | home grown framework and have to ask around only to
               | discover that the person who wrote the part you're having
               | trouble with left the company 2 years ago and no one else
               | understands it.
        
             | aerovistae wrote:
             | It sounds to me like you may have never worked in a
             | codebase with thousands of JS files. On a major
             | application, organizing code in vanilla JS is all but
             | impossible. I agree it's better for a very small case, and
             | I agree react slows things down, but that's a worthy trade-
             | off for having organized, legible code.
        
             | Kaze404 wrote:
             | What makes you think React/Angular are products to increase
             | user experience? Of course you won't find that, they are
             | tools for developers to streamline development and make
             | maintenance easier. Have you worked on a _platform_ that
             | uses nothing but pure JS and fetch calls? I have, and there
             | 's no way to make sense of a project that has to deal with
             | so many things.
        
               | revscat wrote:
               | https://m.youtube.com/watch?v=F5hA79vKE_E
        
               | BoumTAC wrote:
               | why is it downvote ? This link just show you can create a
               | basic twitter like application in 10 minutes with the
               | right tool. Imagine how many hours/days it would take
               | with any JavaScript framework !
        
               | Kaze404 wrote:
               | Probably because a Twitter close isn't even close to a
               | complex application. You can build one in React/Vue just
               | as fast as you would without them.
        
               | tambourine_man wrote:
               | >they are tools for developers to streamline development
               | and make maintenance easier.
               | 
               | I'm not convinced they are successful at that either.
        
               | datasage wrote:
               | Anytime you need to stream data to or from a client, like
               | audio/video or data. Single page apps have a much better
               | experience.
               | 
               | From an architecture standpoint, it does also allow a
               | much simpler separation of concerns.
               | 
               | That said, it does it get used more often that it should
               | and can take more time to build than a multi-page app.
        
               | dralley wrote:
               | Fucking gmail, for example.
               | 
               | The new SPA version is far, far slower than the old HTML
               | version, and uses a truly insane amount of memory. I have
               | 2 gmail tabs open, and according to Firefox's
               | about:performance page, one is using 140mb of RAM, the
               | other is using 95mb, and both are at the very top of the
               | list in terms of CPU usage. Above even YouTube in both
               | CPU and memory, which is itself fairly bloated.
               | 
               | It is absolutely disgraceful.
        
               | Benjammer wrote:
               | Humans have been using physical and mental systems to
               | manage complexity for eons, I simply can't understand
               | this argument. React doesn't automatically fix spaghetti
               | code if you don't know how to organize a platform-sized
               | code base efficiently in the first place.
        
               | aerovistae wrote:
               | This is like saying "cabinets don't help organize a
               | kitchen if you don't put anything in them" -- I mean,
               | duh, you have to use it right. That's not an argument to
               | have no cabinets.
               | 
               | There's a reason nearly ALL major web applications rely
               | on a _framework_....rails, django, laravel, you name it.
               | These exist because it's really hard to organize vanilla
               | code without a framework. React and FE JS are no
               | different.
               | 
               | If you're arguing against using a FE framework to
               | organize FE code, you're basically saying "We don't need
               | frameworks in general! All code should be inherently
               | organized!" That's not realistic. It's just not feasible
               | when you have a large project.
        
               | Benjammer wrote:
               | Yeesh, you've badly misinterpreted my comment. Re-reading
               | it, I'm partly to blame here.
               | 
               | >That's not an argument to have no cabinets.
               | 
               | This isn't the point I was trying to make. I didn't mean
               | to piggy back on this part of the parent comment: "Have
               | you worked on a platform that uses nothing but pure JS
               | and fetch calls?"
               | 
               | I meant to respond to this part of the parent: "they are
               | tools for developers to streamline development and make
               | maintenance easier." I often find that the most ardent
               | React fans will see "not React" and jump immediately to
               | "spaghetti of vanilla js and fetch calls," with no
               | further questions asked.
               | 
               | I'm trying to argue against React dogmatism, I'm not
               | arguing in favor of "no framework" dogmatism.
        
               | Kaze404 wrote:
               | To be clear I'm not advocating for React on every
               | possible use case. In fact I've grown weary of it over
               | the years, but not for the reasons the comment I was
               | responding to pointed out. My point is that React makes
               | the process of organizing frontend code easier, not that
               | it's the only way to do so.
        
               | asdkhadsj wrote:
               | Well, if we take a step back from React and talk about a
               | sort of data-first approach to UIs, I think they are
               | _definitely, much_ easier than the old jQuery era.
               | 
               | Mutable state, notably knowing all possible variations of
               | said mutable state and how it relates to everything, is
               | very difficult imo.
               | 
               | Is React the best implementation of this? Definitely not.
               | It will evolve as time goes on. But I don't think I could
               | ever manage state in the jQuery mutate-everything model
               | again.
        
               | marcodave wrote:
               | > This is like saying "cabinets don't help organize a
               | kitchen if you don't put anything in them" -- I mean,
               | duh, you have to use it right. That's not an argument to
               | have no cabinets.
               | 
               | Good counterpoint. Parent comment sound too much like the
               | "TRUE programmers don't use data structures" old meme
        
             | tiborsaas wrote:
             | These are parallel things. Frontend frameworks let you
             | build more predictable and solid apps than vanilla JS.
             | 
             | Indirectly it leads to better UX since the developers can
             | spend more time on UI tweaking, than doing it vanilla.
        
             | rhizome wrote:
             | Well, one primary benefit seems to be to make loading
             | indicators/spinners into first-class components.
        
             | ummonk wrote:
             | Come on man, real programmers use assembly and roll their
             | own browsers.
        
               | brlewis wrote:
               | Assembly is a needless abstraction. Real programmers
               | create binaries with xxd.
        
               | krapp wrote:
               | Real programmers use a magnetized needle and a steady
               | hand.
        
           | TenJack wrote:
           | I agree, React/Angular front ends always seem slow and clunky
           | to me.
        
           | suyash wrote:
           | React is garbage
        
         | yagodragon wrote:
         | I can't decide whether I love or hate the UX of this new stack.
         | It certainly feels more like an app now than a website. I like
         | the new basic layout, "app shell" or tier 1 rendering. It feels
         | like the First Contentful Paint is improved and some random
         | layout shifts have eliminated. It might take a couple of
         | seconds more to load something but it appears where you expect
         | it to appear.
         | 
         | On the other hand, navigation and clicking around is still sooo
         | slow. My 60-year-old aunt called me and asked if she needs a
         | new pc because facebook makes her laptop fans spin like crazy.
         | I couldn't explain to her about all this react-redux-graphql
         | thing and frankly, she doesn't care. All she cares is that
         | facebook is slow and all she does is post photos and talk with
         | friends like she did 10 years ago.
        
         | scep12 wrote:
         | I don't use Facebook but how do you know it's not BE calls that
         | are creating the slow experience? It sounds like they rewrote
         | the FE not the entire system.
        
         | BubRoss wrote:
         | I still don't understand how the biggest websites get away with
         | being so unbelievably bloated. My guess is that most people
         | have medium to old phones and PCs that are bogged down with
         | nonsense running in the background and facebook, instagram,
         | twitter etc. run extra slow, but I guess people just put up
         | with it.
        
           | marcodave wrote:
           | people just put up with it
        
         | deadbunny wrote:
         | The new design is so laughably bad. I was trying to send a
         | message to someone on the website, it took 10+ seconds to open
         | the chat window then when typing it couldn't keep up with my
         | typing (I'm not an especially fast typer either). It was like
         | having a 5 second ping over SSH. This is on top of the (pinned)
         | tab regularly needing to be closed as it slowly takes up system
         | resources.
         | 
         | This is all on my 8core/32gb workstation. I can't even imagine
         | how much utterly useless crap they are running in JS to make
         | that kind of experience.
         | 
         | On the bright side it does mean I am weaning myself off as
         | keeping a pinned tab open is a non starter so I can't just have
         | a quick refresh. And I'll be fucked if I'm installing their
         | apps on my phone.
         | 
         | So I guess thanks needs to goto the FB engineers for making
         | their new website so utterly garbage that the tiny dopamine
         | hits driven by the FB algorithms are worth less than the pain
         | caused when using the site.
        
         | mister_hn wrote:
         | There's too much CSS and JS because of web components and too
         | many teams.
         | 
         | * team for web component A => CSS, JS
         | 
         | * Team for web component B => CSS, JS
         | 
         | And so on with 1000+ components,
         | 
         | Ends up to be a big pile of mud and everything maybe
         | duplicated, just got a different name and failed to be
         | optimised away and removed.
        
         | dewey wrote:
         | I guess they probably could build a nice and fast website if it
         | was up to them. But there's probably a lot more requirements
         | than just that.
         | 
         | Things like
         | https://twitter.com/wolfiechristl/status/1071473931784212480...
         | are probably not decided on and implemented by the engineering
         | team but are coming down as a requirement from the top. This is
         | probably the case for a lot of other decisions that slow down
         | the page ("We need this A/B test framework", "this needs to be
         | hidden to increase retention",...)
        
           | gotofritz wrote:
           | > Things like ... are probably not decided on and implemented
           | by the engineering team but are coming down as a requirement
           | from the top
           | 
           | Yeah, welcome to the real world. We _all_ have to handle
           | requirements like that, except maybe when we build our
           | portfolio site
        
           | 5cott0 wrote:
           | >Things like https://twitter.com/wolfiechristl/status/1071473
           | 931784212480.... are probably not decided on and implemented
           | by the engineering team but are coming down as a requirement
           | from the top.
           | 
           | I've always suspected that the Div-itis plaguing fb's website
           | is a result of React's dependence on the overuse misuse of
           | higher order components.
        
             | s-km wrote:
             | React components aren't a 1:1 mapping to the DOM, so you
             | could in theory have 50 HoCs wrapping a single component
             | and it still only output one div or whatever.
             | 
             | Also, HoCs have somewhat fallen out of favour over time,
             | with hooks and the child as a function/render prop style
             | becoming more popular. I think the only HoC I consistently
             | use these days is `connect` from `react-redux`.
        
               | lukevp wrote:
               | You can use hooks with redux now, so what's the purpose
               | of using connect instead of useDispatch or useSelector?
        
               | Octoth0rpe wrote:
               | Two big reasons: Values passed via connect can be
               | validated by proptypes, and by using connect you can
               | mount your component without redux. That may make sense
               | for building shared components that may be used with
               | redux in one part of your app, but without redux in
               | another part. There are a lot of smaller reasons to
               | prefer connect, but those are the big ones to me. FWIW I
               | use both approaches depending on needs.
        
             | SheinhardtWigCo wrote:
             | The extra divs are an obfuscation technique, intended to
             | frustrate scrapers and browser extensions.
        
             | tomduncalf wrote:
             | Since the <Fragment> component was introduced (React 16?)
             | excessive wrapper divs are no longer necesssary
             | fortunately!
             | 
             | Edit: not sure they ever were actually, I think you could
             | just return props.children in most cases?
        
             | 5cott0 wrote:
             | All these things can be true and yet people will still
             | frequently misuse them.
        
             | the_other wrote:
             | It's not.
             | 
             | HoCs don't add nesting. If they do, you're doing it wrong.
             | 
             | React <15 (2yrs old), did nudge you in the direction of
             | div-itis, because all components that rendered something
             | had to render a single root element. The more recent
             | versions did away with that constraint. HoCs don't even
             | need to return markup; they're functions which return
             | functions. The general expectation should be that an HoC
             | behaves like a factory for the components it wraps.
        
               | 5cott0 wrote:
               | So every React app can be effortlessly refactored to use
               | whatever shiny new latest and greatest architecture
               | abstraction React comes up with?
        
               | the_other wrote:
               | No, and FB themselves discourage this in their
               | documentation.
               | 
               | Regardless of upgrade paths, React <15 would still let
               | you use HoCs w/out adding excess element nesting.
               | 
               | I don't contest that the older React tended towards div-
               | itis if you weren't careful with how you used it. But
               | this thread was about Higher Order Components (or wrapper
               | functions), which don't have any inherent effect on
               | nesting.
        
             | BrandonSmith wrote:
             | I'm not sure why FB's site has unnecessary DIVs... But to
             | defend React, HOC or render prop techniques but don't have
             | to output DOM. In other words, every React component does
             | not map to a DOM element.
        
           | [deleted]
        
           | tenebrisalietum wrote:
           | They already did: https://mbasic.facebook.com.
        
             | andirk wrote:
             | 90's versions, like mbasic, of almost every website is
             | better. More content, less noise. Mbasic could still use a
             | flaming <hr> tag though
        
               | smt88 wrote:
               | > _90 's versions, like mbasic, of almost every website
               | is better._
               | 
               | I mostly disagree and assume this is slightly hyperbolic,
               | but I take your point. The web used to be documents, even
               | for things that needed to be apps (like email). Now, the
               | web is apps, even for things that should be documents.
               | 
               | Beyond that, the web was not the capitalist/SEO/marketer
               | battleground that it is today, where many sites have so
               | many costs behind them (devs, videos, etc.) that they
               | need a boatload of ads just to try to stay in the black.
               | 
               | In the 90s, you could have a very popular message board
               | with millions of pageviews a month for $30/mo.
        
             | stinos wrote:
             | For me on FF this is only a tiny bit faster to load the
             | main page, but way less readable and pictures are so small
             | you have to open them to be able to see what's in there. So
             | not a net positive result imo.
        
         | crazygringo wrote:
         | For me the performance seems better. It also seems strange that
         | if one of their two main publicly stated goals was to increase
         | performance (the other goal being ease of maintenance), that it
         | would slow down. Maybe you have extensions interfering?
         | 
         | Also, the set and scale of features in the Facebook app makes
         | it literally one of the most complex webapps out there. It's
         | _far_ more than just multimedia posts+messaging -- it 's a
         | marketplace, dating, games, apps, groups, pages, and more.
         | Nobody's "failing". And the 2MB of CSS was the "before"
         | uncompressed. The "before" compressed was 400 KB, and this
         | update appears to reduce it to under 80KB compressed. That's
         | _96% less_ than the 2MB you 're complaining about, more than an
         | entire order of magnitude.
         | 
         | So Facebook seems to be improving here, no? I fail to see what
         | is a "total failure" or "clearly a problem".
        
         | lawn wrote:
         | > It's really sad that in 2020, 10k+ engineers can't make a
         | photo, video, post and message sharing website that is not a
         | pain to use.
         | 
         | Too many cooks spoil the stew.
         | 
         | I might even go so far to say that 10 engineers would have a
         | larger chance of success than 10k+ engineers.
        
           | Impossible wrote:
           | This was my experience at Facebook. Attempting things with a
           | small team (or heaven forbid by yourself) was heavily frowned
           | upon because it didn't justify manager and director salaries.
           | As a result you ended up with poorly performing over-
           | engineered code bases that prefered complex, expensive
           | systems that would take multiple teams to build, but for
           | whatever reason complexity that would improve performance was
           | frowned upon. I'm sure this is common at many big tech
           | companies. I didn't work on the mainline FB app but it seemed
           | like part of the culture.
        
             | disgruntledphd2 wrote:
             | When were you there, if you don't mind me asking?
        
         | dhimes wrote:
         | I don't know if I have the new stuff or not, but I agree that
         | some parts are currently frustratingly slow to use on desktop.
         | I figured it was because so many people are spending much more
         | time on it (including, tbh, me). But I was trying to message
         | with an old friend and simple gave up a few days ago.
        
         | EGreg wrote:
         | Can you please compare the speed of https://yang2020.app/events
         | ?
         | 
         | On the mobile web or desktop, either one. (We're running it off
         | of one server, it might get the HN effect, we'll see.)
         | 
         | We have been building our own, open source social networking
         | platform and we have tried to make a lot of things more
         | efficient while doing so. The site I linked to didn't minify
         | any files or optimize images. However, it loads things on
         | demand as needed, and even lazy-loads entire components.
         | 
         | Is it faster than Facebook? We have our own component system,
         | not React.
         | 
         | Here is a site that did minify and combine all files:
         | https://intercoin.org
         | 
         | And here is the platform we used:
         | https://gitub.com/Qbix/Platform (warning: not all of it is
         | documented, but enough, at https://qbix.com/platform/guide).
        
           | discreteevent wrote:
           | I've never been on Facebook so I can't compare but your site
           | responds pretty quickly for me. Also you left out the h in
           | GitHub in your link so it goes to a domain for sale site.
        
         | benbristow wrote:
         | Twitter's new design is pretty fast. Sure, it does a lot less
         | than Facebook but it's using similar modern SPA tech.
         | 
         | Facebook is still pretty slow even on a Ryzen 3900x with 32GB
         | of 3600mhz RAM. It's a lot better than it used to be though.
        
           | snazz wrote:
           | Yeah, I think that Twitter did a pretty good job. After the
           | initial load, it even works offline, so the actual API calls
           | are the only thing that it's fetching over the network.
        
             | thomaslord wrote:
             | After the twitter update, I can't seem to get the initial
             | load of an individual tweet to work. Ever, on any device,
             | on any network. I encounter this issue on my laptop (on
             | both Windows and Ubuntu), on my desktop (also both Windows
             | and Ubuntu) and on my Android phone. It doesn't matter if
             | I'm logged in or not, I always get "something went wrong"
             | when I load the page and have to refresh at least once.
        
         | ipython wrote:
         | I agree with you; however, the key disconnect is that Facebook
         | is _not_ a photo, video, post and message sharing website. It
         | 's a marketing platform intended to extract the most value out
         | of you, the viewer, and transfer that value to Facebook and its
         | advertisers.
         | 
         | If you think of it this way, you can see how you may need 2MB
         | of CSS: to battle the bots trying to scrape your information
         | and replicate your network, to sidestep the evil developers of
         | adblocker software that threaten to destroy the sweet value
         | transfer, the JS required to track every single movement you
         | make both online and off, the A/B testing framework that allows
         | you to determine how to most efficiently extract that extra
         | 0.001% of valuable eyeball time, and so forth...
         | 
         | Connecting the world? Well, I guess that could be a nice side-
         | effect...
        
           | rhizome wrote:
           | That's probably something that can be measured: if the
           | profile/wall fills out over several seconds, when do the ads
           | appear? First, before everything else? In that case it would
           | be cynical, but I agree that they might monetize the delays
           | by ensuring ads appear before anything else.
        
             | disgruntledphd2 wrote:
             | The ads are only on the side on profile pages.
             | 
             | The actual ads on FB desktop are the newsfeed ads, which
             | you see as you scroll.
        
           | karmakaze wrote:
           | These views are aligned. A site that's fast and a pleasure to
           | use advances both agendas. It's still a failure.
        
             | radicalbyte wrote:
             | Only if there's competition. The network effect ensures
             | that there is no competition. Leaving us where we currently
             | are.
        
               | karmakaze wrote:
               | Not even, users can just 'not play' (or play less) if the
               | game's no fun.
        
               | beagle3 wrote:
               | There are many users for which it is not fun, but an
               | addiction. I have spoken to lots of people who say about
               | once a month something like "Yeah, facebook is really bad
               | for me, I just waste time and get upset", but they can't
               | stop checking it every hour, and responding to posts that
               | touch them emotionally, in either a good or bad way.
               | 
               | That's by design, of course - it benefits Facebook
               | greatly that its herd is addicted, and unlike people
               | addicted to alcohol, nicotine or other substances -
               | there's not even another supplier they can turn to: It's
               | either feed your addiction or suffer withdrawal symptoms.
               | 
               | And I think the success rate of quitters (as a percentage
               | of those who actually want to quit) is also comparable,
               | at single digit percent.
        
           | jawns wrote:
           | Imagine this:
           | 
           | A "free" ad-driven social networking site that brings in
           | gigantic revenue, but that has to pay thousands of high-
           | priced engineers to implement all of the cruft you just
           | described.
           | 
           | versus ...
           | 
           | A subscription-based, non-ad-driven social networking site
           | (perhaps operating as a member-owned cooperative?) that
           | brings in much more modest revenue but that also can operate
           | with many fewer engineers because it can be largely cruft-
           | free.
           | 
           | I know there have been a gazillion attempts at the latter and
           | none has succeeded in any way comparable to the "free" sites.
           | It's too bad, because if any of them were to ever achieve
           | Facebook scale, the subscription price would probably be
           | quite modest.
        
             | zdragnar wrote:
             | Food for thought- the value of each user is radically
             | different when accounting for geographic (i.e. income)
             | markets.
             | 
             | For subscription to work, you either:
             | 
             | 1- undercharge users from wealthier countries
             | 
             | 2- price poorer users out of you platform
             | 
             | 3- give up on the idea of worldwide adoption (Facebook
             | scale, as you say) entirely
             | 
             | 4- attempt to charge different amounts by country of
             | origin, and watch your users cheat the system mercilessly
             | 
             | 5- go freemium, and suffer the same fate that news
             | organizations do- find that far too few are willing to pay
             | to go ad-free, stick ads back into the free version, and
             | end up leaking data anyway
             | 
             | I suppose 4 might be the most feasible option, but once it
             | is obvious that some people pay more for the exact same
             | value, they are likely to assume that the product has less
             | value than it actually does, feeling that they are being
             | ripped off.
             | 
             | In short, there is probably a good reason that paid
             | services will never reach Facebook scale.
        
               | mtsr wrote:
               | What you argue here could probably be said about half the
               | companies admitted to any YC batch, and still there are
               | successes. Maybe the glass can be half full too?
        
               | zdragnar wrote:
               | I think the catch is focusing on "Facebook scale" in
               | terms of users on a social network. I am not aware of any
               | YC companies at close to their scale (or potential to get
               | there) without being ad driven, freemium or running on
               | borrowed money.
               | 
               | Small social networks are fine for what they are and, I
               | think, have much more flexible options for getting the
               | bills paid.
        
               | PaulDavisThe1st wrote:
               | 6. Option 4, but just relax about the outcome.
               | 
               | At ardour.org, we offer 3 tiers of subscriptions ($1, $4
               | and $10 per month) named to target different economic
               | conditions. We also offer a single fixed payment with a
               | suggested but editable cost based on OECD data about the
               | cost of dining out.
               | 
               | We're not trying to maximise revenue, which is perhaps an
               | important difference between us and, oh, Facebook :)
        
             | brlewis wrote:
             | > the subscription price would probably be quite modest
             | 
             | Yes. It would be set to the minimum required to dissuade
             | banned users (e.g. spammers) from continuing to create new
             | accounts. This amount would still likely be well above
             | cost.
        
             | hbosch wrote:
             | > A subscription-based, non-ad-driven social networking
             | site (perhaps operating as a member-owned cooperative?)
             | that brings in much more modest revenue but that also can
             | operate with many fewer engineers because it can be largely
             | cruft-free.
             | 
             | I, too, loved App.net. Alas, seems that people won't even
             | pay a couple bucks a month to see what their friends are
             | eating for lunch.
        
               | asdkhadsj wrote:
               | People instinctively know the value of something when
               | asked to part with their money. :D
               | 
               | Yet they still spend their time on it. Huh.
        
               | jimbokun wrote:
               | People know their friends are not on App.net, but are on
               | Facebook.
               | 
               | Or in other words:
               | 
               | https://en.wikipedia.org/wiki/Metcalfe%27s_law
        
             | ianmobbs wrote:
             | I think the biggest assumption you're making here is that
             | most people care about ads - and they don't. Fundamentally,
             | when I'm scrolling through Facebook or Instagram or Reddit
             | or whatever, I just don't care that I see ads while I'm
             | scrolling. I'm not going to pay $1/2/3/4/5 a month to avoid
             | something I don't care about, and that's really only the
             | value add of a subscription-based service. I'd also say
             | most folks don't find Facebook's data policies as egregious
             | as the tech community does.
        
               | freediver wrote:
               | I'd really like to understand how does one not care about
               | ads. To me it's like potholes on road. It would require
               | terrific willpower to ignore them.
        
               | TwelveNights wrote:
               | Although it's getting harder and harder since many
               | platforms try to blend their ads in with the actual site
               | content, I can avoid them reliably well by checking
               | metadata such as the poster, some indication that it's an
               | ad, or if the content is clearly different from what I
               | was expecting.
               | 
               | I wouldn't say it's as bad as potholes on the road, since
               | ads are more predictable.
        
               | BurningFrog wrote:
               | I'm not interested in the ads, so I don't notice them if
               | they're not shoved in front of what I _am_ interested in.
               | 
               | I can see that if you consider ads to be inherently
               | offensive, you _would_ notice them wherever they appear,
               | and be annoyed.
               | 
               | But that's not where most people are.
        
               | cameronbrown wrote:
               | People do. My dad doesn't install an adblocker because he
               | simply doesn't care. I wouldn't either if it wasn't for
               | the serious performance impact.
        
               | Dotnaught wrote:
               | Being unwilling to pay for the service suggests to me
               | that the entire experience has no meaningful value.
        
               | smadge wrote:
               | Economists have done studies where they tried to
               | determine how much someone would need to be paid to stop
               | using Facebook for a year. Maybe people are not willing
               | to pay for the service, but they would rather have the
               | service than $X.
        
               | [deleted]
        
             | maccam94 wrote:
             | Facebook's problem is that a subscription fee would
             | drastically limit adoption and prevent them from
             | monopolizing the social graph. They see more potential to
             | make money without charging users directly.
        
             | hckr_news wrote:
             | People just don't want to pay for social networking
             | platforms. We've been conditioned to think that these
             | things should be free.
        
               | dbspin wrote:
               | Perhaps it's just a figure of speech, but I feel you
               | should be challenged on the use of 'been conditioned to'.
               | I see conditioning misused as an explanation all the time
               | in tech discussions. This isn't an example of
               | conditioning, but of anchoring, which if you want to view
               | it through the lens of learning theory is an example of
               | modelling rather than conditioning. But really it's
               | better understood through the lens of behavioural
               | economics. A value has been established and normalised,
               | and other values are judged against it.
               | 
               | The reason I bring it up is that in changing user norms,
               | it's much less helpful to think about them in stimulus
               | response terms, than in terms of modelling other users
               | behavior - which itself is guided by limitations on our
               | capacity to process information, and heuristics which
               | though adaptive are poorly adjusted to the modern media
               | landscape. So people didn't flock to facebook initially
               | because they were conditioned to prefer it - they used it
               | because (in addition to offering a peek into the lives of
               | others, it was cool). Conditioning is an important part
               | of why people become addicted to the reward loops of
               | social networking sites, but it's an insufficient
               | explanation for their appeal and often misapplied.
        
               | BurningFrog wrote:
               | Well, they _are_ free, so that probably contributes to
               | that perception.
        
               | huijzer wrote:
               | I think social media is as social as sitting in a bar
               | where everyone tries to get you to listen to their
               | stories and look at their photos. To respond to someone
               | in the bar you can send a text, which they might respond
               | to somewhere in the future. Therefore, I am not planning
               | to pay for it, since it is not adding (much) value to my
               | life.
        
             | eitland wrote:
             | > I know there have been a gazillion attempts at the latter
             | and none has succeeded in any way comparable to the "free"
             | sites. It's too bad, because if any of them were to ever
             | achieve Facebook scale, the subscription price would
             | probably be quite modest.
             | 
             | MeWe is freemium (paid extra stickers and storage) and is
             | actually nice, at least the parts I've seen, a lot like
             | Google+ - a friendly neighborhood full of photographers,
             | chili enthusiasts etc.
             | 
             | Of course most people are going to go with twitter, but if
             | you'd like something more like Google+ or what Facebook
             | could have been you might want to try MeWe.
        
           | rosstex wrote:
           | Unfortunately, you're right.
        
         | js2 wrote:
         | I wonder if they fixed the bug where if you visit the site with
         | Safari on an iPad, when you try to type a comment, every space
         | becomes two spaces. Also, I wonder if paste (command-v) is also
         | randomly blocked at times.
         | 
         | I use mbasic.facebook.com as much as possible. Occasionally
         | I'll use m.facebook.com. I've had the mobile apps uninstalled
         | for ages.
        
         | x3blah wrote:
         | Does the compensation of those "engineers" reflect that they
         | have "failed"? Perhaps there is another way to evaluate the
         | work, not from the perspective of the user waiting in front of
         | a screen. Do not forget that the money to pay the salaries of
         | those who do this work does not come from users.
        
         | smhinsey wrote:
         | All this and the chronological sort mode is still totally
         | broken. Third post in my feed is 3 days old followed by one 2
         | hours. Total joke.
        
           | jaywalk wrote:
           | They really don't want you sorting chronologically. That
           | negates The Algorithm(tm).
        
         | strictnein wrote:
         | Remember when working at a FAANG company was supposed to be
         | some mark of pride?
        
         | asumandiras wrote:
         | > If one needs 2MB of CSS for such a website
         | 
         | The 2MB was for the old site. The new site loads 20% or 400KB.
        
         | tarsinge wrote:
         | I haven't tested but I doubt the problem is with the CSS, is
         | it?
        
         | gkoberger wrote:
         | I'm not a Facebook (the company) apologist by any means, and
         | only use it because there's a few groups on it relevant to a
         | company I own.
         | 
         | That being said, I find the new FB to be insanely fast. I don't
         | even block ads on it.
         | 
         | I do agree Facebook was way better 12 years ago (I saw real
         | updates and photos about friends, rather than companies and
         | ads). But speed right now hasn't been the problem.
        
         | todd3834 wrote:
         | At a company I used to work for, we worked so hard to make sure
         | our web app would load extremely fast... just to end up losing
         | the battle with the data and analytics team for analytics
         | scripts. They used a tag manager (tealium) which by itself can
         | be used for good but it ultimately gave the other team the
         | ability to overload our site with 3rd party scripts.
        
         | virvar wrote:
         | Really? I really like it. I almost solely use Facebook to
         | organise blood bowl matches, so it's a lot of group chats and
         | events, and it's so much better than the old design.
         | 
         | I haven't noticed it being slower either, it's certainly not
         | fast, but it's not really something I notice either.
        
         | hindsightbias wrote:
         | Looking at the internet today, I think we need to lower our
         | expectations and be realistic. At least in the US.
         | 
         | We are still driving 60mph on freeways and what trains we have
         | do not travel at 300kph.
         | 
         | Perhaps many of us flipped out when we only had 9600 baud
         | modems, but you could get up, brew some tea, walk the dog, or
         | read a book while waiting for a page to load. We all had so
         | much more patience back then.
         | 
         | Why do we need instant gratification with FB and other social
         | media? Maybe, or maybe not /s.
        
           | goatlover wrote:
           | Because the underlying computing technology has gotten so
           | much faster, unlike the case with cars and roads.
        
             | saagarjha wrote:
             | And computing technology is not beholden to oil/car
             | interests and NIMBYs.
        
         | SN76477 wrote:
         | I wish they would just give us APIs and let us build our own
         | experience.
        
           | cjhopman wrote:
           | I'm curious what your response to the Cambridge Analytica
           | stuff was? Open APIs to build your own experience are like
           | 100 times worse than that, at least the APIs that CA used
           | were limited (such that they didn't provide enough info to
           | actually recreate FB) and required CA to sign a developer
           | agreement with FB to restrict how they could be used.
        
           | OkGoDoIt wrote:
           | But then how would they force us to look at ads? How would
           | they keep all their valuable data locked in their walled
           | garden? Sadly I don't think we're ever going back to the
           | glory days of open APIs.
        
         | sktrdie wrote:
         | You're missing their main goal: having an easier-to-change
         | codebase.
         | 
         | Apparently this is way more economically rewarding than
         | performance for Facebook.
         | 
         | With that in mind, who cares if the site is slow (btw this is
         | the only complaint of your rant). If the software requires a
         | few devs to change and a few eyes to maintain, they can
         | literally scale as much as they want. And actually now they're
         | probably in a way better position than they would if they had
         | developed a super performant but unmaintainable site.
         | 
         | The quote, premature optimization is the root of all evil, is
         | still very much valid imho.
        
         | taway555 wrote:
         | I'm not sure what your setup is, but 8 seconds to load a
         | profile is not my experience. It takes less than a second here.
         | 
         | This is an anecdotal datapoint that is insanely useless in the
         | real world, but the fact that it is the top comment is typical
         | of this site.
        
         | jseliger wrote:
         | _Facebook was more enjoyable to use 12 years ago_
         | 
         | We'll see what the data show. I have been reading comments
         | about Facebook's supposed decline for as long as I've been
         | aware of Facebook and yet their published numbers continually
         | show greater engagement. https://jakeseliger.com/2018/11/14/is-
         | there-an-actual-facebo...
        
           | detaro wrote:
           | Engagement isn't just driven by "enjoyability", so that's not
           | a particular convincing counter-argument.
        
           | mnd999 wrote:
           | There's a lot of fake profiles though and I think a lot more
           | than they're prepared to admit. Even brazen binary options
           | trading scam profiles don't get removed - it appears that
           | they're happy as long as the number are going up.
        
             | ben_w wrote:
             | They're trying to police 2.5 billion accounts with 45
             | thousand employees (including HR, developers). I'm not
             | surprised they stuck. Don't get me wrong, it's not OK for
             | them to suck, but I'm not surprised given the 55,555:1
             | accounts:staff ratio.
        
           | aguyfromnb wrote:
           | > _and yet their published numbers continually show greater
           | engagement._
           | 
           | Do you think this might have anything to do with the fact
           | that, as an advertising company, it's crucial that they are
           | able to tell companies that engagement is increasing?
        
           | slipheen wrote:
           | I've seen people in the past make the mistake of correlating
           | "Enjoyment" with "Higher Engagement", but you want to be
           | really careful there.
           | 
           | For example - Flame wars increase engagement, even if people
           | feel drained and frustrated afterward.
           | 
           | I understand why it's a useful metric - It's particularly
           | valuable if your business model depends on time-on-site to
           | sell ads.
           | 
           | But I wouldn't recommend them as a proxy for enjoyment by any
           | means.
        
           | [deleted]
        
           | duckfruit wrote:
           | The unquestioning supplication at the alter of 'engagement'
           | (a sterile marketing term if there ever was one) is what lead
           | to where we are now in the first place. This is an affliction
           | that pervades the entire consumer internet sector, but the
           | folks at facebook seem to have refined it to its fullest
           | potential.
           | 
           | The other day I got a facebook notification on my phone,
           | which said something along the lines of "You have 4 new
           | messages". Of course, thinking it was from my friends I
           | opened the app to look at them. 3 of my 4 "messages" were
           | notifications for friend requests from people I had never
           | met. The last one was a photo someone had posted of cake
           | she'd baked (not to me specifically, just in her feed). To
           | someone sitting at her desk at facebook, looking at an
           | engagement metrics chart, the notification would seem to have
           | served its purpose - another data point, another person
           | enticed to open the app in response, engagement maximized.
           | But of course, this was deception. I found this experience
           | distasteful enough to disable notifications entirely -
           | probably another data point for their metrics team - and
           | annoyed enough to complain about in an HN comment.
        
             | strictnein wrote:
             | The new "Person X has posted a photo" notifications are the
             | worst. Their abuse of the notification icon is getting
             | ridiculous. It used to be focused on when someone
             | interacted with something you had done, now it's just used
             | to drive "engagement".
        
           | muglug wrote:
           | I would be very surprised if engagement wasn't down among
           | Americans under 50 - it may well be counteracted by growth in
           | other markets and in other apps (especially Instagram), but
           | there's _much_ less activity on Facebook.com from my peers
           | than there were five years ago.
        
         | SheinhardtWigCo wrote:
         | The 2MB of CSS is needed to justify that headcount.
        
           | robertoandred wrote:
           | Where are you getting 2MB from?
        
             | agluszak wrote:
             | "On our old site, we were loading more than 400 KB of
             | compressed CSS (2 MB uncompressed) when loading the
             | homepage, but only 10 percent of that was actually used for
             | the initial render. We didn't start out with that much CSS;
             | it just grew over time and rarely decreased. This happened
             | in part because every new feature meant adding new CSS."
        
               | robertoandred wrote:
               | Read the first four words.
        
         | suyash wrote:
         | Let's not even get started with thir mobile apps, horribly
         | large in size, poorly engineered (performance) and privacy
         | loopholes are everywhere (perhaps by design).
        
         | freepor wrote:
         | Facebook isn't trying to maximize your enjoyment, they're
         | trying to maximize their profits. By that measure they are
         | doing vastly better than 12 years ago.
        
         | robertoandred wrote:
         | Where did you get 2MB from?
        
         | kick wrote:
         | The _problem_ there is that  '10k+' "engineers" are _trying_ to
         | make _the same_ 'photo, video, post and message-sharing
         | website'.
         | 
         | It's a structural problem and little more: the website (and
         | app) is their main money-maker, so they're going to give it a
         | disproportionate amount of resources.
         | 
         | Imagine you hire ten thousand people to lay one railroad track.
         | [note; see end of post] If any single one of them doesn't
         | contribute directly in some way, you'll fire them. This seems
         | kind of strange, doesn't it? Sure, it probably requires more
         | than a single person to lay a track. But _ten thousand_ people
         | to lay one? How is that supposed to work, mechanically? This
         | would be enough to warrant shareholder revolt.
         | 
         | Now, the railroad track gets broken a few hundred times, maybe
         | they hammer it enough to make it twice as long, whatever. It
         | now no longer resembles a railroad track. Certainly no train
         | could go across it. Send a few hundred people to go ask the
         | managers of this project for a replacement track. Okay, we're
         | now at...maybe a tenth of people having contributed? Repeat
         | this process until everyone's contributed. Maybe the manager
         | gives different groups different materials for the track to
         | fuck with them, whatever. But somehow, every single person
         | manages to not get fired.
         | 
         | What's the outcome look like? You have a single railroad track,
         | probably not even well-fit for the job (sparks fly whenever
         | trains run on it; maybe it causes them to tilt, so on), but
         | it's laid! And ten thousand people are employed!
         | 
         | It's the same thing with a website. You can't put a terabyte
         | onto a user's device every single time they load your website;
         | you just can't. So you have a window of performance you have to
         | hit. Between _ten thousand_ people trying to have things thrown
         | onto user devices? Good luck making anything resembling
         | 'decent'.
         | 
         | It's the same problem that Dave Zarzycki noted in his talk
         | about launchd[1], but _worse_. Instead of 512 megabytes shared
         | between some random abstract parties you can basically ignore,
         | it 's <10MB shared between ten thousand coders, translators,
         | graphic designers, users, managers, etc. Does something seem
         | strange about this?
         | 
         | [note]: This is the appropriate comparison here; at the scale
         | of 'Over ten thousand people working on one program', it's
         | grunt work, not art, science, or even _programming._ There 's a
         | word for implementation-grunts that's fallen out of favor in
         | the past few decades: coders. This was seen as distinct until
         | recently.
         | 
         | [1] https://youtu.be/SjrtySM9Dns?t=255
        
           | soedirgo wrote:
           | I don't know how many people FB actually allocates for their
           | main app, but this reminds me of a chapter in The Mythical
           | Man-Month. It is said over 1000 people and 5000 man-years
           | went into OS/360. I don't see it anywhere today.
           | 
           | Instead, the book proposes The Surgical Team, i.e. about 10
           | people taking specialized roles, with the system being the
           | product of the mind of a few key people. I wonder how well
           | this aged.
        
             | kick wrote:
             | Fred Brooks was accurate about most things, yeah. It's hard
             | not to envy him; he got to work with (and write a book
             | with) _Ken Iverson_. Can you imagine? People back then
             | really had all the luck!
             | 
             | ...at least as far as computers go, anyway.
        
         | HumblyTossed wrote:
         | > Quite sincerely, it's a total failure. I got the chance to
         | try the new interface, and it's so slow that it's barely
         | usable.
         | 
         | Were you using a machine with a gigabit connection, 32GB RAM,
         | and 10th gen intel cpu like the devs?
        
         | starpilot wrote:
         | Comments like these remind of an old post on Slashdot, "What
         | makes a good website?" Ask "geeks" what they prefer, it's
         | usually minimalism, no images, consistent text styling. In the
         | end, the ideal format becomes a text file without markup. I
         | think we need to accept the opinions of techies are
         | increasingly irrelevant in tech. It's like being fine artist
         | getting paid to design flyers or a chef making burgers.
        
           | raphaelj wrote:
           | Wrong. The average user does not give a shit if the page is
           | rendered server-side, or of it's a SPA.
           | 
           | Geeks prefer speed, like everyone. There are plenty of papers
           | that show that a reduction in latency improves the conversion
           | rate. And it's does not have to be ugly to be fast.
        
           | umvi wrote:
           | Geeks prefer function over form
           | 
           | Consumers (apparently) prefer form over function (or at
           | least, they are more easily fooled into thinking the more
           | form, the more function)
        
             | mellow2020 wrote:
             | I prefer form to _follow_ function. Make it as pretty as
             | you can, but not at the expense of the function.
        
           | notyourwork wrote:
           | Performance need not be coupled to idea of minimalist design.
           | A performant website can still look like Facebook and not
           | take 5000 ms to load.
        
           | _jal wrote:
           | First, that's just wrong.
           | 
           | "Geeks", as a class, will tend to focus on technical issues
           | before aesthetic ones. Looking at that fact and immediately
           | equating it to an absurd extreme is a fun game, if you don't
           | care about describing reality. I know some accomplished
           | engineers who are also good designers, and vice-versa.
           | 
           | Second, if my professional opinions are not being taken
           | seriously, that usually means one of two things: I'm too far
           | out over my skis, or am in the wrong place with the wrong
           | people. Especially so if you feel like a chef making burgers.
           | 
           | Of course, if "in total control" and "irrelevant" are the
           | only two states of being one sees, I suppose I see how you
           | get there.
        
           | function_seven wrote:
           | Everyone hates slow webpages. Not just geeks. We can all
           | argue over whether minimalism or eye-candy is preferred. But
           | if your site feels like running in mud, it's frustrating
           | regardless of the design.
           | 
           | And all these SPA, client-side rendered, sites seems guilty
           | of this. You navigate to a page, and it loads up "instantly",
           | except you see nothing but gray placeholder images. Then
           | content starts loading in, but haphazardly. You see a link
           | you want to click, and you go to click it, when BAM! it jumps
           | down 37 pixels because some stupid widget just loaded above
           | it on the page.
           | 
           | I really hate the modern web. Not the look of it, or the
           | styling. The mechanics and slowness.
        
             | ravenstine wrote:
             | I hope we someday enter a period of reform where our field
             | begins to apply more rigor to our process. We have the
             | tools to make a fast, sleek web. The process is very, very
             | broken from an engineering perspective. The money seems to
             | never stop, which is why businesses can burn through
             | developers without too much regard to whether they are
             | doing the right things. Maybe that can't be fixed, because
             | the people in charge are going to keep the status quo going
             | if the money is coming in and they're made to look good.
             | Optimization is a risk that companies of even modest size
             | find to be too great.
             | 
             | Or perhaps people involved in a revamp/redesign/unification
             | should be well compensated to the point where they are
             | unlikely to leave in the middle of a multi-year project. I
             | have a feeling based on my experience that a lot of these
             | bad rebuilds are a result of too many engineers and
             | designers coming and going.
        
           | hn_throwaway_99 wrote:
           | But, perhaps ironically, Slashdot was killed because its
           | design updates made it more "designer-y" but much less
           | usable. I remember one update in particular that added a ton
           | of whitespace, gave it a "cleaner" look I guess, but it meant
           | there were like 1/4 of the posts on the screen so it just
           | took longer to peruse the comments. They also f'd up how they
           | showed voting so it became much harder to just scan for
           | popular comments and valuable discussion. I remember going to
           | Slashdot pretty much daily and after that update just said
           | screw this, will have to find something else.
           | 
           | Design updates can be useful, but just like for engineers,
           | "beware lots of highly paid people looking for something to
           | do".
        
           | jhhh wrote:
           | It's Facebook's own standard: "We knew we wanted Facebook.com
           | to start up fast, respond fast, and provide a highly
           | interactive experience.". The person you're responding to is
           | saying they haven't met their own metrics for success based
           | on their experience. You can't really attribute this
           | "preference" solely to them.
        
       | suyash wrote:
       | Atomic CSS is a bad idea, read more here
       | https://www.browserlondon.com/blog/2019/06/10/functional-css...
        
         | axyz wrote:
         | nowadays is quite rare to write classes in pure html, using any
         | framework like react, vue and similar we are used to pass
         | classes in a JS environment. Obscure and minified class names
         | can be imported from a package using a perfectly meaningful
         | name, also the same set of classes can be exported with many
         | different names to even better usage specificity with no cost
         | in size.
         | 
         | We overcome most of those issues using a mix of postcss compose
         | and css modules with a custom hashing solution based on the
         | actual css rule content, this allowed us to have virtually
         | infinite semantically named components with a css bundle size
         | that tend to stabilize around 20/25kb gzipped for a very big
         | e-commerce use case and I doubt any other use case would go
         | much higher than that size.
         | 
         | https://github.com/utilitycss/atomic If you want to have a look
         | (documentation needs some love, but the samples generated by
         | the init do give a good idea of the concept)
        
       | jedberg wrote:
       | I can't remember the last time I loaded FB on a computer. At this
       | point it's clear that they care far more about the mobile
       | experience than the desktop. Even if I'm sitting at my computer
       | I'll still use my phone for FB.
        
       | 29athrowaway wrote:
       | I don't like it.
       | 
       | Round borders with misplaced text, cannot go to a specific time
       | on my timeline anymore, does not feel very responsive.
       | 
       | Overall, the UI does not look very appealing and feels like a
       | downgrade.
        
         | crocodiletears wrote:
         | Reminds me of the new Chrome UI. Not a fan of this soft,
         | rounded-off aesthetic that seems to be spreading about.
        
       | whalesalad wrote:
       | The use of Monokai is so off-brand for FB.
        
       | [deleted]
        
       | polote wrote:
       | > We knew we wanted Facebook.com to start up fast, respond fast,
       | and provide a highly interactive experience.
       | 
       | And we forgot about it while developing it, this is just common
       | mistake in product management, when projects are not iterative,
       | things are so long, that you even forget why you are doing them
        
       | vosper wrote:
       | I saw no mention of Reason or ReasonReact. I thought they rewrote
       | Messenger in Reason, and so I figured facebook.com would be next.
       | Did Reason fall out of favor or something?
        
         | dgellow wrote:
         | Was Reason ever more than an experiment?
        
           | vosper wrote:
           | ReactReact just had a release (0.8) a few days ago, so it's
           | apparently not dead
           | 
           | https://github.com/reasonml/reason-
           | react/blob/master/HISTORY...
        
           | frou_dh wrote:
           | The repos have some activity, but it looks bad that the most
           | recent post on the official blog was in August 2018.
        
         | swyx wrote:
         | lol no, "Did Reason fall out of favor" does not logically
         | follow from "I figured facebook.com would be next". you were
         | simply too optimistic on Reason.
        
         | rickyvetter wrote:
         | Hey - maintainer of ReasonReact here. We don't believe in
         | mandating the tools that people use and there are plenty of
         | good reasons to use TS, Flow, PureScript, Rust, etc. Folks on
         | the Messenger Web team in Facebook like Reason as their
         | language of choice. Reason is used heavily on Messaging code in
         | the old facebook.com and in this rebuilt version.
         | 
         | The rebuilding of facebook.com was done quickly and involves
         | almost every web team at Facebook. Almost all of these folks
         | are familiar with Flow and only some are familiar with Reason.
         | Asking every engineer at FB to learn Reason at the same time in
         | addition to the already massive number of new things would have
         | been adding unnecessary risk to this already incredibly risky
         | project.
        
       | longlho wrote:
       | There doesn't seem to be any mention of actual KPIs/metrics
       | changes in the relaunch?
        
       | 3PS wrote:
       | I'm actually really surprised by the number of comments in this
       | thread about how the new redesign is slower. I've had it since
       | yesterday and it genuinely feels much faster and more responsive
       | than the old Facebook UI - though, to be fair, that's not a huge
       | accomplishment give that the old UI would take forever to finish
       | painting or respond to input. I'd consider it a success,
       | especially when compared to the disaster that was and continues
       | to be Reddit's redesign.
        
         | kylemh wrote:
         | I even used network throttling to do Fast 3G and it's still
         | taking like ~3 seconds at _most_ for everything.
        
         | elboru wrote:
         | I guess it's optimized for some computers/networks but not for
         | others. Right now I'm in an area without optical fiber so I
         | have to use a 4g modem (12 MBps), I have an old 2013 MacBook
         | Pro and even though my setup is far from being fast, I have no
         | problems with most web pages, some few load kinda slow, but
         | Facebook is in a different category, it's totally unusable,
         | some stuff never even get to load. If I want to check Facebook
         | I have to use Safari (the new theme is not supported in Safari
         | yet).
        
         | otabdeveloper4 wrote:
         | Try it with a normal computer for normal people, not with your
         | monstrous 'developer machine'.
        
           | vbezhenar wrote:
           | Do you mean 2007 year CPU constantly throttling because of
           | kilograms of dust on Windows 7 full of malware swapping on
           | HDD?
        
           | Udik wrote:
           | Just tried it on my 2012 $1k laptop. 2s for full page load;
           | about 1s to load up a chat, about 1s to open a friend's
           | profile.
        
         | runawaybottle wrote:
         | Let's go on this tangent, why _is_ Reddit's frontend so
         | sluggish and lacking quality of life improvements that should
         | be in place by now?
         | 
         | Surely they are hiring world-class devs, so what's holding them
         | back?
        
           | fbthrowaway42 wrote:
           | > Surely they are hiring world-class devs, so what's holding
           | them back?
           | 
           | Facebook Engineering has a notorious "not invented by me"
           | culture, it's not unique there but a lot of our "world-class"
           | engineers are just acting economically rationally and hole-
           | digging on some new bespoke framework or tool to cement their
           | position in the company. You end up with a massive amount of
           | churn and over-engineered vanity projects, and it's
           | manifesting downstream in basically every product we've
           | turned out for the last five years. That's why the
           | applications bloated and terrible.
           | 
           | The joke inside the company is that it used to be "move fast
           | and break things" but now it's "breakfast, vest and move
           | things around". It's really an engineering culture of
           | decadence and waste these days.
        
           | dpau wrote:
           | It's by design. Reddit doesn't want you using the website.
           | They want you to download the app. As numerous annoying
           | popups and notifications will tell you when visiting the
           | website (especially on mobile).
        
           | rrdharan wrote:
           | > surely they are hiring world-class devs
           | 
           | What makes you think that?
           | 
           | Reddit seems like a place where the kind of experienced and
           | talented people needed to turn it around could make a lot
           | more money (via stock grants in addition to salary) and
           | frankly have a lot more impact, at any of FAANG.
           | 
           | I've not seen anything to indicate that Reddit is hiring, or
           | trying to hire, "world-class devs".
        
             | d23 wrote:
             | Well first, don't just blame the engineers. The company has
             | to actually prioritize making a functional product.
             | 
             | Ultimately, reddit made no attempt to lean into the the
             | thing that might attract world-class people to come there:
             | a passion for the product. Or, at most, any attempts made
             | were surface level. Some of the best engineers I've worked
             | with are at reddit. They just happen to be outnumbered, and
             | some have golden handcuffs on.
        
         | basch wrote:
         | Across mobile messenger, messenger.com and the messenger
         | desktop app, the website was the only place left where you
         | could have multiple chats open at once. Now that moves to one
         | at a time as well. That is a huge usability regression (unless
         | its been fixed since last time I tried the prerelease. Edit:
         | Just switched back, it does look like they maintained chat
         | windows at the bottom instead of just chatheads on desktop,
         | although I can still only have two chats open at once.) Friend
         | lists also got left with the legacy interface, which cant bode
         | well for them in the long run. They are still facebooks most
         | squandered opportunity.
         | 
         | The neverending quest to reduce information density is a
         | usability disaster, despite the misheld belief that cleanliness
         | = usable. Zooming out on the new fb interface, to restore some
         | information density, leaves a comical amount of whitespace.
         | Wells Fargo has turned its desktop interface into a giant
         | stretched mobile app. Nothing is hyperlinks that support right
         | click or new tab anymore.
         | 
         | https://medium.com/signal-v-noise/why-i-love-ugly-messy-inte...
         | 
         | The cluster f of the old old facebook interface was beautiful.
        
         | dhimes wrote:
         | Are you using desktop of phone? I've found the desktop quite
         | slow lately- I thought it was probably due to high usage.
        
         | willio58 wrote:
         | I may be the only one here that thinks Reddit's new design is
         | fine now. At first, it was buggy and sluggish. Now it is fine.
        
         | vbezhenar wrote:
         | Yep, works fast for me too. Random profile opens in 2-3 seconds
         | max for me. But for some people websites are slow for some
         | reason. I've heard complains about Gmail loading 30 seconds,
         | while it takes 2-3 seconds cold start for me.
        
           | hetspookjee wrote:
           | I don't understand how you think a 2-3 second load time is
           | "fast" for such an enormous platform and the actual content
           | the user sees. I sure get that Facebook is way more than
           | that, but to think a page loading in 2-3 seconds is fast is
           | something you could've gotten away with in 2000, but in
           | 2020..? I genuinely don't understand why you find it quick.
        
             | vbezhenar wrote:
             | Almost every fast website works with that speed for me. I'd
             | like microsecond speed, but when there are websites which
             | truly take 10+ seconds to fully load, 2 seconds is fine. I
             | think that for me 5 seconds is when I'm getting a little
             | bit worried about loading speed, less than 5 seconds is
             | acceptable. Hacker news works only a little bit faster.
             | 
             | That said, I live in Kazakhstan and my typical ping to EU
             | is 100 ms, so that might make my experience a little bit
             | worse (it's 100 Mbps in theory). May be those who connect
             | to those resources with 1 ms latency are getting much
             | better typical experience, I don't know about that.
        
             | Kinrany wrote:
             | My guess is that Facebook is popular enough that they are
             | not optimizing for first impression.
        
               | disgruntledphd2 wrote:
               | That's true, but they (apparently) _used_ to care deeply
               | about how long it took you to post something.
               | 
               | They've probably just accepted that consuming is more
               | popular than producing, though.
        
         | baddox wrote:
         | Considering Facebook engineering has gone into detail about how
         | the new site is much faster and transmits much less JS and CSS,
         | I would be a little surprised if the opposite is true. I tend
         | to not implicitly trust HN comments about things being
         | extremely slow, because for whatever reason there are so many
         | of these complaints I've never experienced myself. I still
         | haven't even had performance problems with Electron apps, and
         | those seem to be widely panned on HN as having abysmal
         | performance. They work fine for me.
        
           | tincholio wrote:
           | For me, it is decidedly slower and clunkier
        
       | atlgator wrote:
       | Advancing technology doesn't make up for destroying humanity,
       | IMO. Fuck Facebook.
        
       | aboringusername wrote:
       | For me, I consider the real test for a website's performance to
       | be how it reacts under JS disabled conditions. Using NoScript has
       | completely changed the way I use the internet. Combine that with
       | DoH and filtering and you can remove a large part of the jank
       | that fills browsers needlessly.
       | 
       | It's a delicate balancing act, but it puts _you_ in control.
       | Sometimes it 's just not worth the hassle, and I suspect it's why
       | you see many comments like "just read the f* article", except
       | sites are so slow and cause so much rendering and CPU cycles it's
       | just an abuse of the platform.
       | 
       | Websites are capable of serving text without JS being required.
        
         | Drip33 wrote:
         | With increasing adoption of reCaptcha v3 which won't let you
         | browse on any page without Javascript, it will become harder
         | and harder to use the internet with NoScript enabled.
        
         | encom wrote:
         | I've tried several times to get used to NoScript, but there's
         | just too much friction in day-to-day usage. I already get
         | regular breakage due to agressive uBlock configuration.
        
       | dopamean wrote:
       | I don't think there's a single piece of software (if you can call
       | facebook's website a piece of software) that I've used longer
       | than facebook.com. I was one of the earliest users in 2004 and
       | have had an account the entire time. It's really interesting, in
       | sort of a morbid way, to see how it really has become a shittier
       | experience every year. I'm sure it's hard to get right and I
       | wouldn't claim to know better than them but it is quite amazing
       | that they have so many engineers being paid so much money and the
       | product from a usability standpoint manages to get worse. I
       | really think that will be their ultimate downfall one day.
        
       | aylmao wrote:
       | A big point of contention in the comments here lies around the
       | concept of what a website should be.
       | 
       | A school of thought in web development believes the web to be the
       | next frontier in application development. For them it makes sense
       | that websites like this feel and act like apps, both as an end-
       | user (animations, transitions without full-page reloading, rich
       | dynamic content, etc) and as a developer (client-side state
       | management, frontend/backend separation, with an API in between,
       | modular application structure, etc).
       | 
       | Apps don't load in 10ms, but they also can support some offline
       | functionality given their independence from the server.
       | Overriding browser behaviour and managing your own loading
       | behaviour makes sense, because the default browser behaviour is
       | not the experience you're striving for; it's not the app
       | experience. These people are usually those who have worked on
       | large web projects too-- the developer experience that web
       | developers have built for themselves in "userland" (JavaScript)
       | is pretty good, and has evolved a lot to have features that makes
       | developing the exact behaviour you want easier, and correctly
       | iterating on a codebase, quicker.
       | 
       | A separate school of thought wish websites stayed true to their
       | origins as enriched documents, and think trying to evolve them in
       | the direction of applications is counter-productive to their true
       | purpose as interactive surfaces to get and send information. If I
       | am just going to scroll and see a few pictures, why do I need to
       | download anything other than the structure of the page and the
       | pictures themselves? If all the building blocks are already
       | there, in the browser, why do people need to re-invent them and
       | ship them as yet more JavaScript?
       | 
       | What should a website be though? The fact there isn't consensus
       | about this is indication that there really doesn't seem to be a
       | clear answer.
       | 
       | Per the document-like school of thought, facebook.com just keeps
       | straying further and further away from the ideal, but as far as
       | as the app-like school of thought goes, the new facebook.com is a
       | pretty remarkable achievement.
        
         | saagarjha wrote:
         | You can make a single-page app that isn't bloated.
        
         | gfodor wrote:
         | I don't think you articulate this quite right: it's possible to
         | both think that websites and web applications are worthy uses
         | of the web, but also that many web applications would have been
         | best engineered using 'classical' techniques from early
         | websites. There's a strong argument to be made in Facebook's
         | case, since the core value proposition of Facebook hasn't
         | changed much since it's inception, and it began its life as a
         | server-side rendered 'website.'
         | 
         | In any case, this argument is operating at the wrong level of
         | abstraction, the issue here isn't the distinction between these
         | two things conceptually, but if there would be less incidental
         | complexity overall if what are typically called web
         | applications took a different approach to implementing their
         | features, while still maintaining the same user experience.
         | 
         | It's hard to look at all of the crap you need to do to get a
         | functioning web app working to not think there must be a better
         | approach.
        
           | aylmao wrote:
           | > it's possible to both think that websites and web
           | applications are worthy uses of the web, but also that many
           | web applications would have been best engineered using
           | 'classical' techniques from early websites.
           | 
           | I agree with this.
           | 
           | > There's a strong argument to be made in Facebook's case,
           | since the core value proposition of Facebook hasn't changed
           | much since it's inception, and it began its life as a server-
           | side rendered 'website.'
           | 
           | Yes, but I assume that's from the perspective of the value
           | the site brings to you, not in general and not to everyone.
           | If someone solely gets value from facebook.com as a site to
           | send and receiving information with friends and the world,
           | yeah, it hasn't changed much.
           | 
           | Facebook today offers a richer experience that might be part
           | of its value for other people. On facebook.com you can IM a
           | friend, while watching a video in a PIP window and engaging
           | in a real-time conversation on the the comment thread of an
           | event post. You can then switch back and forth between an
           | online marketplace and a streaming service without losing the
           | state of your chat window. The ability to do these things are
           | part of the value proposition for many users that
           | facebook.com now offers today, and delivering that value can
           | be harder with a solely SSR'd website.
           | 
           | > there would be less incidental complexity overall if what
           | are typically called web applications took a different
           | approach to implementing their features, while still
           | maintaining the same user experience.
           | 
           | If you've figured a way that's better do share! I'm sure
           | there's instances in the wild, but I don't think an
           | experienced engineer would ship their own client-side
           | networking in JavaScript if there was a better way to achieve
           | what they want without shipping any more JS.
           | 
           | > It's hard to look at all of the crap you need to do to get
           | a functioning web app working to not think there must be a
           | better approach.
           | 
           | To be clear, you can get a functional "hello world" web app
           | with a single line a code (specifically, thanks to the fact
           | html is very permissive with improperly formatted documents).
           | Everything afterwards depends on the decisions you make, for
           | the experience you want. Is getting rid of that 200ms flicker
           | between page full page loads worth the 500ms it might take
           | takes to load and initialize your client-side routing
           | library? Is making your site available offline worth the
           | effort of setting up all the extra PWA business? Some will
           | think so, some will not.
           | 
           | In any case, this argument is operating at the wrong level of
           | abstraction, the issue here isn't the distinction between
           | these two things conceptually, but if there would be less
           | incidental complexity overall if what are typically called
           | web applications took a different approach to implementing
           | their features, while still maintaining the same user
           | experience.
           | 
           | It's hard to look at all of the crap you need to do to get a
           | functioning web app working to not think there must be a
           | better approach.
        
         | tarsinge wrote:
         | There is something between 10ms and 10s, especially when it's
         | after the initial load. The point of contention is not the
         | website vs webapp debate, it's more that a webapp doesn't have
         | to be that bloated.
         | 
         | The whole point of SPA initially was better use experience,
         | notably through faster response time and loading.
        
           | kungato wrote:
           | If you are not building for the first time experience I do
           | not understand why you would have a problem with initial load
           | of a web app taking seconds. It's like an install just way
           | faster. No one uses facebook only once and so shouldn't care.
           | Android apps are so shit the "slow" webapps are still miles
           | ahead. I do not understand why android google drive app takes
           | 5 seconds to load
        
             | toast0 wrote:
             | > I do not understand why android google drive app takes 5
             | seconds to load.
             | 
             | The Android UI framework is simply amazingly slow.
             | Instanciating widgets takes forever, and you have to do it
             | in the UI thread.
        
         | ng12 wrote:
         | Thank you. This is one of the first things I tell people in my
         | web-dev workshop. They're probably not going to be building
         | websites, they most likely will be building web applications.
        
       | nickbauman wrote:
       | Tech stack? This is only stuff they put in the browser.
        
         | suyash wrote:
         | exactly it's missing all the backend information which is most
         | critical.
        
       | didibus wrote:
       | I understand the new stack is React + Relay, but what was the old
       | stack?
        
       | ajayyy wrote:
       | It looks a lot like the new Twitter. I guess the new trend is
       | just to show multiple tabs from the mobile app at once as the
       | desktop site.
        
         | shp0ngle wrote:
         | I don't get the hate for the new Twitter, to be honest. It
         | loads fast, is simple, it's to the point.
        
           | garaetjjte wrote:
           | It's slow, requires JS, and fails around.. 50% of loads, I
           | think?
        
             | dbbk wrote:
             | It obviously does not fail on half of loads.
        
             | shp0ngle wrote:
             | ok I guess YMMV. It doesn't fail for me, so I guessed it's
             | like that for everyone.
             | 
             | everything requires javascript nowadays, that's just a
             | default
        
               | f1refly wrote:
               | "Oh there's radioactive material in every food now, why
               | would you complain about that? That's just a default."
        
         | buboard wrote:
         | it is yahoo from the 90s
         | 
         | https://cdn.searchenginejournal.com/wp-content/uploads/2006/...
         | 
         | Nothing new under the sun
        
           | npongratz wrote:
           | The Yahoo I knew and loved from the 90s manifested as a web
           | directory:
           | 
           | https://www.ttcs.tt/wp-content/uploads/2014/09/screenshot-
           | of...
        
             | ViViDboarder wrote:
             | Wow. That made me way more nostalgic than I was expecting.
        
           | atestu wrote:
           | That's their redesign from 2006
           | 
           | https://techcrunch.com/2006/07/17/new-yahoo-home-page-
           | goes-l...
        
       | cat199 wrote:
       | interesting to see these kinds of details, but this is hardly
       | 'rebuilding the the stack' - just UI<->API layer
        
         | swyx wrote:
         | there is such a thing as a frontend stack
        
       ___________________________________________________________________
       (page generated 2020-05-08 23:00 UTC)