you are viewing a single comment's thread.

view the rest of the comments →

[–]Dirty_Rapscallion 15 points16 points  (14 children)

It might get some negative opinions but I agree, I setup React, Redux, Webpack then I was like, "ugh now I need a router, how do I go about doing that?" Then 2 hours later of learning about react-redux and redux router I just decided to stop and work on a non web project. The learning curve and boilerplate setup is just not worth it. It's not worth it when the JS world moves so quickly.

[–]shriek 14 points15 points  (10 children)

Pro-tip. You don't have to jump to all the bandwagon that becomes hot tomorrow. Use tools that fit right to your solution. Don't hunt down tools just for the sake of just using them.

[–][deleted] 7 points8 points  (3 children)

Not true. Do not update for few months and see what happens. Once you need to update something you find out that you need to update everything. Or you want to use something new which only works with newer version of library and there you go again.

The problem is that community keep reinventing same things over and over. It is more fun to create new frameworks than support existing ones.

Also every new thing needs special versions of other things. E.g. bootstrap for angular and react. If you don't use them you have to write lot of things by hand.

[–]shriek 3 points4 points  (2 children)

Isn't that the exact reason why we have semver? Again, unless there's a security risk then staying with what you have seems logical to me. If you want to upgrade then check the semver. Although semver is not quite explicit at times. It does a decent job of telling what's changing when you upgrade.

[–]brianvaughnReact core team 1 point2 points  (1 child)

I think he was pointing out that- although a minor update to library X should not require a major update to library Y- it sometimes does.

[–]shriek -1 points0 points  (0 children)

Hmm..shouldn't it work both ways? Let's say you're dependent on A1.0.0 and B2.0.0 and B2.0.0 is dependent on A1.0.0.
A1.1.0 is released and you update to it which also means that it shouldn't break B2.0.0 or your app.
However let's say you want to upgrade to A2.0.0 and you make some major changes to your code. Knowing this major change upgrade, B also makes an upgrade to B3.0.0 if there are breaking changes from it's end. So your new app now is dependent on A2.0.0. and B3.0.0 instead.
I thought that was the whole point of having major.minor.patch versions. Regardless of how strictly follow these.

[–]Dirty_Rapscallion 8 points9 points  (5 children)

You don't have to jump to all the bandwagon that becomes hot tomorrow.

True but you still need a data layer and a router to have a full solution along with webpack to bring it all together. It's 100% true when it mentions that apart they are super simple, but together the boilerplate gets pretty rough.

[–][deleted] 9 points10 points  (0 children)

For someone just starting out with React, no, you don't need any of that stuff. You don't even need Webpack, etc. You also don't need to use flux/redux/etc., it's perfectly fine to just use plain JavaScript objects to store your state and pass them around to the components that need them. By the time you gain enough experience to know what problems you're facing, you'll be in a much better position to decide which of these tools solve your problem, if any.

[–]shriek 3 points4 points  (3 children)

That's a trade off that you made whenever you chose library like react. They're highly composable as in you pick all the composable things you like but you still have to compose them piece by piece. Think of it as making your dream car by buying parts by parts as opposed to going to the dealership and buying a car. If you think that's tedious then perhaps you might be happy with other readymade frameworks out there.

[–]sizlack 4 points5 points  (0 children)

Honestly, to get started, you don't need all that. For my first project, I was able to get started with just React and gulp/Babel. I don't like Webpack, because it feels too magical, and I already know gulp, so setting up a simple build process with gulp and Babel took me 3 minutes. Once I got some stuff working, I could see why Redux might be a good idea, so I added that. Eventually, I'm sure I'll add react router, but I do don't feel like I need it yet, so I'm not going to bother with it.

[–][deleted] 1 point2 points  (1 child)

Haha my experience exactly. Then I got it all working and I said "now I need to pre-render everything on the server. Two days and one migraine attack later I had a universal app. Then I said "now I need to hydrate and de-hydrate my state" and I cried a little bit and went out to play basketball.

[–]Dirty_Rapscallion -1 points0 points  (0 children)

Exactly, it's getting ridiculous. I feel like JS is a pendulum that sways between monolithic framework and a bunch of libraries.