AD
Episode
290
Interview
Web News

Web Development Is a Mess: Do We Need Frameworks? Is There Too Much to Learn?

Recorded:
February 6, 2024
Released:
February 20, 2024
Episode Number:
290

Web development, often hailed for its versatility, empowers us to create websites, progressive web apps (PWAs), mobile applications, and robust web-based tools. However, beneath the surface lies a complex landscape far from utopian. To make web development sustainable without the need for networking engineers, IT managers, and server admins - tools that go beyond the vanilla platform (HTML, CSS, JS) have become staples of the industry (NodeJS, Svelte/Kit, Angular, etc.). These tools provide web developers with the ability to perform complex and time-consuming tasks with relative ease and without having to touch the underlying layers of technology. The side effect is that many web developers are left learning an absolute ton of technology at a high-level, with very little expertise in one area versus another. In this episode, Matt and Mike discussed the current mess that web development finds itself in as they converse about the sheer amount of material to learn, abstraction layers, and more.

Listen

Also available on...
...and many more, check your podcast app!

Who’s in This Episode?

Show Notes

How to support the show

Patreon

Prices subject to change and are listed in USD

  • Support the show from as little as ~$1/month
  • Get a shoutout at the end of the episode (while supplies last) for just ~$3/month
  • Help support the HTML All The Things Podcast: Click Here

Scrimba Discount!

We receive a monetary kickback when you use our link

  • Learn to code using Scrimba with their interactive follow along code editor
  • Join their exclusive discord communities and network to find your first job!
  • Use this URL to get 10% off on all their paid plans: https://tinyurl.com/ScrimbaHATT


Show Notes

Do we even need frameworks?

  • There are now dozens if not hundreds of frameworks that all do pretty much the same thing
  • They make it easier to provide interactivity and data rendering on the front-end
  • Because of this it seems that for every project, regardless of complexity, developers will reach for a framework due to familiarity 
  • The reality is that this overcomplicates the web when most websites don’t need a full rendering engine/shadow DOM to display some static text coming from a server
  • If your website doesn’t update in real time or directly with user interaction you probably don’t need to reach for a framework, you can get away with having a server that renders and sends HTML (traditional PHP or NodeJS or w/e backend language you want)

Abstraction x1000

  • The aim of any library to is provide something that’s as easy to use to the end user as possible
  • Something like react will have hooks that make doing hard this easier
    - Example use state allows you to set and read state and have it reflect immediately in the UI whenever you explicitly change the state of a declared variable
    - No need to write any comparison functions or createElements, innerHTMLs, etc.
  • What happens when something doesn’t work in the abstraction layer? (React)
  • You have to ask the React team or perhaps dive into the open source code yourself to figure out what is happening
  • This can be a drastic jump in difficulty for a web developer that is just used to consuming these super simple to use layers of abstraction and therefore pretty much impossible
  • This problem intensifies with dependency hell where your abstractions can have multiple layers of dependencies (more abstractions) making it actually impossible to figure out what is going on

Too much to learn

  • Because web development covers such a broad range of applications now your knowledge base has also to expand horizontally
  • You need to learn
    - HTML, CSS, JavaScript (foundations)
    - Frameworks/libraries
    - Server management
    - Deployment pipelines
    - Containerization
    - Cloud service management (AWS)
    - Serverless functions
    - UI libraries
    - Testing
    - Databases
    - Auth
    - DNS
    - Email
    - All different types of hosting
    - Backend
    - And more...
  • Because of this it’s almost impossible to really go deep and become good at one things, web developers tend to be very shallow devs so when a tough issue pops up it becomes a huge challenge to debug and fix

It’s not all bad

  • Framework choice and evolution is good.
    - Frameworks like Svelte and Astro have pushed the envelope into making it easy to build apps and websites without bundling a bunch of useless JavaScript rendering code
  • It is easier to get a working app because of abstraction
    - A thriving Open Source library and framework ecosystem does make it easier for almost anyone to pick up some programming skills and make some really incredible complex applications without knowing how to write a linked list in C
  • A lot of data breaches are preventable and can be mitigated by not sharing customer information with third parties
    - The popularity of web development has made the courses and learning tool eco systems explode with amazing, free and affordable options to learn basic to advanced topics in almost any learning style


Links

  • Michael LaRocca
    - Author of the Self-Taught the X Generation blog, at selftaughttxg.com