Are we in a scripting-dependency backlash?

I guess that it what it is, but if their use is actually mission critical… I’d take the time. If something went wrong that couldn’t be fixed and they’re actually mission critical, that’s definitely an issue :confused:

So, maybe I’ve fallen on my own sword about blanket statements :wink: but I’m sincerely hoping that using a 20 year old app in any mission critical way really is an exception and not a norm, haha.

Edit: Hoisted on my own petard might be a better term; falling on your sword is an honor-analogy I suppose :smiley:

Indeed. Whenever this topic comes up, the justification for ditching PE is always that 1) if people choose to turn off JS then they get what they deserve (which is not the issue at all), and 2) that some apps are meaningless without JS, which is of course true, but also largely irrelevant, because the real problem is that there are many thousands (if not millions) of sites now that are wholly dependent on JS for no good reason whatsoever.


Well it is for that certain amount of users. There is nothing that is going to break in it any time soon. The HTML doesn’t meet full validation and it looks like hell, but it works in Chrome 42 just as well as it worked in IE4.

It’s probably half a million lines of code and each page renders close to 250kb of data without images.

Honestly, if we did go in and change it, it would probably piss off the users who do use it.

If something goes wrong, it can be fixed. But there’s no reason to bring it to modern standards. (some of the original developers actually still work here!)

Honestly, if we did go in and change it, it would probably piss off the users who do use it.

Isn’t that the story of upgrades?

What’s worse is when the users are the ones crying for the newer standards, better or “prettier” GUI, etc… and then when they get it, do nothing but reminisce about the old one :smiley:

But that site does basically work w/o client-side js running. It’s uglier and not as functional, but it does work.

But too often, prettier often means more complex - just human nature - “let’s those these bells and whistles in. Why? Just because we can!”

I agree with this and I agree with knowing the target market 100%.

Then expect it to work with JS turned off. :confounded:

The site may. Because it’s just a site with some links. The linked apps certainly do not (which are what I was referring to).

Right, and it’s a matter of people who are setting those requirements sometimes not really fully understanding what they’re asking for. Yes, this could be prettier - or even more functional, if we do XYZ during the redesign. But we may be introducing ABC points of failure or complexity as well to add those features. They have to decide what it’s worth to them without having actually used the dreamy new thing they’re thinking of, which I suppose may be difficult.

I’ve rarely been in the position to be the one setting the requirements for a project, so I suppose I shouldn’t be too harsh on people :smiley:

And with proper form markup and submit buttons, the linked apps would work fine. Merely proves my point (IMHO).

What about deleting, ordering, completing, modifying, counting, and sorting?

I mean, it’s a simple app. Yes, it would be easy to recreate using HTML and a traditional backend. But it needs to be recreated in order to achieve that. And the point is you now you have 2 apps to support instead of 1. It’s not the same app with some minor changes, it’s a completely different app that only <2% of general audiences need.

Then with the exception of the sorting (which would be clunky at best with js disable), I would argue it wasn’t built the right way. Anytime I’ve build sites like this, I’ve built the supporting methods so they would work with either the client side or the server side in mind (in other words, one item at a time, or all items at once)

[quote=“DaveMaxwell, post:45, topic:175614”]I would argue it wasn’t built the right way.

And that’s why I think even giving progressive enhancement a consideration is a bad practice to get into the habit of. You are now severely limiting what over 98% of your users can do and experience, because you want to appease less than 2% of them.

When you drop that notion, a whole world of possibilities start opening up. And your time can be spent on those things instead.

The whole thing would be clunky, because you’ll have to constantly refresh the page to do anything. Users don’t like clunky.

1 Like

We’ll have to agree to disagree. You look at it as appeasing, I look at it as not losing 2% of potential customers, especially if they are paying customers. If you have 100,000 customers a year (a low number for most sites), you are really willing to overlook 2,000 customers?

At any point, did I ever say that the experience had to be the same with JS disabled? No, but functional should be expected.

Then you need to evaluate cost vs reward. Do those 2,000 spend enough to justify the extra hours/days or hiring more developers it will take to maintain 2 separate apps? How many of those 2,000 can you just convince to turn on JS? If it’s a corporate need, can you (or they) just call their IT and tell them it doesn’t work so that they can add that site to a whitelist?

And why does it need to be two separate apps? Progressive Enhancement is about adding behaviors which make for a better experience, not for a totally separate experience. So an infinite scrolling functionality calls the method - one just returns one instance, one returns a “page” worth. But the method can be the same.

It takes a little more planning, but there is very little additional work in the long run.

Nice discussion, guys, some good thoughts from all sides.

One thing I’d like to say about PE techniques:

While @mawburn is right, I don’t believe stuff built in AngularJS (or another framework) is going to “break” in 5 years, I do believe that in 5 years, a website built with 5-year-old Angular code is going to be a nightmare to try to update or maintain.

In my opinion, PE techniques ensure that a website is fairly easy to maintain. When you have your 3 layers — content, presentation, and behaviour — in their assigned places, you can go back to the project in 5 or even 15 years and it shouldn’t be that hard to make sense of what’s happening.

But that being said, I have never worked with AngularJS or other such frameworks, so I’m probably not in a position to judge if they will be maintainable in the years down the road.

Just my extra 2 cents. :smiley:


So you are saying that you could make a Angular JS application work without ANY JavaScript with perhaps a 5% increase in time it would take to make the app that only works with JavaScript turned on. I seriously doubt that unless the app has a very small scope and even than you would need two separate sites.

This whole argument is like saying if I take the engine out of my car it should still run, ridiculous. JavaScript is a dependency of the internet. If you turn it off or it is not accessible don’t expect a site to work any different than that of a electronic that has the batteries removed.


This topic has been discussed million times already…but let me chime my own opinion.

To understand my point, one needs to understand that the best technologies invented are the lazy people. For example, ‘TV remote controller’. Just about all technologies get criticized such as ‘TV remote controller promotes obesity because you get less exercise’. This is what’s happening in the JS world. All the lazy people are coming w/ great MV* inventions and they are getting criticized. This is to be expected until it becomes the ‘norm’. I like to use MV* because it’s made by smarter people than I am, I can do the task quicker, and I get to go home on time. Also, they provide bug patches that I don’t need to do, constantly improving performance, and features for ‘free’. I’m not saying DIY Javascript developers are bad. I mean… more power to you but in general most people are lazy (like myself). So go make your house w/ nails and hammers while I would buy a pre-built house where I just need to do minor customization. I realize that no matter what I say can’t convince you pro ‘site must work w/o js’, but you can’t deny that people are generally lazy. With that being said, I am very proud and honor to use any technology to make my job easier.

1 Like

There is no way to get such stats since JavaScript can be turned on and off automatically for different web pages and in some cases such as with this forum needs to be turned on and off while interacting with the web page. If I want to copy/paste content into a post I am making on this site then I need to turn JavaScript off in order to be allowed by the site to do the copy/paste and then turn it back on in order to post. So what fraction would you include in stats for whether I have JavaScript enabled just for this one site - perhaps 1/2 - or should is be off since that part of the site processing is broken for me when JavaScript is on.

There are plenty of other sites with antiquated broken JavaScript that require that you have JavaScript off all the time in order for those sites to function at all. Since not everyone knows how to turn JavaScript on and off as needed those who regularly visit sites with broken JavaScript would have it turned off all the time in order that those sites work.

Enough sites use progressive enhancement that if you decide not to bother then there are plenty of your competitors that those people you don’t cater for can use instead. What might make a difference to you is if they convince all their friends to do the same and their friends do as well. You might find that for each person who your site doesn’t cater for that they and 10,000 of their friends and friends friends etc use your competitors site instead.

You will never get everyone to have JavaScript on all the time until people stop writing JavaScript that breaks.

<noscript> tags will fire if you turn JavaScript off while browsing a page. So you can still test who doesn’t have JavaScript using images.

Unless the plugin specifically disables this behavior or <noscript> tags. But that data would just be considered outlier data and probably shouldn’t be factored in anyway.

Why would it - the page has already rendered.

I don’t see any noscript content suddenly appearing when I temporarily turn JavaScript off here in order to copy/paste and nothing disappears when I turn JavaScript back on.