Diff: [root] @ c8fc0ac8b03 | faq | css

wbmd

File created: brain_cleansing/web_browsers_must_die [Diff]

-- /dev/null++ b/brain_cleansing/web_browsers_must_die
@@ -1 +1,97 @@
h1. Web Browsers Must Die

Web Browser is bloated application that typically offers bunch of technologies for accessing the most inconvenient places of internet.

Let's look at those:

h2. Typical features of a Web Browser

h3. JavaScript/AJAX support

!http://dump.bitcheese.net/files/jycymew/noajax.png!

Useful in very rare cases. Mostly used for abusing user computing resources for sake of distasteful eye-candy. Also, all the browsers support it with specific glitches, so so-called "frameworks" are required to make more or less complicated code work in more than one browser. These "frameworks" take up hundreds of kilobytes, and different methods of code compressing & obfuscating are employed to make it not so fucking slow.

Good example of JavaScript failure is recently released Google's "Closure":http://code.google.com/closure/ tools. These include:

* Perfectly bloated "JS library":http://code.google.com/closure/library/, with custom-drawn, stoned slow widgets, WYSIWING stuff, spinning, whistling and farting stuff and unit testing for digging in the shit in more comfortable way.

* Apotheosis of JS downfall: "Closure Compiler":http://code.google.com/closure/compiler/! So much for interpreted language: you still have to compile *before* you deploy to get good performance. It also includes some kludges for JS, including obfuscated code debugger (that reminded me of recently-released fixer for executables) for Firefox.

* "Closure templates":http://code.google.com/closure/templates/ — rather harmless tool, which allows to load user PC even more by processing templates, to unload server, that's busy running bloated Java/Python crap.

AJAX. The worst thing that happened to web ever. While JS can abuse your resources locally, with AJAX you can get into a fucking botnet with webpage living on its own.

Things that can be done in AJAX:

* Drawing shit all over the page
* Drawing shit with non-standard navigation all over the page.
* Drawing shit that downloads shit.
* Spinning, jumping and beeping shit.
* Turning nice, informational, stateless webpage into fucking self-aware crap, i mean, web application.

AJAX inherited Flash's poor navigational qualities that led to its downfall (see below). It's positioned as cross-browser, plugin-less replacement for it, but doesn't work this way (see above).

HTML is being transformed on the fly with AJAX, like it was a data structure. But it isn't! It's a markup language. It can be malformed, and browsers can't reject it: the browser that displays most pages wins. They try to fix it, while breaking it even more with JS scripts, this leads to even more horrible mess.

h3. Flash

!http://dump.bitcheese.net/files/nogogyx/flash-through-ages-small.png!

Flash is a nice plugin for displaying vector graphics. Let's watch cartoons in it, shall we?

No, we'll use it for: navigation (unusable fance shmancy menus), playing movies, augmenting JS with sockets' access, for anything else but for animations. Let's encode animations in flv, put them in YouTube and watch them with Flash, lol.

Moreover, let's not open the sources, i believe we still can make it even slower yet unportable.

h3. Ad/flash/JS (sic) blocker

!http://dump.bitcheese.net/files/gymorux/this-piece-small.png!

The reason for those (mostly) is to get rid of JS/Flash crap hanging from low-class sites, that gets in your way, slides from sides, hovers the text under your mouse, etc. If you get rid of user-side scripts, you deal with them all at once. JS-less advertisements can hardly do more than aggressively blink. If you don't like advertisements, don't visit the site. You only make them more profittable by doing so. If you need information *that* much, so you absolutely must have it, well, ads are the price for it.

Reasonable ads, like Google "AdSense":https://www.google.com/adsense/ are not distracting and usually well-separated from content, so why bother blocking them? However, if you wish to block such honest ADs, you can easily do it by blocking certain host in /etc/hosts*. More blocking can be done on proxy-side, like using "Privoxy":http://www.privoxy.org/. This solution does not perform vendor lock-in like browser plug-ins do.

h3. Password manager

Well, that one deserves to live, not in that form though. Instead of inputting your login & password in some form and sending in over connection in plaintext, "HTTP Digest Auth":http://en.wikipedia.org/wiki/Digest_access_authentication or even better, SSL public-key auth should be used. In case of first, password can be remembered for host/realm and stored with the rest of protocol passwords, like POP, FTP, etc.

h2. Browsers post-mortem

"IE":http://www.microsoft.com/windows/Internet-explorer/default.aspx — Was great once. Then its developing stalled, and others easily outrun it. Typical insecure MS crap as of today

"Firefox":http://www.mozilla.com/firefox/ — bloated crap that was thrown out to OS by Netscape, when they lost any hope of beating IE. Unfortanately, it's still alive and on its way to vendor-locking web in on itself, taking place place of defeated IE.

"Opera":http://www.opera.com/ — It's not really a browser, it's an Internet client. It features crappy BitTorrent client, awesome IRC and mail clients, and some mad stuff like "Unite":http://unite.opera.com. However, its HTML engine is quite good.

"KHTML":http://en.wikipedia.org/wiki/KHTML based — the most awesome HTML engine so far. Light in memory (compared to others) and displaying HTML correctly. Also, it supports JS, and quite good; Even 3.5.10 did support enough of it (to run a simple onclick(), for which JS is only good for anyway) though.

Browsers include: konqueror (see very below), rekonq (shit).

"WebKit":http://webkit.org/ based: this engine is basically pimped-out (by Apple) KHTML, which is somewhat better than Firefox's Gecko. The most reasonable engine so far.

Notable browsers:

* "Safari":http://www.apple.com/safari/ — not bad for casual web browsing, even on iPhone.

* "uzbl":http://www.uzbl.org/ — This guys got UNIX philosophy all wrong. Their browser does all the complex shit like AJAX anyway. You can tamper with interface and some stuff like bookmarks or cookies though.

h2. What to replace web browsers for?

h2. Reasonable replacement

Universal document viewer, like "Konqueror":http://www.konqueror.org/.

It features viewing all kinds of documents (like PDF, images, texts...) over not only HTTP, but any protocol implemented. It uses KParts (embeddable document viewers) and KIO-slaves (plugins for accessing different protocols) and ties them together to make a truly universal "browser". It doesn't implement anything itself, but hosts reusable pieces of software. Also it features unified means of authenticating (KWallet), suppling cookies (for HTTP), which allows to strip Web of its hyped-up uniqueness and erase border between local and web browsing.

h2. Ideal replacement

It probably would be a similar document viewer that's only capable of browsing filesystem. Remote protocols can be mounted on top of that filesystem on demand, something that can be done with "9p":http://en.wikipedia.org/wiki/9P.

h2. Corrections? Comments? Suggestions?

Mail me.

--
Voker57 <[mailto:voker57@gmail.com]>

By Voker57 on 2009-11-18 17:10:37 +0000