Hacker News new | past | comments | ask | show | jobs | submit login

React is a very heavy handed framework. There are many things in react that are React specific like state, effects, context, etc. For large projects its fantastic because you would want all those things but for smaller projects it's complete overkill unless you're already familiar with it.

I suggest you look at these frameworks:

* Vue: Personally have never used it but from everything I heard, it's much easier and more straightforward than React.

* Svelte: I've used this framework and it's amazing. Intuitive and very fast. Some things are specific to svelte and sveltekit but for the most part you are writing plain HTML, CSS and JS code.

* SolidJS: Also have never used this but heard good things about it. It uses JSX tags just like react does but it's far far simpler.

There's also Preact but it's main selling point is to be a "lighter" React, so expect similar complexity here.




I’ve been using Vue since 2017 and unfortunately there is a sustained effort to make it more difficult to use and understand for vague and constantly redefined benefits.

The change is essentially a clone of reacts “hook” API, it’s called Composition API and it also makes reactivity now much more verbose again with no real explanations why it must be so.

I still consider the way most people using Vue to be the most productive - the retroactively named Options API where you have a simple object defining a component.

Initially it was advertised as “this should only be for advanced components perhaps the sort you’d find in a component library” but now it is “use it for everything lol”.

It is a shame that one of the things that appealed to developers and lead to its wide spread adoption due to its low friction approach is now so often overlooked or ignored because internally there’s a desire to have feature parity with React and all the downsides of that.

I also don’t believe the Typescript argument where they claim composition API has better support, with Vue 3, TS, and Options API I’ve yet to find any downsides.

These changes are troubling enough, but when you add in the constant build tooling churn (eg instead of making a breaking change to Vue CLI they’d rather suggest people use a whole different tool, while still maintaining both) or the fact that the Vue component testing library has some serious conflict of interest with Cypress the organisation that I believe has lead to poor judgment and deprecation of certain aspects of the unit testing library…

It certainly has been disappointing to see this happening. It makes me worried about the future of Vue with this deliberate fragmentation.


I'm so glad to read this, because I feel like all I see anywhere about Vue is that it's "better than react"... and having used both extensively, that is most definitely not the case.

Like I said elsewhere, React is a set of extremely simple, foundational building blocks that groups of extremely smart people have thought very long and hard about. Vue is, IMO, like someone's knee-jerk reaction to not understanding React and deciding they would build their own framework that does things in ways they think make sense.

The result is just more redundant complexity, worse tooling and a horrible, dead ecosystem with awful libraries or components that are barely even usable.


I definitely prefer Vue over React and I believe it’s still a better version of it but this composition api bullshit has really caused a lot of people to question the whole thing.

And by people I mean the actual developers using it in production, not the dozens of charlatans hyping the latest change or addition with millions of demonstrations at the latest conference of how composition api hello world is somehow better than what already exists.

Alienating the actual fans and users alike is a poor strategy.

——

As for the build tooling and dead ecosystem and poor components yes I absolutely agree, it’s a bit of a dumpster fire. There’s certainly good libraries and components but in comparison it’s miles away from react.

One of the things I strongly dislike about Vue is the fact it’s prototype is just freely floating around everywhere and all the plugins just attach garbage to it and then get users to do the same.

A strong lack of software engineering practices and competence means that on average many Vue libraries are absolutely horrible to use with equally awful code. In many cases it’s been better so simply have a quick scan of what a library or component is doing and then write a better version yourself - this time with actual unit tests and linted code.

For example, find some library that does something fancy with the DOM like a tooltip or some animation or some wrapper for a popular library.

The process is like this:

> Google for it and find 1 or 2 results

> One was last updated in 2017 and has “Vue2” in the package name (poor)

> the other mostly works and has a few hundred GitHub stars simply because it’s the only one

> use it and find some edge case that makes it useless

> also discover it doesn’t use slots (the actual way to do “composition”, much like reacts child render props to allow components to be inside others) meaning it’s now fully useless for your use case

> write your own version, based roughly on the code in the library - and read the unit tests to make sure you account for anything else you might not have thought about (if it even had any tests, most don’t because it was written by someone that barely knew what they was doing or is the kind of person who hates testing (because then they don’t have to be accountable) you have to argue with over the value of unit tests)

> job done, many days or weeks later

This poor ecosystem seems to go hand in hand with a vocal minority of Vue users that seem hopeless at trying to debug any of their issues or self inflicted bugs.


Solid is awesome. But while its reactivity is simpler than React hooks in that they have fewer rules (i.e. you can call them conditionally), it imposes other rules that people may find challenging (limits on destructuring, requiring functions where you might expect to be able to use a reference directly).

Preact is actually a good alternative not just for its size/perf advantages. It’s also significantly easier to read and understand the internals, which may help some learners find their way where they would otherwise get lost in React.


Why did Gatsbyjs not make this list?


Because Gatsby is built with React.

It’s also extremely opinionated and generally taking a backseat to tools like Next.js if your team wants an opinionated starting point.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: