A Fundamental Disconnect
The one problem I’ve seen, however, is the fundamental disconnect many of these developers seem to have with the way deploying code on the Web works. In traditional software development, we have some say in the execution environment. On the Web, we don’t.
If we’re writing server-side software in Python or Rails or even PHP, one of two things is true:
- We control the server environment: operating system, language versions, packages, etc.; or
- We don’t control the server environment, but we have knowledge of it and can author your program accordingly so it will execute as anticipated.
In the more traditional installed software world, we can similarly control the environment by placing certain restrictions on what operating systems our code can run on and what the dependencies for its use may be in terms of hard drive space and RAM required. We provide that information up front and users can choose to use our software or use a competing product based on what will work for them.
On the Web, however, all bets are off. The Web is ubiquitous. The Web is messy. And, as much as we might like to control a user’s experience down to the very pixel, those of us who have been working on the Web for a while understand that it’s a fool’s errand and have adjusted our expectations accordingly. Unfortunately, this new crop of Web developers doesn’t seem to have gotten that memo.
All we can do is author a compelling, adaptive experience, cross our fingers, and hope for the best.
The fact is that we can’t absolutely rely on the availability of any specific technology when it comes to delivering a Web experience. Instead, we must look at how we construct that experience and make smarter decisions about how we use specific technologies in order to take advantage of their benefits while simultaneously understanding that their availability is not guaranteed. This is why progressive enhancement is such a useful philosophy.
- A Fundamental Disconnect, by @AaronGustafson
- @AaronGustafson well said.
- The hard truth. It's tough out there. aaron-gustafson.com/notebook/a-fun… @AaronGustafson
- Yeah, I cribbed from the blog post for the book ;-)
- That too ;-)
- Also, I agree, but enjoyed the notion of tossing one of your articles back at you.
- But what actually happened? It wasn't "the zeitgeist", nothing so VAGUE, I'll tell you that much. The answer is there was a fight and advocates for progressive enhancement lost. You can see the portents of doom in this post from Aaron Gustafson in 2014: aaron-gustafson.com/notebook/a-fun…
@Aaron Yes! Great post 🏆
@matthiasott @Aaron Thanks for putting this post back in front of my eyes Matthias.
"The web is messy" and "illusion of control" - just 7 words from Aaron's article, but they convey *so* much.
CommentsNote: These are comments exported from my old blog. Going forward, replies to my posts are only possible via webmentions.
I have been thinking about the same thing also and I can give you my own answer: The new crop of developers are great at programming but not necessarily great at making content.
The "making content" point is really important because this is were we create the experience. HTML is not an application language but used well can give more information than just the visual. Using CSS well and do more than just make a page/screen pretty. Those of us that have been working at this more than 5yrs(?) have adjusted and really now how to work this. And in some ways, developers are (again) slowly learning those lessons.
Absolutely! In fact, I noticed that the free wifi at the Atlanta Airport completely hosed this site. I am working on some ideas for how to harden web pages against injection. I welcome input.
I'd love to explore this further. I think some simple listeners for scripts and stylesheets added to the DOM would go a long way. I can see this being quite useful.
How do Frameworks fit into the conversation? I am trying to steer away from them for now, as I'd like to focus on raw JS. Thoughts?
Goodonya for focusing on “vanilla JS”!