[webkit-dev] glib bindings

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Sep 18 06:22:19 PDT 2008


folks, hi,
as you may be aware, the speed at which i write code, make decisions
and get results is... lightning quick - some would say scarily quick.
the last time i was involved in a major free software project, on
which many individuals, companies and organisations relied to save
vast amounts of money, it went horribly horribly wrong in a very short
amount of time.  the question, "surely it doesn't have to be as
complicated as all that" got asked - and many of you will know that
when that question gets asked, on any project, it's time to run like
hell as fast as you can (which, as i was learning that particular
lesson at the time, i didn't do...).
webkit is an absolutely fantastic project - and it is also a
strategically damn important one, at the cross-roads of a major list
of who's who of free software projects - looking at
http://trac.webkit.org/wiki/ApplicationsGtk it's like... every major
user-interface project that's anything in free software is on that
list - it's only missing google chrome, kdewebkit and adobe air
because they happen not to be gtk-based applications (which is only
what that wiki page lists).
lots and lots of people are extremely excited by the possibilities
that having free software bindings to webkit's DOM model opens up.
they may not necessarily know _exactly_ why, but they can feel it.
much of the reason for not knowing exactly why is because the glib
bindings turn webkit into an extremely powerful widget set in its own
right, rather than "just another application", and so, much of the
excitement comes from knowing that a great deal is possible, and
looking forward to seeing those future applications come about.
i've done - completed - much of the work, already.  in about two weeks
flat.  the patch, to provide the minimal "complete and useable"
functionality (as opposed to "partially complete and therefore
useless"), is 7000 lines long and a whopping 250k in size,
auto-generates three hundred glib objects and auto-generates 1,500 DOM
manipulation functions, yet provides _three_ - only three - additional
entry-point functions into the webkit-gtk port (and two of those are,
strictly speaking, hacks).  with very little modification to the
webkit-gtk port, the "entry interface" between the glib bindings -
which actually have absolutely nothing to do whatsoever with gtk - and
the other ports, e.g. webkit-gtk, can be confined to one - just one -
function, and involve the use of only two glib-bindings-based objects
(it _may_ be possible to get that down to one, but... i'm not so sure
it's a good idea to try).
why am i writing this?
it's quite simple: the amount of work done - in such a short amount of
time - is in excess of people's ability to comprehend and accept.
this is a very common occurrence in my life, leaving people simply
unable to believe that i am capable of achieving what i can in the
time i say i can do it, thus resulting in me receiving no money for
work done.  if i do the work _anyway_, then people get upset,
comprehending neither the how nor the process.  this has got to stop
happening.
so, we're going to start from scratch, with a requirements specificaition:
   http://github.com/lkcl/webkit/wikis/requirementsspecification
from that, the decisions - the path to the results, which can be seen
in the 16401-master branch at
http://github.com/lkcl/webkit/tree/16401.master - are quite
straightforward.  if there's any questions, ask them, and we - not i -
we will fill in the missing gaps.
for the samba tng project, i did just over 2 years of work, sufficient
to break the back of microsoft's monopoly (nearly ten years later).
it took a team of _six_ people _five years_ to catch up with that
work, from the day they started saying "surely it doesn't have to be
as complicated as all that" (i.e. we don't believe, trust or respect
you).  i never want to be in a position where i'm saying "well.... if
you don't believe or trust what i'm saying, you're going to find _out_
why it has to quotes be as complicated as all that unquotes aren't
you".  ever again.
especially not on this project - it's too damn important.
so.
i can't do everything - and i haven't _done_ everything.  there's
still a lot left to be done, even though what's already been done is
already in a useable, useful state.  except for that damn bug #20403
which mocks the gtk show grr.  so - this message goes out, calling all
interested people who would like to see glib bindings in webkit, and
who would like to see python bindings to webkit, and c++ bindings and
everything else, to get involved and move this project forward,
knowing that the path to doing so has already been made much easier
than it would otherwise be (if i wasn't involved).
yours,
l.


More information about the webkit-dev mailing list