changeset 37:9282c4cea18c

more about uzbl design
author meillo@marmaro.de
date Sat, 03 Apr 2010 10:33:33 +0200 (2010-04-03)
parents 4f2b2defbc8c
children 3628e9649046
files unix-phil.ms
diffstat 1 files changed, 54 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/unix-phil.ms	Tue Mar 30 23:20:40 2010 +0200
+++ b/unix-phil.ms	Sat Apr 03 10:33:33 2010 +0200
@@ -1301,13 +1301,45 @@
 .B "Avoid captive user interfaces" .
 One could say, that uzbl, to a large extend, actually \fIis\fP
 a captive user interface.
-But the difference to most 
-
+But the difference to most other web browsers is, that uzbl is only
+the captive user interface frontend and the core of the backend.
+Many parts of the backend are independed of uzbl.
+Some are distributed with uzbl, for some external programs, handler scripts
+are distributed, arbitrary additional functionality can be added if desired.
+.PP
+The frontend is captive \(en that is true.
+This is okay for the task of browsing the web, as this task is only relevant
+for humans.
+Automated programs would \fIcrawl\fP the web.
+That means, they read the source directly.
+The source includes all the semantics.
+The graphical representation is just for humans to transfer the semantics
+more intuitively.
 
 .PP
 .B "Make every program a filter" .
-.B "Small is beautiful
-and
+Graphical web browsers are almost dead ends in the chain of information flow.
+Thus it is difficult to see what graphical web browsers should filter.
+Graphical web browsers exist almost only for interactive use by humans.
+The only case when one might want to automate the rendering function is
+to generate images of rendered webpages.
+
+.PP
+.B "Small is beautiful"
+is not easy to apply to a web browser, primary because the rendering task
+is very complex.
+Modern web browsers will always consist of many thousand lines of code,
+unfortunately.
+Using the toolchest approach and wrappers can split the browser into
+several small parts, tough.
+.PP
+Uzbl-core consists of about 3\,500 lines of C code.
+The distribution includes another 3\,500 lines of Shell and Python code,
+which are the handler scripts and plugins like a modal interface.
+Further more, uzbl uses external tools like \fIwget\fP, \fInetcat\fP.
+Up to this point, uzbl looks pretty neat and small.
+The ugly part of uzbl is the web content renderer webkit.
+Webkit consists of roughly 400\,000 (!) lines of code.
 
 .PP
 .B "Build a prototype as soon as possible" .
@@ -1333,6 +1365,24 @@
 .LP
 broken web
 
+.PP
+But all functionality should be accessable at the backend too.
+Uzbl fails here, mainly because of webkit.
+Uzbl is not clearly separated into frontend and backend,
+especially the render engine is not an separate building part,
+like, for instance, the download manager is.
+This comes from the design of webkit.
+Webkit is not a self-standing program but a library to include.
+This might be of need for a graphical application to avoid complexity,
+but webkit has a lot of features included that do not belong to the
+webpage rendering job; a browsing history is just one example.
+.PP
+Ideally, webkit would just render the source of a webpage into a
+nice formated representation.
+.PP
+be a black box
+
+
 
 .NH 2
 Summary uzbl