edbrowse-dev - development list for edbrowse
 help / color / mirror / Atom feed
From: Adam Thompson <arthompson1990@gmail.com>
To: Karl Dahlke <eklhad@comcast.net>
Cc: edbrowse-dev@lists.the-brannons.com
Subject: Re: [Edbrowse-dev] One program Two processes
Date: Fri, 25 Dec 2015 23:18:11 +0000	[thread overview]
Message-ID: <20151225231811.GA3834@hob.adamthompson.me.uk> (raw)
In-Reply-To: <20151124212941.eklhad@comcast.net>

[-- Attachment #1: Type: text/plain, Size: 3820 bytes --]

On Thu, Dec 24, 2015 at 09:29:41PM -0500, Karl Dahlke wrote:
> Well as we consider various architectures
> I always keep in the back of my head that we're a couple of volunteers in our spare time.
> (I wonder how many fulltime people work on Chrome, or Edge.)
> We may not have the resources to do it the best way.

We're resource limited in terms of developers perhaps,
but we should aim for a good design since this usually makes things easier in the long run.
I think the time this will take to get right is probably worth the effort,
particularly as we're currently progressing at a relatively fast rate.

> In fact this year has been an anomaly, with Geoff and Kevin joining us,
> and really making good progress.

It's also brought us closer to getting more websites working and we've
gained a lot of momentum as a project because of there hard work.
I think we shouldn't waste this momentum and,
although we may move incrementally, I think we need to increment in the right
direction, even if that makes the individual increments smaller than they
otherwise may be.

> > That's cool, but what if async starts taking a long time,
> > like some sort of exponential algorithm or something?
> 
> Then it takes a long time.
> It shouldn't, unless the js page is badly written, but if it does, then so be it.
> I'm not trying to be glib, just saying we don't have the time or resources
> to build a preemtive time slicing operating system in edbrowse,
> that can context switch in and out of js sessions,
> in an engine independent fashion, or even within the constraints of a fixed engine -
> I think we're just not going to have the time for that.

And I'm not suggesting for a moment that we do that.
That's why a good architecture is important,
so that the underlying operating system can handle that stuff.
What I mean is that, by using processes and threads correctly,
we can get the async stuff to run without having to manage our own,
instruction level, time slicing.

> Pieces of js run under the ospices of the engine,
> without preemption, in their particular context / window,
> and we just hope they are sane.
> On a modern computer, a js computation would have to be insane
> to last more than a millisecond, and sure it could happen,
> and if it does edbrowse might not react as well as Chrome,
> but sometimes we're trying to get it functional,
> without necessarily covering all the corner cases.

That's true, but, as I said above, I'd rather we take smaller steps towards an
architecture which can, when we have time to implement them,
handle all the corner cases rather than jump on an easier one which we then
have to rewrite in the future when we need true async stuff.
We've done that before in other areas and it's taken a while to fix those problems.
Also, there are several well established design patterns which will completely
kill edbrowse with the new synchronous http.
One of which uses a long running http request to allow a server to push
information periodically to a web page.
This currently will cause edbrowse to hang indefinitely,
which is probably not what we want. Unfortunately,
things like this are increasingly common as developpers expect AJAX to be
truely asynchronous.
I'm not saying to hold on what we've currently got, far from it,
but rather I'm saying we need to think about this when designing things.

> P.S. If my finances continue to nosedive I might have to return to the work force,
> and that's one less edbrowse developer.
> Let's hope that doesn't happen.

It'd be a shame if you have to go back to work, but if it happens it happens.
That only makes it even more important to put in the correct foundations now
rather than keep saying we don't have time to create them.

Cheers,
Adam.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

  reply	other threads:[~2015-12-25 23:18 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-23 15:09 Karl Dahlke
2015-12-23 18:45 ` Adam Thompson
2015-12-23 19:07   ` Karl Dahlke
2015-12-23 19:59   ` Chris Brannon
2015-12-23 20:44     ` Karl Dahlke
2015-12-24 11:19       ` Adam Thompson
2015-12-24 13:15         ` Karl Dahlke
2015-12-24 18:39           ` Adam Thompson
2015-12-25  2:29             ` Karl Dahlke
2015-12-25 23:18               ` Adam Thompson [this message]
2015-12-25 23:51                 ` Karl Dahlke
2015-12-26  9:11                   ` Adam Thompson
2015-12-26 13:36                     ` Karl Dahlke
2015-12-26 15:10                       ` Adam Thompson
2015-12-26 15:23                         ` Karl Dahlke
2015-12-26 15:40                           ` Adam Thompson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151225231811.GA3834@hob.adamthompson.me.uk \
    --to=arthompson1990@gmail.com \
    --cc=edbrowse-dev@lists.the-brannons.com \
    --cc=eklhad@comcast.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).