Hacker Newsnew | past | comments | ask | show | jobs | submit | halflife's commentslogin

There peace with Jordan and Egypt. 2 countries that were at war with Israel, Egypt got Sinai back, Jordan did not want the West Bank back.

What do you mean by “back”? The West Bank was never legitimately part of Jordan - they forcibly annexed it in 1948.

As for the peace treaties:

Jordan simply did not have the ability to fight Israel any longer, or to deal with Palestinian factions operating in its territory.

Egypt wanted its land back after failing to reclaim it in 1973.


2006 Gaza was left to their own independent rule. Shortly after that Hamas killed the PLO, assumed control, and started fire rockets into Israel. And you’re saying that we need to try that again with the West Bank?

That’s not what happened. You (unintentionally I am sure) glossed over the elections being overruled by the US and Israel, the attempted coup by Fatah in Gaza, and the subsequent blockade.

The blockade started after the rockets. And how can US and Israel overrule elections in Gaza? Fatah wanted a coup because they lost to Hamas. That’s why there’s no election in the West Bank.

Read up on the election here, tired of responding in this thread: https://en.wikipedia.org/wiki/2006_Palestinian_legislative_e...

On rocket attacks, Hamas was sticking relatively well to the ceasefire (again, talking about Hamas, not other groups). The blockade was tightened by Israel post-takeover, which then lead to a resumption of rocket attacks.


> Palestinians have long lived under one of the most extensively documented surveillance regimes in the world. The deployment of facial recognition systems, predictive analytics, and device monitoring technologies in the occupied Palestinian territories are widely documented by human-rights organizations and digital researchers.

At the same time Israel has world renowned success of thwarting terrorist plots, and best in class intelligence shared with other countries (like the many, many, terrorist attacks stopped in European capitals thanks to Israeli intelligence).

You can choose either surveillance, or terrorism.


When you choose build an apartheid, you choose surveillance, because how else would you enforce a top to bottom racial order on the populace?

When you end apartheid, you end 'terrorism' (legal and ethical resistance against having your life, land, and water stolen). History shows this to be possible, preferable, and moral.


> When you end apartheid, you end 'terrorism'

Your theory has really not been borne out by reality.

Somehow Hamas committed October 7th and has fired tens of thousands of rockets indiscriminately into Israel since Gaza was given in its entirety to the arabs.

Somehow Iran has been financing and arming multiple terrorist groups even though it obviously is its own country far away from Israel.

Somehow Hezbollah has fired tens of thousands of rockets at civilians as well.

Somehow the Houthis have been committing terrorism sa well and their flag is literally "God is great, Death to America, Death to Israel".

Yeah, I'm sure if Israel just stopped all the security measures on the West Bank, all terrorism would stop!


If you could press a button and kill every man, woman, and child in Gaza, would you press that button?

If you could execute every Yemeni, Iranian, Lebanese and Syrian tomorrow, gifting you a 'clean', and 'pure' world for Greater Israel to flourish for 1000 years, would you do it?

If your answer is yes. Then anything I say about the right of the invaded and occupied to resist occupation under international law will land on deaf ears.


Also love the refusal to even agree that words have meaning. You put scare quotes around 'terrorism'. Are you saying that Hamas, Hezbollah, the Houthis, and a series of small terrorist groups, and a series of individuals did not commit terrorists attacks in Israel?

Terrorism is "the unlawful use of violence and intimidation, especially against civilians, in the pursuit of political aims." - are you saying exploding bombs, knife attacks, and firing rockets indiscriminately against civilians is not terrorism?


> Terrorism is "the unlawful use of violence and intimidation, especially against civilians, in the pursuit of political aims."

Now take a long look in the mirror.


Israel performs precise attacks on valid military targets and with multiple measures to reduce the number of collateral damage to civilians. You are trying to equate this with terrorist attacks literally targeting civilians.

The carnage was too documented for too long of a period of time for those words of yours to warrant a serious response. I know that the only way to possibly attempt to repair your image is to relentlessly repeat the bullet points over and over again and hope that the new generations hear more of your words and less of actual documented reporting, but there is no reason for the rest of us to dignify such attempts of yours with a serious discussion about what are now established facts. While you're staring at that mirror, try to find a semblance of a soul somewhere deep if any still exists there. Collectively.

History has also shown that whenever Jews are in a minority of the population something bad tends to a happen to them.

So a two state solution makes much more sense.


I disagree. Limiting your understanding of 'can people coexist' down to purely ethnic terms is colonial apartheid thinking.

"History has also shown that whenever Mizrahi Jews are a minority relative to Ashkenazi Jews something bad tends to a happen to them"

What now mupuff? Is it because they tainted by their Arab blood?

