The Javascript pendulum has swung from restrictive, monolithic frameworks to modular, boilerplate-hindered libraries.<p>I personally know many newbies who find it extremely hard to dive into the React/Redux realm because there is a serious learning curve.<p>I think we need to strike a balance. Too much of an unopinionated ecosystem can do more harm than good. What are your thoughts?
Javascript for a while was full of MVC/MVVM frameworks, and React came along and only gave you the V and some basic hooks, expecting you to supply the rest yourself. This worked well for some specialized use-cases, but you couldn't replace Angular/Backbone/Ember with it, which is what people also want.<p>Speaking as someone who started off as being dismissive of 'enterprisey' programming but later went on to write a lot of Java, problem domains are actually fairly complex, and a framework is designed to restrict the things you have to think about so you can get work done.<p>When you chain minimalistic libraries together, you have to do all the work yourself; and some newbies are put off by this. On the other hand, it makes most quickstarts really simple, so I think it hits both ways.<p>I think having a choice of high-quality libraries is nice; some are backed by big corporations unlikely to disappear overnight; some are hobbyist projects crafted by a loving community. I believe React+Redux is a good thing, causing people to think about all the complexity that goes into MVU, MVC, MVVM and is generally hidden beneath a monolithic framework.
Configuration boilerplate isn't always so necessary. For those who want to have their cake and eat it, too:<p>1. <a href="https://github.com/facebookincubator/create-react-app" rel="nofollow">https://github.com/facebookincubator/create-react-app</a>
2. <a href="https://github.com/mozilla/neo" rel="nofollow">https://github.com/mozilla/neo</a>
> I personally know many newbies who find it extremely hard to dive into the React/Redux realm because there is a serious learning curve.<p>As opposed to… classical OO frameworks where it's easy to dive in and build something that no one in the can maintain six months later? The failing in this this scenario is actually exactly the same as in javascript's unopinionated tools:<p>Training.<p>I wouldn't expect a new developer to be adequately prepared to contribute effectively to any system and in some cases I wouldn't expect an experienced developer to contribute effectively to a complex system that they are new to. So what do we do? We standardize training. A walk through the code base that every new developer partakes in upon joining the team. Required reading, a document detailing the architecture of the system with pointers to files which implement the pieces which are critical to understand and code reviews.<p>Another critical part of training, or perhaps just learning how to get around the world in general, is that at some point you have make a call and use what's right for you. Here's the kicker: this decision that so many want someone else to make for them, the down sides of making that decision poorly aren't that bad. Don't want to spend time forming your own opinions about how to go about using otherwise unopinionated tools? There are opinionated tools for you! Ember and Angular are both great frameworks. If they happen to be wrong for your application will the project just flat out fail? No, of course not. It'll get done. You'll bend the rules(which are only opinions) in a few places and get what you want in the end.<p>I'm a React user myself but my experience has given me the understanding and empathy to know that it's not for everyone. I wouldn't recommend it to someone who is truly new to JS or software engineering in general. I'd hand them something that would guide them up the ladder.
If you want to know what the future of Javascript looks like, look at the present of Java.<p>It's a monster language with maximum bureaucracy, but it's not going anywhere, since most large companies already have legacy systems built with Java.<p>But I also am not a fan of this direction just like you. My personal thought is, JS will never lose its dominance just like Java, and it will grow and grow until it becomes a monster like the Java ecosystem, and it will become shittier and shittier.<p>But that is only until something disruptive comes along that will decimate the influence of the desktop web browsing experience as we know it.