Why are there so many damn front-end web frameworks?

Chris Davies
Jan 16, 2018 · 3 min read

(Or, haters, please go hate somewhere other than Reddit and Hacker News.)

All logos used with complete disregard for copyright and trademark law.

Let’s say you’ve written something amazing in JavaScript and you share it on Reddit or Hacker News. Guess what the first 97 comments are going to say? Some variation of:

  • Real engineers use Rust.
  • Why, oh why are people still building stuff with JavaScript?
  • I hope WebASM obsoletes this soon.
  • JavaScript ate my grandma.
  • Surprise, surprise, yet another front end web framework…

It’s that last comment that I want to address. I’ve got JS fatigue comment fatigue.

Yes. There are a lot of front end web frameworks. Why is that a problem? Why don’t I hear constant complaints about literally every other duplication of effort that occurs in our industry?

Why we haz all the things?

Other duplication? Well, yes.

  • Are there too many databases for you? MariaDB, Postsgres, MySQL, Oracle, Sql Server, DB2, Firebird…
  • Are there too many back-end web frameworks? (Let’s just look at a subset of the JVM options.) Dropwizard, Grails, GWT, JHipster, JSF, Play, Spring Boot, Spring MVC, Struts, Vaadin…
  • Are there too many text editors? Vim, Emacs, Textedit, Sublime, VS Code, Notepad++, Pico…
  • Are there too many video game engines? Unreal, Unity, Torque3D, RAGE, CryEngine, Blender (the game engine)…
  • Are there too many ways to write Windows apps? Winforms, WPF, WinRT, UWP…
  • Are there too many programming languages? Rust, C#, Java, Go, F#, OCaml, Clojure, JavaScript, Haskell, TypeScript, Ruby, Python, Swift, Kotlin, Racket…
  • Are there too many cloud service providers? DigitalOcean, AWS, Azure, GCE, IBM Cloud, Linode…

If you answered yes to any of these, then might I suggest that you’re in the wrong industry? It turns out that when you look at any mainstream slice of the industry, you find — choices. The front-end space isn’t unique in delivering a lot of options. Surprise! Technologists seem to like technology, tinkering, inventing, and creating. This necessarily produces a variety of tools that approach the same problem from different perspectives. And I think this is a great thing.

I just need someone to tell me what to choose…

You want car? We have car. Nice car. It travels sometimes. It comes in grey and grey.

You want database? We have database.

It’s true that we have too much choice, or more often — the illusion of too much choice, such as 2000 variations of the same toothpaste… And it’s true that choice is tiring.

Even so, I’m glad we have so much choice.

I’m glad we didn’t stop with jQuery and say, you know, that’s good enough. I’m glad that Angular 1.x isn’t the de facto way to develop for the web. I’m really glad we have React, as it’s allowed me to enjoy functional programming in my day-to-day work in a way that I never have before, and it’s opened the door for some really great ClojureScript programming experiences.

I’m glad that smart people like David Nolen, Rich Harris, Evan Czaplicki and others aren’t satisfied with the status quo and continue to look for better ways for us to build rich web experiences.

So, please stop.

If you don’t like web development or web developers or technology or life… that’s fine. But please stop spamming all of the comment threads. I don’t particularly care for PHP or Rails, but I don’t spam every article about those subjects with my hatred. Let those of us who do like a technology have a meaningful discussion about it without having to wade through pages of angry noise.

Thank you.

Chris Davies

Written by

Software Engineer, nerd, ‘n stuff