I could do this all day with random minorities, but it's not a refutation of my argument.

'Single supreme race' states are evil. The Antebellum South was one of the most evil places ever to exist and functioned on the exact same terms. There was a civil war, and we settled on a one state solution. The only mistake was not fully purging the slavers from positions of power and stopping reconstruction.

Racial/Ethnic/Religious caste systems are a race to the bottom. They are a suicidal purity cult.

I should note that you are factually wrong. Jews have very rarely been an ethnic majority, yet many cultures have managed to not genocide them throughout history. This includes middle eastern countries prior to the Nakba. Don't project out the utterly imperial eurocentric 'pograms are inevitiable' and 'arabs are all that same, and are savages' viewpoint out onto every civilizations.

European empires created or exacerbated divisions in peaceful populations as a means of colonial control. This is well documented and intentional. Zionism as a project is very very British, they wrote their plans down! Same as they did in South Africa. Same as they did in Ireland.


So Jews should just accept the ruler de jour! If he likes Jews everything’s honky dory, if he doesn’t, better luck with the next ruler! Just like the last 2000 years of exile, sometime it was nice for Jews, sometime it was pogroms. Such is life you say.

So easy for you when you’re not the one that billions of people around the world are taught to hate.


""" So [Black people in America] should just accept the [president] de jour! If he likes [Black people] everything’s honky dory, if he doesn’t, better luck with the next [president]! Just like the last 400 years of [chattel slavery, convict leasing, apartheid, and child incarceration], sometime it was nice for [Black people], sometime it was [lynchings].

Such is life you say. So easy for you when you’re not the one that billions of people around the world are taught to hate [Black people, sexual minorities, brown immigrants, Muslims, Jews, etc...]. """

I'm saying that apartheid is always wrong and I will always stand against it. It is not 'such is life' except in the particular sense that it is the obligation of all free peoples to stand against these moral atrocities where ever they appear, and they appear in every age.

It does not matter to me one whit the particulars of the race or caste of the people enacting apartheid and genocide and no amount of special pleading will change my mind.


what you think matters not in the real world. Jews are hated, and persecuted. In the past and present. The only place where Jews feel safe to be Jewish is Israel.

Factually untrue in two regards.

The USA is the safest place on Earth for Jewish people, both by the numbers and in measured attitudes.

Israel is by far more dangerous. If you can only feel safe there, this is your feelings lying to you about the real state of the world. Perhaps this fear is what allows you to avoid looking inward at your personal acceptance of apartheid as a necessary evil?

Feeling safe is nice, but it's not a human right to feel unsafe and then insist that it is [the whole 'real' word]'s problem. You can not create real safety at the expense of your neighbor's safety.

'safety' is an argument that justifies every act. It's identical a white lady in the park calling the cops because she saw [minority] and 'felt unsafe'. It's firing a tall stocky cis women because seeing her enter the stall made 'real women' feel unsafe about the tr*nny 'invading their spaces'.

It's being anti-integration [not because you are racist!!!, but] because schools would be made 'unsafe'. etc etc etc...


The USA is safest by attitude? I have Jewish friends there. Kids are harassed at schools because they are Jewish. Jews at universities hide their religion because they are being excluded from everywhere by the student body, professors are discriminating Jews. Synagogues are being fire bombed. Jewish places of business are being marked.

That does not happen in Israel.


You've implied you are neither Jewish, nor American and you are lecturing me with random anecdotes about what is 'really going on' in the USA???

I attended school in one of the most staunchly zionist synagogues in America for years. I was the designate שבת גוי for years during high school. I lived in a quiet, peaceful predominately orthodox neighborhood during those years. Those Jewish kids I grew up arguing with about politics helped me deconstruct the subtle bigotries [about black, brown, and arab people] I was raised in! My education on the Holocaust and then genocide generally is why I am writing what I am right now.

Only one of those kids grew up and remained a Zionist to this day, he moved to Israel; It had always been his dream... Then he moved to NJ to start a family, last I checked he's still a Rabbi and lecturer. Can you imagine the reasons why he didn't choose to start his family in the 'safest place' on Earth?

You are woefully misinformed about daily life here and you need to consume less news designed to terrify you.


Just look at hate crime stats.

There has been recent academic research (+ book) about how it's the opposite - Israel relied on foreign intelligence (Club de Berne) for it's most famous operations.

[1] https://academic.oup.com/ehr/article/140/604-605/777/8140798

[2] https://www.cambridge.org/us/universitypress/subjects/histor...


You didn't even try with this one

You can choose a secular government with equal rights and opportunities for all or found a theocracy.

That government, and its country, will be destroyed in three days.

[flagged]


