I’ve been hearing a lot of different, seemingly contradictory messages from the industry in recent weeks regarding frontend frameworks and progressive enhancement. I got so frustrated that I started a discussion on Web Freelancers Hub about it. I felt the answers that came back were worth documenting.
My original post to the group:
So, I’m really confused.
There’s been a huge demand for people who can work with Frontend frameworks especially Angular.js in recent months. For a while, it seemed like I was turning down 5 contracts a week that required this skill.. which I’m now learning.
But now the industry seems to be eating is tail & saying this is bad practice because what if users don’t have Javascript enabled on their browser (for whatever reason)… and I agree with them.
I’m a bit confused / frustrated with these mixed messages — I really agree with recent posts from Jeremy Keith and Aaron Gustaffson but don’t know the best route to take to
a) stay ahead of the game
b) provide the best experience for users.
Anyone else thinking this / have a take on it?
Although there were a few developers who argued that when developing apps, you have to stipulate to users that JS must be enabled, Nick Bramwell was quick to comment in a way that resonated with me: “I’ve been burnt too many times in the past learning things that quickly vanish.”
This is one thing that I’ve been afraid of, since it takes a lot of time to learn frameworks … and I have a young baby to take care of!
Rachel Andrew mentioned a use case that I don’t think we consider enough: “I travel a lot, end up on terrible wifi. At least once per trip I find myself unable to use a site because bits of their JavaScript haven’t made it.” This is also what motivated Scott Jehl to write his book “Responsible Responsive Design”.
Browsers Are Browsers #
So I guess my position is that there may be certain cases we would justifiably use fronted frameworks to enhance the experience for the user, we shouldn’t make it a requirement of our site. Browsers are meant to be used to view and interact with data, and largely cannot be ‘exploited’ — partly because users need protection from such things.
I guess that if responsive design has taught me one thing, it’s that we can’t know the conditions under which our site will be served up to someone, and that we shouldn’t try to know, or to stipulate conditions unless there is a very good reason for doing so.
I’m grateful to be part of a community that I can go to when issues like this come up. For now, I’m going to stick with what I’ve learned with regard to fronted frameworks. Perhaps I might start learning server-side (universal, or isomorphic) JavaScript, because I seem to enjoy seeing what’s possible with the language.”