The GNU Project Is Looking For Volunteers To Write Free JavaScript Replacements For Non-Free Web Apps

From LinuxReviews
Jump to navigationJump to search
Icecat-icon.png

Most modern websites run lots and lots of non-free JavaScript programs in your web browser when you visit them. The GNU project would very much like to replace these non-free programs with free ones. They are looking for volunteers to help out with this enormous undertaking.

written by 윤채경 (Yoon Chae-kyung)  2021-03-19 - last edited 2021-03-20. © CC BY

Google-tag-manager-js-with-shifted-perspective.jpg
A piece of JavaScript spyware called "google tag manager". A very large portion of the worlds top 100,000 websites embed this piece of proprietary spyware software in their pages.

The world wide web used to be a simple text-based hypertext system. It quickly devolved into a place where the majority of websites serve small programs in JavaScript or, more recently, WebAssembly. These tiny, and sometimes large, web applications do a wide range of things like web browser fingerprinting, stealthy tracking, crypto-currency mining and, on a tiny minority of websites on the modern web, mostly useful things. JavaScript provides the editor functionality for those who want to fix spelling errors, grammar and other mistakes on this website (the desktop version has a fine Edit button).

Free software advocate Alexandre Oliva recently called the rampant use of non-free JavaScript programs on the web "The WWWorst App Store".

Even sites that use JavaScript for mostly benevolent purposes tend to do it using non-free proprietary licensed code. Proprietary software is inherently evil and therefore very bad. Everyone should be using pure free software and share source code so the world becomes a better place.

GNU LibreJS To The Rescue

GNU IceCat 78.8.0esr.jpg
GNU IceCat 78.8esr showing how wonderfully functional most websites are in it thanks to the included and enabled by-default LibreJS browser extension.

The GNU project is a 37 year old organization dedicated to writing completely free software - with no compromises from those ideals. It was founded by honorary doctor Richard Stallman on September 27th, 1983. The GNU project develops and maintains a variety of important software such as the GNU project C and C++ compiler gcc.

The GNU project maintains a web browser called GNU IceCat. It is, slightly simplified, nothing more than a shell script that re-brands and builds Mozilla Firefox and adds some freedom-promoting extensions to it.

GNU IceCat comes with a border-line criminally unuserfriendly extension called "LibreJS". It disables all the evil proprietary JavaScript modern websites serve as well as the vast majority of the free JavaScript served by free software content management systems used by websites that are hosted using nothing but free software. The latter very unfortunate.

LibreJS can identify free JavaScript software using a special snowflake GNU standard nobody cares about. The GNU website has a page describing this standard titled "Setting Your JavaScript Free". It lays out how you can set your already free JavaScript free by creating a special web page with a special table id="jslicense-labels1"> table with td table cells with <a href=""> links to every JavaScript files minified version, their licenses and clean source code versions. LibreJS, and nothing else, will use that special page to decide if JavaScript programs should be granted permission to execute. You will, of course, need to have a regular <a href=""> link with a rel="jslicense" visible on every single web page you serve for this to work because it would just be too logical to do it with a <meta name="jslicense" /> in the <head></head> section.

Adding tags for existing JavaScript is a job for the worlds webmasters, it is not what the GNU Project is calling out for help with right now. You can add those tags to your own website if you have one and you care deeply about the 0.00001% of all web users who use GNU IceCat.

The GNU Project is calling for volunteers who are willing to help solve a larger problem: They are looking for people who are willing to write free software drop-in replacements for all the non-free JavaScript most modern websites rely on. Most of the worlds most visited websites are completely broken when JavaScript is fully disabled by LibreJS or similar web browser extensions like NoScript. Web filters like Ublock Origin take a different approach that leaves most websites working when their malicious JavaScripts are disabled: Ublock Origin filters by intent, not license. Filtering by license means that all JavaScript programs are disabled as long as they are non-free software - regardless of what they do.

Replacing the non-free JavaScript on all the websites LibreJS breaks, and that would be the vast majority of them, with free software replacements is no small undertaking. The GNU project will only need to write a replacement script for every single proprietary JavaScript served by every single website in the world in order to make the GNU IceCat web browser with its LibreJS extension work as well as every other web browser out there already does.

The GNU Projects goal of replacing all the non-free JavaScript out there with free JavaScript, without the help of the developers of the websites serving the non-free JavaScript, it not at all unrealistic. A dedicated team of a thousand developers can easily write replacement JavaScript for sites like YouTube that would make YouTube work for two or perhaps three weeks until YouTube changes their APIs and turn months of effort into a complete waste of time.

You can visit the GNU Projects "Write site-specific extensions to replace sites' JavaScript code" web page if you would like to help create free JavaScript replacements for "high-priority" websites that do not work without evil proprietary JavaScript.

0.00
(0 votes)


avatar

Gnu4ever

7 months ago
Score 0++

Do they actually think these things through? That would lead us nowhere.

Tip: Use mpv "<url>" to watch youtube videos without ads, popups, etc. It runs just fine.
avatar

Yuri

7 months ago
Score 0++

It runs just fine until it occasionally doesn't. mpv uses youtube-dl. Have you noticed how youtube-dl breaks regularly if you don't update it? The same goes for NewPipe and everything else that relies on YouTubes web pages working like they do today tomorrow: They break when YouTube makes some minor update.

I can't imagine the nightmare it would be to re-implement the JavaScript used by Twitter or Facebook or Google or Bing or Yandex or any other bigger site like that. It would be hard to write without intimate knowledge of how those sites work and it would be as good as impossible to maintain.

You can search with mpv too, btw. mpv ytdl://ytsearch5:rockit\ little\ cat (ytdl://ytsearch[n]:keywords where n is the number of results you want)
Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.