let me add that fucker in the picture who invest in this serviallance was raping babies with epstien make sense to me what side to stand with am aginst raping babies and eat them


Maybe material cost? I have a lelit mara machine, it’s pretty heavy. It weighs 18kg, with a plenty of brass and copper pipes. Also the internals don’t look like it can be machine assembled an the fat that it’s made in Italy makes it more expensive in man hours


Amazing how this article takes something and turns it completely in the opposite direction.

The administrative order dos not mention Jews or Palestinians specifically.

It was issued to monitor expulsion orders against Jewish settlers.

It was only used against 2 Jewish settlers so far.

https://www-ynet-co-il.translate.goog/news/article/bkqi9ofnz...


Good luck finding someone who doesn’t.


Why does the react development team keeps investing their time on confusing features that only reinvent the wheel and cause more problems than solve?

What does server components do so much better than SSR? What minute performance gain is achieved more than client side rendering?

Why won’t they invest more on solving the developer experience that took a nosedive when hooks were introduced? They finally added a compiler, but instead of going the svelte route of handling the entire state, it only adds memoization?

If I can send a direct message to the react team it would be to abandon all their current plans, and work on allowing users to write native JS control flows in their component logic.

sorry for the rant.


Server Components is not really related to SSR.

I like to think of Server Components as componentized BFF ("backend for frontend") layer. Each piece of UI has some associated "API" with it (whether REST endpoints, GraphQL, RPC, or what have you). Server Components let you express the dependency between the "backend piece" and the "frontend piece" as an import, instead of as a `fetch` (client calling server) or a <script> (server calling client). You can still have an API layer of course, but this gives you a syntactical way to express that there's a piece of backend that prepares data for this piece of frontend.

This resolves tensions between evolving both sides: the each piece of backend always prepares the exact data the corresponding piece of frontend needs because they're literally bound by a function call (or rather JSX). This also lets you load data as granularly as you want without blocking (very nice when you have a low-latency data layer).

Of course you can still have a traditional REST API if you want. But you can also have UI-specific server computation in the middle. There's inherent tension between the data needed to display the UI (a view model) and the way the data is stored (database model); RSC gives you a place to put UI-specific logic that should execute on the backend but keeps composability benefits of components.


Thanks for the comment Dan, I always appreciate you commenting and explaining in civility, and I’m sorry if I came a bit harsh.

I understand the logic, but there are several issues I can think of.

1 - as I said, SSR and API layers are good enough, so investing heavily in RSC when the hooks development experience is still so lacking seems weird to me. React always hailed itself as the “just JS framework”, but you can’t actually write regular JS in components since hooks have so many rules that bind the developer in a very specific way of writing code.

2 - as react was always celebrated as an unopinionated framework, RSC creates a deep coupling between 2 layers which were classically very far apart.

Here are a list of things that would rather have react provide:

- advanced form functionality that binds to model, and supports validation

- i18n, angular has the translations compiled into the application and fetching a massive json with translations is not needed

- signals, for proper reactive state

- better templating ability for control flows

- native animation library

All of these things are important so I wouldn’t have to learn each new project’s permutation of the libraries de jour.


> React always hailed itself as the “just JS framework”,

I've literally never heard someone say "React is just a JS framework". They've said React uses JSX over templates. And that React has introduced functional components. But never heard someone say what you're claiming.

> but you can’t actually write regular JS in components since hooks have so many rules that bind the developer in a very specific way of writing code.

This is wild. Yes you can. You can write regular JS in components. I can go build a component right now that uses JS (either with or without hooks). You're conflating the rules of hooks with the ability to use Javascript. Yes, there are rules. No, that doesn't mean you can no longer can write JS.

> i18n, angular has the translations compiled into the application and fetching a massive json with translations is not needed

Tradeoffs. Now each update needs to be rebuilt and redeployed. I don't have that problem in React.

> better templating ability for control flows

Better templating? React uses JSX. Are you saying there exists a better way to control flows than if/else?

> signals, for proper reactive state

This has been debated ad-nauseum in the React community and everything has a trade-off. I wish people would stop saying this as if it's categorically correct. React is UI is a function of state. Singlars would totally break the current mental model of React. Data flows down. This change would come with tradeoffs.


I’ve heard, especially during the first few years when react was introduced, that you don’t need templating, compiler, or anything special to write react, “it’s just JS”.

Of course you CAN write anything you want inside a component, but then it breaks, or has awful performance. To write components the proper way you can’t use any control flows with state management, you need to keep remembering which are the correct dependencies to recreate state, it makes components 20% BL and 80% react logic.

You can’t use if-else in JSX, since only expressions are allowed. So you need to create nested ternaries, which are hard to read, or using JS anomalies like having a condition expression return the last truthish evaluation.

