DEV Community

Discussion on: What makes frontend so miserable for backend developers?

Collapse
 
sshine profile image
Simon Shine

I'm a full-stack developer, but three years ago I joined a company that was in sore need of front-end efforts, so I said that I wouldn't mind being responsible for that, too. (The developers were mainly computer scientists who also did not like front-end work.)

Front-end used to get a bad rep for being chaotic, unpredictable and without methodic rigour. Today you can transpile any language you like so that it executes in the browser, or pick from a large number of front-end-native languages, including strongly typed functional ones. The front-end is testable, frameworkey and event-driven. Both Elm and Vue (just to name the ones I've tried) have interactive debuggers built into the browser that let you isolate the app's state space!

So TODAY, what makes front-end unpleasant for me?

  • The VMs you execute on are still single-threaded.
  • UI design is very cross-disciplinary, but design systems are not that common yet.
  • Front-end mostly means web, and web trends shift, making single expectations fluctuate. Did you design a command-line tool 30 years ago? The UI probably still works fine!
  • The space seems to be growing so fast that it's hard to keep track of. This is both a blessing and a curse. Most of the top-rated front-end tech brands are very young, so it's hard to pick your tech entirely based on how long something survived.

The fact that front-end web development has all the conveniences of modern-day software development has the unpleasant effect that I have to actually sit down and learn how to apply those to make the experience pleasant. I don't count that as a drawback because the alternative is worse.

The real drag with modern-day web development is that the web's persistency is not respected. With static HTML pages hosted on university servers in the early days, there was a sense of persistency since it actually required more effort to change things up than to simply append to what you had. How do you hyperlink an infiniscroll?