| Front-end stuff doesn't have to be complex, but it is. For example, a lot of places using React think they need Redux too. And React-router. And many other components. React itself is quite simple. But the architectures that developers build are often incredibly complex. This was the case with jQuery, Angular, and things that came before. I see two main problems in software development, especially on the front-end. First, developers jump on brand-new ground-breaking frameworks and use them in production, learning how they work as they go. This results in brittle systems. That's not necessarily bad, but it's not always great from a maintenance perspective. React is hot right now. But there are a ton of in-production Angular 1.x apps out there because that was what was hot when those projects started. That brings me to the second problem in tech - developers doing the "hot new thing" displaying a ton of hubris. It's "easy" and "straightforward", implying that anyone who doesn't get it just isn't smart or will be obsolete soon. I'd worry more about losing my job due to not keeping up with machine learning rather than not learning whatever new JS framework people think is hot right now. Here's the deal - web developers figured out server-side rendering 20 years ago, and managed to make turning databases into web pages easy about 12 years ago. It's possible to create applications that people love using a lot of that technology, with some JS on top. It's certainly faster to go to market with something that way. Not every app is Facebook. A lot of the stuff people work on outside of HN fall into one of two categories: 1. Apps that are behind a firewall - internal in nature, used by a handful of enterprise users.
2. Apps that won't be around in 3 years from now because the company will shift focus/replace it with an off-the-shelf product/company gets acquired. In both those cases, I'd look for the simplest approach to get something running, and simplest to maintain. Bottom line: it's easier to leverage existing skill-sets than it is to ask people to learn a whole new thing all the time. Anyway, at the end of the day, I don't really get too worked up about how another person chooses to solve the "make the browser display a web app." Every situation is different. React can be simple. So can server-side rendering with some Knockout/Stimulus/Intercooler/jQuery sprinkled around. Maintainable quality code that makes money wins in the long run. Whatever you implement it in. |