And regarding signals, preact is using it and it doesn’t seem to break anything there.

Function of a state has a nice ring to it, but eventually this was solved a long time before react, every templating engine is a function of a state. The hard part is composing the state easily which react has never been able to achieve.


> that you don’t need templating, compiler, or anything special to write react, “it’s just JS”

This is still true. I don't currently use any of those things. And the existance of a compiler does imply you can't write Javascript. Totally different concepts. Also, pretty sure they had compiler plans for like years now.

> but then it breaks, or has awful performance.

You're gonna have to be more specific. I could repeat that sentence for every programming language/library on the planet and without specifics it would make sense.

> You can’t use if-else in JSX,

I don't need to use if-else in JSX to control flow. I can write if(condition) return html;

> which are hard to read, or using JS anomalies like having a condition expression return the last truthish evaluation.

See the sentence I just wrote before this. I can use if/else to control flow and return early without templating. How is that not ideal?

> And regarding signals, preact is using it and it doesn’t seem to break anything there.

It's not about literlaly "breaking" something. They could implement htem if they wanted to. It's about breaking the mental model.

In React, data flows down. That's a constraint, but not always a bad one. I know exactly where to look for data (up). With signals, that's throw out the window. And now, it's not just about what the component accepts via props/context (which again, is down) it now needs to turn itself on it's head.

I used Angular for years before React and I do not miss having things talking to each other throw multiple lateral levels.

> Function of a state has a nice ring to it, but eventually this was solved a long time before react, every templating engine is a function of a state.

> Function of a state has a nice ring to it, but eventually this was solved a long time before react, every templating engine is a function of a state. The hard part is composing the state easily which react has never been able to achieve.

This is incredibly misleading (and wrong). Templates don't compose. And React is quite literlaly the king of composition.

It's starting to feel like you've never actually used React, but instead are basing your opinions on what you see other people say (who have also not used React).


Do you have a moment to talk about our Lord and Savior VueJS?


As merely a systems engineer sometimes having to create a Web app I really much appreciate the experience of building a well-separated app without layers of trivial but flaky boilerplate layers that is a REST API in a dynamic language. The Next app I built last year using heavily RSC is one of the most legible and easy-to-maintain apps I have created so far.

We'll see if the magic can be trusted on or if we need more explicit solutions to this, but the Next/RSC experience was vastly superior compared to writing another REST API that is never to be used with anything else than the accompanied React app, and I'd love to use it or something similar to it in the future.

The reason is probably that a REST API for a "BFF" is in many cases quite tightly coupled with the frontend, and trying to detach those in the system architecture does not separate them in some higher scheme of things. Even if the two parts could separated but would never end up used without another, the separation probably just makes an unnecessary barrier.


I mean the different aspects of my Next app are now clearly separated, but they do form functional units. The separation between frontend and BFF is gone, but that was a wrong boundary in small scale apps to begin with.


You either die a hero or live long enough to see yourself become the villain. The amount of time I've spent debugging other PRs (and mine) around hooks is just unruly, then React turned its attention to the server, something that I (most of us? we?) never ever asked for; but I guess that's what Meta, a company of cancer needs. I sure don't need it. Never have I imagined during the last 15 years that I'll be happy to say I'm using the mountain of enterprise spaghetti called Angular, but now I am. For years I hoped I'll be able to get back to React projects one day; that hope is long gone.


Totally agree. Chiming in as another React dev: I really regret the last few years of choices React has made. I don't want a React-integrated BFF layer, even on greenfield projects, hooks are awful and the whole thing just gets more awkward to solve tangentially related problems.

I really do want a good frontend framework that lets me expressively build and render dynamic frontend components, but it feels like 99% of React's development in the last few years has been just been creating churn and making that core frontend experience worse and worse. Hooks solve challenges around sharing component meta-functionality but then end up far worse for all other non-trivial cases, and it seems like RSC & concurrency just break things and add constraints instead of improving any part of my existing experience.

I guess this is cool if you're building mega-projects, but it makes React actively painful to use for anything smaller. I still use it every day, but as soon as I find a good off-ramp for my product (something similar, but simpler) I will take it. Moving towards Preact & signals currently seems like the best option for existing projects so far as I can tell.


I wish React wasn’t the “default” framework.

I agree that the developer experience provided by the compiler model used in Svelte and React is much nicer to work with


IMO angular provides such a great experience developing. They had minimal API changes in the last 10 years, and every project looks almost the same since it’s so opinionated.

And what they DO add? Only things that improve dev exp


> They had minimal API changes in the last 10 years

The 1 to 2 transition was one hell of a burn though; people are probably still smarting...


