The subject says it all – should we be heavily reliant on view libraries such as React and Angular where much of the common application logic is abstracted away in favor for focusing solely on the actual business code that users are going to interact with?
I’m coming to the conclusion that these libraries aren’t really needed and in fact deceiving developers with benefit of convenience. These libraries and frameworks still require ramp up time even for an intermediate or expert since our projects need to coincide to the paradigms set by the library. Which is great if you want consistency amongst the project and the team working on it.
However, I’m noticing while working with others or being the sole developer that these major view libraries are often getting in the way of the business logic. When this happens, much of the estimated time is lost to researching the road blocks encountered with the library. Not so much the implementation.
I can see the purpose of having a view library like React or Angular when you have project that has grown in complexity that it’s no longer feasible to devote time to individually building the “application” logic. But most projects we’ll ever build will most likely never reach the complexity that you typically see in enterprise apps.
Therefore, why not just build it from a base level or as coined “building with vanilla html, css, and javascript”? Sure, you’ll incorporate some libraries like lodash or rxjs but do we really need a view library to build our web apps?
I think you just answered your own question It depends on the size and complexity of the project.
As to whether you should at least be familiar with a view library? I would suggest that it would be a good idea to have some experience with at least one (can’t go wrong with React) because that’s what a lot of employers are looking for nowadays.
I can’t even imagine working on a large project without one. People gravitate to these because they make it much easier to manage the app and to build it, scale it, reuse code, organize code, etc.
However, I’m noticing while working with others or being the sole developer that these major view libraries are often getting in the way of the business logic.
I’ve never had this issue of the library getting in the way of business logic. Granted, it took a bit of learning in the beginning to find where to put things, but I’ve never had anything I couldn’t do.
I’m really confused by this statement. Can you provide an example?
Whether using a framework/view library is worth it definitely depends on what you’re doing.
I’ve been working on enterprise web applications for most of my career. I spent years working in an application that was pre Angular/React/Vue (we used jQuery, so I won’t call it “vanilla”, but with today’s JS it would be). We wrote our own application logic. We built it well and we had really smart devlopers maintaining it, so it was fine. I wouldn’t choose to do that again though.
The better you know your core JS and the fundamentals of how the web works, the less of a burden learning a new framework is. Sure, there’s ramp-up time but compared to the ramp-up time of learning the application itself I’d say it’s pretty nominal for any experienced developer. Every job that I’ve been offered has been fine with me not knowning the framework they use before I start.
That’s all in the context of a professional project that is being built to outlast and outgrow its current development team. If I was building my own hobby project, I’d probably skip it for a static site, but if it’s going to be more involved than that I’ll probably use a framework. Either I’ll use it as a way to try out a new one, or I’ll just use the tool that I’m currently the most familiar and comfortable with.
Things I can do myself but prefer to use tools for because it’s just a nicer experience:
I stick with the idea that if your project continues to grow in complexity you either end up creating your own framework, or your already using one.
The main question is if your project will ever grow that complex in the first place. If it wont, then yea you can probably do it without any library/framework. If you can’t answer, you might be walking down the path where you just end up creating your own framework. Which creates a lot of problems in itself. There isn’t a rule that a framework you create will work better than some generic one. You could easily create a more convoluted mess haha.
This is probably the most important point. Consistency means determinable risk. Regardless of what you end up doing, being consistent with it will lessen the risk to what is known.
To look at it another way - the modern view/UI libraries were created to solve a problem - apps were getting too complex to easily manage and quickly develop. I think it’s fair to say that most devs like that. Many of the largest companies depend on these libraries. If you want to remove them, how would you solve that initial problem.
As has been said, that may not be an issue in small projects, but most of us don’t end up working on tiny projects.
Honestly, if an employer has a requirement that you need to know React before joining their team then it makes me hesitant to work for them. It’s because I question if everyone on their development team is on the same page with regards to paradigm.
I’m recounting from personal experience and is just my opinion.
I have no idea what that means. Why would it be bad to confirm that everyone knows the prevailing technology? If I own a pastry shop, why would it be wrong to ask that newhires have experience with pastries? Or perhaps more to point would be if my pastry shop used the Dyno-Mixer 8000, that has a 3 month learning curve? You could argue that cooking in general is just as good, but I have the right to chose someone that I think will add value to the team as fast as possible.
And being a React developer, when I was on a large team, and someone who had never done React got moved to the team - we were in for several months of messy React code and confusion, some of which got missed and made it into the code base. Ugh!
To be honest, I really haven’t understood the statements you’ve made criticizing these, from this, or “view libraries are often getting in the way of the business logic” - I just don’t see it. Look, I get it, you really, really don’t like view libraries. But most of the coding world finds them to be a huge advantage.