My prediction is that a year from now Jim will still think it was a mistake and Habryka will still think it was a good call because they value different things.
Yeah, I’m also a bit puzzled. Most features of a forum like LW can be implemented as concatenating HTML strings on the server, which is a very simple mental model, and has plenty of simple implementations that can run on generic hosting. The DOM-based mental model of React/Next doesn’t seem to bring much benefit in this case, and carries a ton of overhead.
I am sure that mental model has nothing to do with why Jim thinks this is/was a bad idea. I think we are all really quite happy we are built on React (or something of that family). Gluing HTML strings together would be a crazy nightmare.
I see, yeah, then your team is a different culture than me. To me simple server side rendering (well not literally concatenating strings, but using templating and the like) is basically the only non-”crazy nightmare” way to build web stuff. While a lot of React stuff (like hooks, reducers, hydration) gives me crazy nightmare vibes. But since this isn’t a programming forum, maybe not much use arguing :-)
Yeah, I care a lot about client-side reactivity, which I think you just can’t really achieve that way (unless you want to glue together javascript strings using templates, which I would not recommend).
I think people should just treat the web as an application platform. Doing a roundtrip for each piece of interactivity, or needing to pre-render each piece of interactivity is IMO really not viable at the complexity level of something like LW.
Yeah, this is maybe also about user taste. I use GW because it feels more like a website, while LW feels a bit too much like an application. There’s a certain “website UI feel” that’s distinct from “application UI feel” and makes me happier somehow. Though of course other people can feel differently.
My stance at the beginning was that the entire project was a mistake, and going through the process of actually doing it did not change my mind.
It’s true! May history judge who was right in the end.
My prediction is that a year from now Jim will still think it was a mistake and Habryka will still think it was a good call because they value different things.
Yeah, I’m also a bit puzzled. Most features of a forum like LW can be implemented as concatenating HTML strings on the server, which is a very simple mental model, and has plenty of simple implementations that can run on generic hosting. The DOM-based mental model of React/Next doesn’t seem to bring much benefit in this case, and carries a ton of overhead.
I am sure that mental model has nothing to do with why Jim thinks this is/was a bad idea. I think we are all really quite happy we are built on React (or something of that family). Gluing HTML strings together would be a crazy nightmare.
I see, yeah, then your team is a different culture than me. To me simple server side rendering (well not literally concatenating strings, but using templating and the like) is basically the only non-”crazy nightmare” way to build web stuff. While a lot of React stuff (like hooks, reducers, hydration) gives me crazy nightmare vibes. But since this isn’t a programming forum, maybe not much use arguing :-)
Yeah, I care a lot about client-side reactivity, which I think you just can’t really achieve that way (unless you want to glue together javascript strings using templates, which I would not recommend).
I think people should just treat the web as an application platform. Doing a roundtrip for each piece of interactivity, or needing to pre-render each piece of interactivity is IMO really not viable at the complexity level of something like LW.
Yeah, this is maybe also about user taste. I use GW because it feels more like a website, while LW feels a bit too much like an application. There’s a certain “website UI feel” that’s distinct from “application UI feel” and makes me happier somehow. Though of course other people can feel differently.
(Also, to clarify, we were already on React—it’s mostly other bits of framework glue that got tossed out/replaced/etc.)