You aren’t wrong. I basically stopped using any OSS code backed by Google as a result.

I’d pushed Angular over React[0] for a massive project, and it worked well, but the migration to Angular 2 when it came created a huge amount of non-value-adding work.

Never again.

I don’t even really want to build anything against Gemini, despite how good it is, because I don’t trust Google not to do another rug pull.

[0] I’ve never enjoyed JSX/TSX syntax, nor appreciated the mix of markup with code, but I’ve subsequently learned to live with it.


No one forced you to migrate immediately. (Also, non-value-adding work? You don't think the rewrite to TS did not bring any value? And thanks to that rewrite that app can be upgraded even today to Angular v21. And likely it'll be the case for many years.)

React also went through a lot of churn. (Still does.) There's no magic optimal duration for keeping API stability. Not in general and not for specific projects.

Ecosystems sometimes undergo a phase-shift. Sometimes they take a long time, based on the size. Python 3 was released in 2008, just a year before Angular 1. And the last Py2 release was in 2020, about 2-3 years before the last AngularJS version. (And of course there are many businesses running on py2 still. I know at least one.) These things take plenty of time.

Angular1 was pretty opinionated, willing to break with the tradition of just add one more jQuery plugin.

Miško was working at Google, he persuaded some people to take a look at the framework that he and Adam Abrons were tinkering with.

Angular 2 was announced in 2014 January. And then v1 still got years of support, even the component architecture was "backported" around 1.5 (in 2016?)

You can run old v1 code side-by-side in a v2+ app up until v17. (At least the v17 docs describe the process in full and later docs link to this page. https://v17.angular.io/guide/upgrade )

...

Google did a pretty good job IMHO. Google throws products under the bus, but not so much OSS projects. (Though the sate of AOSP comes to mind.)


> Google throws products under the bus, but not so much OSS projects.

It abandoned the Material Design web components project, which, I think, attracted some Polymer people.

Speaking of Polymer, it has evolved into Lit; but I understand there is no more support for that project from Google. Lit has joined the OpenJS foundation to stay afloat. The Googlers that used to work on Lit, and on Material Design web components have mostly left.

Also, remember the Workbox project? A simple setup for service workers? It's barely alive.


The angular material design library is so much better than the react one. And it is supported by google. The material CDK is amazing to create custom components easily


> You don't think the rewrite to TS did not bring any value?

I mean, I don't really like TypeScript, and I never have. It's ugly, boilerplatey, and inelegant. I am not a fan.

So... no.

But, again, some battles you have to accept you've lost. TS is everywhere and there's not much getting away from it.


I think JS is still overall more popular than TS, but if your team forces TS then yeah. It's like Java devs reluctantly switched to JS and were like, this needs more boilerplate.


Yeah, I spent years in Java and then even longer in .NET and it felt like everything I was getting a bit fed up of in those worlds had invaded JS. 20 years ago I could never have imagined defending JS as a language but, as time wore on, I started to appreciate its more stripped back syntax. And then a lot of what’s been added in later ES standards has been great so it seems even more unnecessary to layer TS on top.


It took me a while to appreciate JS too. Thought it was just the beginner language until I used it. Also had to learn the hard way that a web backend is hard to do efficiently without an event loop.


It was one hell of a ride, but I would say the Angular team did one hell of a job too, supporting the glue code until v18 (not sure if the latest version still does).

Having both old and new Angular running in one project is super weird, but everything worked out in the end.


Well, the official statement is that 1 and 2 are 2 different frameworks. That’s why they were later named to angular JS and angular, to avoid confusion.

The migration path between angular 1 and 2 is the same as react and angular, it’s just glue holding 2 frameworks together

And that change happened 10 years ago


> That’s why they were later named to angular JS and angular, to avoid confusion.

Angular.js and angular. That's not confusing at all :-)


this -- even google search results were mixed up

should be more different: eg "rect-angular vs angular"


Easy migration was promised but never delivered. Angular 2 was still full of boilerplate. “Migrating” an AngularJS project to Angular 2 is as much work as porting it to React or anything else.

So yes, people got burnt (when we were told that there will be a migration path), and I will never rely on another Google-backed UI framework.


> I will never rely on another Google-backed UI framework.

Lit is pretty good :-) Though it was never positioned as a framework. And it recently was liberated from google.


I tried it once, and it was like, you have to edit 5 files to add 1 button.


same 5 files in every project at every company on earth


Not the ones that changed to the non-ngModule way


I'll second that Angular provides a great experience these days, but they have definitely had substantial API changes within the last few years: standalone components, swapping WebPack for esbuild, the new control-flow syntax, the new unit-test runner, etc...


