Millions of small packages, new frameworks built every day, huge learning and re-learning curve, breaking changes, everyone is doing like he wants, browsers crashes more, mobile network bandwith is huge, tons of tools, transpilers, huge configurations, wasted days to just install, setup tools needed to run real tools, impossible to learn and follow everything, harder to find a frontend engineer, bad design and architecture, SPAs, microservices and other modern buzzwords everywhere, for simple feature 3 frameworks and 3MBs used, developers are not thinking, just copy pasting...

Write your answer…

24 answers

Honestly, I've been thinking this for a while now. I was looking at a React project recently and all that went into it and thought to myself "I think we've gone too far." There was a nice balance about 2-3 years ago but I feel like the last 2 or so years have literally been a game of one upsmanship as to who has the best and hippest tech stack.

Personally, I blame the larger tech firms like Facebook and Google for pushing new proprietary ways of doing things instead of pushing and expanding the standards. Go, JSX, etc might be cool but they seem to exist to answer problems that could be better solved by working to push better open standards like Web Components instead of spinning off on their own direction.

Worse, is now you've got generally stable companies Microsoft getting into the game with .NET 5, I mean DNX, I mean DotNet, I mean .NET Core and even though it's close to release, it's an absolute mess full of shims and missing libraries and work arounds.

Innovation is great. Innovation for innovation's sake is just foolish.

</rant>

It's been a long all nighter debugging this MERN project I inherited.

Spot On3
Clap6

Hashnode is building a friendly and inclusive dev community. Come jump on the bandwagon!

  • 💬 A beginner friendly place

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 >500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Register ( 500k+ developers strong 👊)

My answer is yes. It's overcomplicated.

Web front-end developer create programs for a most popular environment - browser, because browser capabilities and API's are growing extremly fast and it's great.

But let's take a look inside browser. Browser has several separate knowledge areas: html ,css, javascript, dom, bom, data transport, specifications, implementations, tooling. Also you should work with this areas for several platforms: Windows, OS X, Linux, iOS, Android, Windows Mobile, TV. Also you should remember, for example, behavioirs for several render mode: default, transcoder, webview, standalone, quirks mode. Apply this on modern browsers - IE, Opera, Chrome, Firefox, Safari and you will get complex and extremly fast changing eco-system of code.

Just a moment, I forgot to add user experience, accessibility, testing, seo, design, usability, performance, semantics, progressive enhancement , graceful degradation, cvs, cli, ssh, package manager, security, build, livereload, pipes, data formats, fonts, graphics, gpu, open gl, sql, networks, tcp/ip, http, spdy, gzip, deflate, base64, mvp, mvc, mvvc, reactive programming, functional programming, object oriented programming, screen sizes, orientation, jit, ast, llvm, dns, workers, fps, regexp, csrf, clickjacking, bots, pc devices, android app, ios sandbox, nginx, crypto to front-end developer stack. And of course compatibility and bugs of all this things too. And only front-end developer with a huge base of knowlege and experience can look forward without fear.

And of course, it will be always overcomplicated. Frameworks just resolve some problems with capability and data stucture.

P.S. I don't know about .Net eco-system, but in Java in 2008 I have to write 25 variants of the game for most popular phone vendors - Motorolla, Siemens and so on. And of course I had to kept in mind a lot of thinigs, because java was a most popular environment...

1 Beer1
2 Beers2
Spot On1
Clap1

I will be the devil's advocate on this one. While I agree that things have definitely got out of hand in front-end dev, these days, I also think it comes down to how you implement your stack.

For example, if you just use React/Redux and something like Babel for transpiring, this is still a fairly simple stack.

However , what kills me is when developers then tack on a plugin/library/dependency for every problem they have in their app. Form validation, routing, formatting, responsive, AJAX, etc, etc.

I think if we stick as closely to the core of the stacks we choose to employ, then this becomes manageable. You may have to do more work, but there is less to keep track of and fewer opportunities for random changes to a package wrecking your project.

Clap1

I believe that there are a lot of choices when it comes to front end development and that makes it hard for us to focus on 20 things at a time. We are not supposed to know every possible thing there is in web development but it would be cool if we can gather more information and use it. Same applies for life in general.

As we all know, web development as an industry grows more and more each day and people are trying to solve their development problems with new tools, frameworks, libraries, technologies etc. so they release a new tool they think it would be cool for others to check out and use but that adds another tool to use in your every day life. Yeah it will cut down on development time but it will increase the complexity of your project by x2 times.

That means, now people have to learn yet another tool, and spend extra time to use it. That ends up with people being way too spread around and now when you need people who strictly know only a few tools, the exact stack you use, you can't find them, because they are exploring the world of front end development and spending time learning new stuff while never master one thing from that stack.

Don't get me wrong, I love to experiment with different tools and technologies but for some projects, that might be an overkill.

People have to somehow limit their stack to a few tools, they can't work with more than 10 things at a time. It's great if you can use like 20-30 tools at the same time but it will drain your energy fast. It really depends what you are building though.

Here's a fun video to check out [from this point up to the 20th minute], he's talking about general web development but it still applies for front end development.

Load more responses