Richard M. Stallman Explains Why the Web Becoming a Pile of Proprietary JavaScript Programs (Not Pages to Render) Does Harm to Web Users
From last month's talk by Dr. Richard M. Stallman (RMS):
Now, another problem we have with the Web as it is today is that it has become common for web sites to send software to run in users' browsers. The World Wide Web originally operated by transmitting declarative data to a browser and the browser would then, I can't remember the word, render that data as some sort of picture on the screen. And the browser would do this according to code that runs in the users' machines so once there was a free browser users could control how that data would be rendered. The web was designed to let users control how that data would be rendered but businesses didn't like that. Businesses wanted to be able to control how their pages would look to users. And they redesigned things to give the business more and more say in how its pages would look when rendered by a user. Well to some extent it's optional, as long as it was only CSS you could turn it off, you could delete it, various things ultimately you were not under the business' control. But with Javascript it's much worse. Javascript as it's normally used is a program sent by a business or other organization to your computer to run there and practically speaking it is very hard to be able to change it. There are ways. It's a kludge though. And you could hardly ever have the time to study the sometimes very large programs that so many different web sites send you. You may look at that site only for a few minutes and then you're looking at something else no one can feasibly look at these and there's no easy way to distribute to people recommended changes and you don't normally get the real source code either. You get obfuscated code or you get compiled code in the form of assembler language or just numbers. This is no good. We need to go back to a system more like the original web where what you get sent is declarative data, which is then realized as standard kinds of behavior so that normally web sites can work without any specific Javascript code. This means we have to come up with general constructs that can be combined to get a lot of useful results, something like the 1990s windowing toolkits. You combine those, you can get the behavior you want, and it will display reasonably fast but always using code that is part of the system you installed and so we can build up a suitable library of general constructs with various parameters to be set for each one each time it is used and out of those you could build your web page.It would do the specific things it is supposed to do but the thousands of web pages you would look at would be using a finite list of general constructs that can be developed and maintained as Free Software. And who's community verification and maintenance would give you a reason to trust it. In this way, we would have much less malware in the world's web sites.
Now the decentralized web, if it is to be for everyone, must make web pages accessible to everyone. Including stalwarts like me who don't run non-Free Javascript code. So, one thing you've gotta do for a world like this that everyone can participate in is to make sure your web sites are accessible without running non-Free Javascript. And ideally accessible without running non-standard constructs so that your system could include implementations of it.
When I first looked at your web site for this event, I couldn't see most of it because it wouldn't display much without running non-Free Javascript. I think that that was fixed because later on I could see most of the site. This should be a criterion we make sure we fully follow and you have to watch out for making a web site use another web site to do part of the job because you could make all of your Javascript code Free and forget to check whether the other web site's code is Free and the solution for this is to try browsing the site LibreJS enabled. Which will tell you about and block non-Free Javascript. That way you can make sure you've made your web site fully accessible to stallwarts, freedom defending stallwarts.