Was going to say, I only vaguely look at Angular code from adjacent projects at work, and noticed all of a sudden the entire structure changed with the ngModule deprecation thing. Glad I'm not knee-deep in that.


React is good enough, so it's very hard to come up with a strong case to use anything else.


This is an odd philosophy.

There are lots of things in life that may be “good enough.”

I prefer the things that are better than that


It really isn't good enough


I like the hooks :(


I agree. Incoming hot take.

IMO, a big part of it is the lack of competition (in approach) exacerbated by the inability to provide alternatives due to technical/syntactical limitations of JavaScript itself.

Vue, Svelte, Angular, Ripple - anything other than React-y JSX based frameworks require custom compilers, custom file-types and custom LSPs/extensions to work with.

React/JSX frameworks have preferential treatment with pre-processors essentially baking in a crude compile time macro for JSX transformations.

Rust solved this by having a macro system that facilitated language expansion without external pre-processors - e.g. Yew and Leptos implement Vue-like and React-like patterns, including support for JSX and HTML templating natively inside standard .rs files, with standard testing tools and standard LSP support;

https://github.com/leptos-rs/leptos/blob/main/examples/count...

https://github.com/yewstack/yew/blob/master/examples/counter...

So either the ECMAScript folks figure out a way to have standardized runtime & compilable userland language extensions (e.g. macros) or WASM paves the way for languages better suited to the task to take over.

Neither of these cases are likely, however, so the web world is likely destined to remain unergonomic, overly complex and slow - at least for the next 5 - 10 years.


OK I got my own extremely hot take.

In my opinion, the core functionality of React (view rendering) is actually good and is why it cannot be unseated.

I remember looking for a DOM library:

- dojo: not for me

- prototype.js: not for me

- MooTools: not for me

- jQuery: something I liked finally

Well, guess what library won. After I adopted jQuery, I completely stopped looking for other DOM libraries.

But I still needed a template rendering library:

- Mustache.js: not for me

- Handlebars.js: not for me

- Embedded JavaScript Templates: not for me

- XML with XSLT: not for me

- AngularJS: really disliked it SOO much*

- Knockout.js: not for me

- Backbone.js with template engine: not for me and actually it was getting popular and I really wished it would just go away at the time**

- React: something I actually liked

You must remember that when React came out, you needed a JSX transpiler too, at a time when few people even used transpilers. This was a far bigger obstacle than these days IMO.

Which leads to my hot take: core React is just really good. I really like writing core React/JSX code and I think most people do too. If someone wrote a better React, I don’t think the problem you mentioned would hamper adoption.

The problems come when you leave React’s core competency. Its state management has never been great. Although not a React project itself, I hated Redux (from just reading its docs). I think RSC at the current moment is a disaster — so many pain points.

I think that’s where we are going to see the next innovation. I don’t think anyone is going to unseat React or JSX itself for rendering templates. No one unseated jQuery for DOM manipulation — rather we just moved entirely away from DOM manipulation.

*I spent 30 minutes learning AngularJS and then decided “I’m never going to want to see this library again.” Lo and behold they abandoned their entire approach and rewrote Angular for v2 so I guess I was right.

**It went away and thankfully I avoided having to ever learn Backbone.js.


Does transpilation not cover this? That's how they did JSX.


Transpilation of anything other than jsx requires a complex toolchain with layers of things like LSPs, compilers, IDE plugins, bundler plugins, etc.

Frameworks that go that route typically activate this toolchain by defining a dedicated file extension (.vue, .svelte).

This custom toolchain (LSP, IDE plugins) presents a lot of overhead to project maintainers and makes it difficult to actually create a viable alternative to the JSX based ecosystem.

For instance both Vue and Svelte took years to support TypeScript, and their integrations were brittle and often incompatible with test tooling.

Angular used decorators in a very similar way to what I am describing here. It's a source code annotation in "valid" ecmascript that is compiled away by their custom compiler. Though decorators are now abandoned and Angular still requires a lot of custom tooling to work (e.g, try to build an Angular project with a custom rspack configuration).

JSX/TSX has preferential treatment in this regard as it's a macro that's built into tsc - no other framework has this advantage.


Chicken and egg problem. JSX is supported because it's popular. If React decides to push a new syntax I don't see why everyone wouldn't reasonably quickly adapt and support it.


This only applies to TS, not JS, right? Cause afaik JSX isn't getting any special treatment from babel, but TSX has tsc support like you said.


They are taking care of the customers. The customers are front-end dev with little experience in servers, back-end and networking. So they want to run some code that changes state without having to deal with all of that infra and complexity. Preferably while remaining in the "React state". That is the attraction of Nextjs and RSC.


> What does server components do so much better than SSR? What minute performance gain is achieved more than client side rendering?

RSC is their solution to not being able to figure out how to make SSR faster and an attempt to reduce client-side bloat (which also failed)


Maybe if they compiled away their runtime like svelte and somewhat like angular, then running SSR would be faster.


SSR with CSR is a worst-of-both-worlds approach. It leads to brittle ”isomorphic” behaviors when the same code needs to handle both SSR and CSR, inevitable client-side ”hydration” mismatches and various other issues. The same code needs to fetch eagerly but minimally, but also use and update the server-provided data on the client-side.

Ultimately that so-called ”isomorphism” causes more numerous and difficult problems than it solves.


Especially cuz the vast majority of sites can either just be client rendered SPA's or server rendered multipage apps. There is no need for the complexity for most sites and yet this is the default for pretty much all js frameworks...


Sounds a little like hooks.

A purist approach with short term thinking got everyone deep in a rabbit hole with too many pitfalls.


I couldn't agree more. I'll probably switch from React to something like ArrowJS in my personal work:

https://www.arrow-js.com/docs/

It makes it easy to have a central JSON-like state object representing what's on the page, then have components watch that for changes and re-render. That avoids the opaqueness of Redux and promise chains, which can be difficult to examine and debug (unless we add browser extensions for that stuff, which feels like a code smell).

I've also heard heard good things about Astro, which can wrap components written in other frameworks (like React) so that a total rewrite can be avoided:

https://docs.astro.build/en/guides/imports/

I'm way outside my wheelhouse on this as a backend developer, so if anyone knows the actual names of the frameworks I'm trying to remember (hah), please let us know.

IMHO React creates far more problems than it solves:

  - Virtual DOM: just use Facebook's vast budget to fix the browser's DOM so it renders 1000 fps using the GPU, memoization, caching, etc and then add the HTML parsing cruft over that
  - Redux: doesn't actually solve state transfer between backend and frontend like, say, Firebase
  - JSX: do we really need this when Javascript has template literals now?
  - Routing: so much work to make permalinks when file-based URLs already worked fine 30 years ago and the browser was the V in MVC
  - Components: steep learning curve (but why?) and they didn't even bother to implement hooks for class components, instead putting that work onto users, and don't tell us that's hard when packages like react-universal-hooks and react-hookable-component do it
  - Endless browser console warnings about render changing state and other errata: just design a unidirectional data flow that detects infinite loops so that this scenario isn't possible
I'll just stop there. The more I learn about React, the less I like it. That's one of the primary ways that I know that there's no there there when learning new tools. I also had the same experience with the magic convention over configuration in Ruby.

What's really going on here, and what I would like to work on if I ever win the internet lottery (unlikely now with the arrival of AI since app sales will soon plummet along with website traffic) is a distributed logic flow. In other words, a framework where developers write a single thread of execution that doesn't care if it's running on backend or frontend, that handles all state synchronization, preferably favoring a deterministic fork/join runtime like Go over async behavior with promise chains. It would work a bit like a conflict-free replicated data type (CRDT) or software transactional memory (STM) but with full atomicity/consistency/isolation/durability (ACID) compliance. So we could finally get back to writing what looks like backend code in Node.js, PHP/Laravel, whatever, but have it run in the browser too so that users can lose their internet connection and merge conflicts "just work" when they go back online.

Somewhat ironically, I thought that was how Node.js worked before I learned it, where maybe we could wrap portions of the code to have @backend {} or @frontend {} annotations that told it where to run. I never dreamed that it would go through so much handwaving to even allow module imports in the browser!

But instead, it seems that framework maintainers that reached any level of success just pulled up the ladder behind them, doing little or nothing to advance the status quo. Never donating to groups working from first principles. Never rocking the boat by criticizing established norms. Just joining all of the other yes men to spread that gospel of "I've got mine" to the highest financial and political levels.

So much of this feels like having to send developers to the end of the earth to cater to the runtime that I question if it's even programming anymore. It would be like having people write the low-level RTF codewords in MS word rather than just typing documents via WYSIWYG. We seem to have all lost our collective minds ..the emperor has no clothes.


> I also had the same experience with the magic convention over configuration in Ruby.

I'm not sure what this is a reference to? Is it actually about Rails?


Ya I used Rails on an aging project for about 6 months and there was so much magic behavior that we couldn't effectively trace through the code, so debugging even the simplest issue took days. Also the happy path mostly ran fine, but we couldn't answer even the simplest questions about the code or make estimations when something went wrong, because we couldn't isolate the source of truth in its convention-dominated codebase.

I come from a C++ background and mostly use PHP/Laravel today, and even though it does things less "efficiently" than the syntactic sugar in Ruby or low-level optimizations in .NET, I find that its lack of magic makes for much higher productivity in the long run. IMHO it feels like Ruby solves the easiest problems with sugar and then glosses over the hardest problems like they don't exist. So I just can't tell what problems it actually solves.

Generally, I think that cleverness was popular in the 2010s but has fallen out of fashion. A better pattern IMHO works more like Cordova or scripting in video games, where native plugins or a high-performance engine written in a language like Swift or Rust is driven by a scripting language like Javascript or Lua. Or better yet, driven declaratively by HTML or no-code media files that encode complex behavior like animations.

Of course all of this is going away with AI, and I anticipate atrociously poorly-written codebases that can't be managed by humans anymore. Like we might need pair programming just to take a crack at fixing something if the AI can't. I'm always wrong about this stuff though, so hopefully I'm wrong about this.


For a single page of HTML, ArrowJS's site loads really slow. I sat for almost a full second on just the header showing.


Yikes I didn't know that! I haven't actually used it yet hah.

For a bit of context, I come from writing blitters on 8 MHz Mac Plusses, so I have a blind spot around slowness. Basically, that nothing should ever be slow today with GHz computers. So most slowness isn't a conceptual flaw, but an inefficient implementation.

These alternative frameworks are generally small enough that it might be kind of fun to stress test them and contribute some performance improvements. Especially with AI, I really have no excuse anymore.

Edit: after pondering this for 2 seconds, I suspect that it's actually a problem with backend requests. It may have some synchronous behavior (which I want) or layout dependency issues that force it to wait until all responses have arrived before rendering. That's a harder problem, but not insurmountable. Also things like this irk me, because browsers largely solved progressive layout in the 1990s and we seem to have lost that knowledge.


> do we really need this when Javascript has template literals now

yea? JSX is much more than templating.


But then there are packages like htm that are doing basically the same thing with just tagged templates.


Nobody is using Redux any more, and it's even publically discouraged by the creator. It's a legacy system and including it in your problems list just makes me think you have no React experience and no idea what you are talking about (beyond technical yapping also Redux as a product still achieved what it tried to solve so your dx doesn't even matter).

Firebase in this context is just a database and how you poll data on client or server from it. Nonsensical reference again.


Hi. I'm the current Redux maintainer, and have been since Dan handed it over to me in mid-2016, one year after he created Redux. It's also worth noting that Dan never used Redux on a real app (that I know of), whereas I've spent years maintaining Redux and Redux Toolkit and designing APIs based on the needs of our users.

Redux is still by far the most widely-used state management library in React apps. Some of that _is_ legacy usage, sure. But, our modern Redux Toolkit package has ~30M downloads a month. Zustand has become very popular as a client-side state option, and React Query is now the default standard data fetching tool, but you can see that even just RTK is still right up there in monthly NPM downloads:

- https://npm-stat.com/charts.html?package=redux&package=%40re...

I've frequently talked about the original reasons for Redux's creation, which of those are still relevant, and why Redux is still a very valid option to choose even for greenfield projects today:

- https://blog.isquaredsoftware.com/2024/07/presentations-why-...


I love reading this while my boss is pushing "redux everything" as the next step in our (React 17) codebase...


Because Facebook has a budget for R&D, which works out to several salaries, and React is one of the biggest technical assets they have, so it's someone full time job to develop features and new versions of React to increase the moat and stock value of Meta.

It works out because it keeps a workforce of React Developers on their feet, learning about the new features, rather than doing other stuff. It's like SaSS for developers, only instead of paying a monthly subscription in cash, you have to pay a monthly subscription in man-hours.


If it’s an addendum then fine. But can’t replace textual review which is much easier to parse, at least for me.

BTW, amazing they chose a review that exemplifies why hooks are a horrible horrible mistake for public API.


What does it do with packages that download binaries for specific architecture in the post script?


You don't need post-install scripts for this. Use optionalDependencies instead https://github.com/nrwl/nx/blob/master/packages/nx/package.j...

Each of those deps contains a constraint installing only for the relevant platform.


As far as I can understand from the documentation, that doesn't actually specify in that config that one of them is required, does it? That is, if they _all_ fail to install as far as the system is concerned there's nothing wrong? There will be runtime errors of course, but that's sort of disappointing…


That’s cool, now I wish all libraries that need binaries would opt to use that instead of post script


Do keep in mind that the binaries are still binaries. Even if your installation process doesn't run any untrusted code from the package, you can't audit the binaries like you might the .js files prior to first run.


As stated, you manually approve them.


Crypto as in cryptology, not cryptocurrency.

Shame, since the schadenfreude would be much stronger in the case of cryptocurrencies.

Still funny though.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: