dillo 2 really kicks ass. if i had money i'd donate to their cause, the world really needs more variety in browser tech. i'm starting to write one in GTK2HS, but its more like a tabulator-style data-browser than making any attempts at supporting SQL, JS, ACID TEST 3.0, and all the other unnecessary stuff that makes firefox take 30 seconds to launch..
here's a pretty simple contest. boot up ms-1013 from cold power no cache (gotta remember the command to flush that without rebooting, but im messing with ati's proprietary drivers to see if it makes ctrl-+ not lock up firefox for 10 seconds as it redraws (zoom is plenty fast in Opera, and even other GTK apps that use Pango, so i dont know why im trying the video drivers, it shows how desperate i am for a decent web browser, what with WebKit-GTK failing to compile half the time, and segfaulting soon after a brief period of tabless slow operation)
before reboot, i went thru and disabled everything. i mean stuff like this:
user_pref("app.update.enabled", false); user_pref("browser.fixup.alternate.enabled", false); user_pref("browser.microsummary.enabled", false); user_pref("browser.formfill.enable", false); user_pref("browser.safebrowsing.malware.enabled", false); user_pref("browser.search.suggest.enabled", false); user_pref("browser.sessionstore.enabled", false); user_pref("browser.xul.error_pages.enabled", false); user_pref("dom.event.contextmenu.enabled", false); user_pref("dom.storage.enabled", false); user_pref("extensions.blocklist.enabled", false); user_pref("extensions.update.enabled", false); user_pref("javascript.enabled", false); user_pref("keyword.enabled", false); user_pref("security.OCSP.enabled", 0); user_pref("svg.enabled", false);
unfortunately this Acrobat Reader style trick doesnt seem to work on firepig:
this is pure reaction time - press ctrl-q once the window was open. so it includes destruction as well. (firefox took about 3, id say)
time firefox real 0m27.864s user 0m0.635s sys 0m0.161s time dillo real 0m0.091s user 0m0.030s sys 0m0.013s
launch time quickly creeps back to ~27 as linux is pretty aggressive about caching the recently-accessed
if i was going to make an attempt at using mozilla's OS id try to make it boot faster, like initng, cold power to dwm desktop and a rxvt-unicode in about 10 seconds, for comparison. that includes the kernel waiting for the damn disk to spin up, among other things like starting the entire OS . emacs starts in about 5 seconds too.,
its after all this that i ask "what do i _need_' that requires JS? well.. nothing. i order from amazon about once a month, so i can just borrow someone else's comp for a second, and delete my cookies afterwards.
this is the same kind of thing as why i abandoned Redland's RASQAL. basic SPARQL queries were taking 5 seconds, whether BerkeleyDB, SQLite, or MySQL... im sure my db would be considered a joke by most, but for the queries _i_ do the results come back in 50 ms or so. i think this is part of a larger epidemic in many software projects revolving 'standards', overspecification (why is there 23-step if/then case statement stuff spelled out in HTML5? shouldnt that be in some kind of user-agent spec instead?) complicating the trivial:
- although RDF makes a big deal about # meaning 'these resources are children of this one, because the URI has a certain char in a certain place', it also insists URIs are opaque, so you cant benefit from the implicit tree thats going on there.
- same with /'s, the hash-vs-slash debate only even exists because of the assumption that 'http://host/a/b/file.rdf means file.rdf is a file on disk, at this point in the subtree' but in "follow the W3C rules" RDF APIs youre reduced to doing string regexes on every URI in the database to find the children, or reinventing your own layer on top of said lib (now in slow triples and even more indirection via slow python and even additionally tunneled thru an HTTP request and a layer of serialization and parsing - all instead of simple syscall), due to their pathological denial of certain things that they also assume in other areas. at least they could be consistent.
HTML5 could be serious if it stuck to document markup instead of being a tightly-interdependent clusterfuck of highly-specific user-agent behavior (raising the barrier of entry incredibly high, and likely causing projects like Dillo to ignore the useful bits lest they be buried so deep)
a 30 second launch time is a great punishment (and telltale sign) for ignoring the 'nix philosophy and abstraction sense by building an entire OS inside a single process (then doing that in Javascript (then letting a few Google/Apple-employed Wiki-editors/OS-coders dictate your API)). thousands of VCs seem to disagree with me, though. if i'd found a way to profit off of the fact practically the entire planet is letting arbitrary JS be run on their machines for the main purpose of displaying ads i'd consider it a pretty lucky coincidence and worry how much longer it could last before people switch to better tools and are able to find what they need without going thru a single central index. if theres any doubt i'm completely incompatible with the modern tech industry, how does complete divorce with decades of common abstraction sense and hyperfocus on inverse distribution sum it up? refreshingly, Dillo is grounded in sanity and reason and respect for common sense, i love them for it. 306x faster launch time is just icing on the cake really, but would have been much harder if they had tried to implement HTML5..
i think the whole HTML5 thing grows out of some human satisfaction in trying to prescribe/create order. its some feeling one might get from organizing your closet. i wonder what Hixie's closet looks like. a bunch of nested/interlocking boxes on a single shelf with a bunch of empty space everywhere else?
the XHTML2 shelf is looking pretty empty too, with Dillo trying to save shelley's site to disk instead of letting me read it :/ one reason i've decided i cant put off writing my own user-agent any more..