Re: New Module Proposal. libseed
- From: Robert Carr <carrr rpi edu>
- To: Owen Taylor <otaylor redhat com>
- Cc: desktop-devel-list gnome org
- Subject: Re: New Module Proposal. libseed
- Date: Thu, 14 May 2009 00:57:52 -0400
On Wed, May 13, 2009 at 2:38 PM, Owen Taylor <otaylor redhat com> wrote:
> I wanted to provide some gnome-shell perspective here.
>
> In quick summary, we'd see including libseed in the GNOME-2.28 desktop
> set as a positive step toward heavier use of Javascript in GNOME in the
> future.
>
> Porting gnome-shell to Seed would certainly not be a big deal; I would
> sigh in regret over losing const and let and destructuring assignment
> (most over the last), but in the end, they don't determine the overall
> feel of programming with Javascript; or whether Javascript is a good or
> bad idea.
>
> (And conversely, if libseed didn't work out for some unforseeable
> reason, we could easily port GNOME modules using it to gjs post 2.28,
> with at most a week or two of feature work on gjs.)
>
> Quick comparison from my perspective between the two sets of systems:
>
> Spidermonkey: Mature, good API for extensibility. Nice language
> extensions. (JS 1.7.) Mostly packaged as part of xulrunner, which is
> a problem. Maintained by an organization that has a thorough
> commitment to open source. (That doesn't mean that we have more
> influence over the direction, necessarily, but is worth noting.)
>
> JavascriptCore: Newer, not used much outside of WebKit so far.
>
> GJS: Fairly limited set of features, but those that are there are
> done well.
>
> Seed: More features, common features are quite compatible with GJS.
> I'm not delighted with how GObject subclassing was done, but if we
> have better proposals, we can certainly lobby and submit patches
> to change things :-)
>
> (The big caveat from the above is that I haven't worked with Seed or
> JavascriptCore at all.)
>
> Speed comparisons just don't matter for anything we are doing, and it's
> not going to be long-term accurate either; what's faster now may not be
> faster in 6 months. I'm more concerned about garbage collection, but
> honestly both of the engines have garbage collectors that are tuned for
> web page usage and not for the desktop. From discussions with Rob
> earlier, Spidermonkey may have a slight lead in flexibility in this
> area.
>
> The more important differences really are:
>
> - Alignment with HTML components in GNOME. The apparent trend towards
> WebKit in Epiphany, Yelp, etc certainly gives a strong impetus to
> going towards JavascriptCore and avoiding a Gecko dependency.
>
> - Activity of maintainership. Rob and Tim are appear committed to
> libseed as a GNOME component and interested in it as a project
> in its own right. The people at litl have done a good job with
> gjs, but the work that they do on it is features that their code
> needs. The work that we've done it from the gnome-shell side
> are features that gnome-shell needs.
>
> Are we going to switch gnome-shell to libseed if it gets accepted as a
> desktop module for 2.28. Not sure - it certainly would make it simpler
> to compile gnome-shell as an add-on to a 2.28 distribution of GNOME. On
> the other hand we're more comfortable with the gjs/SpiderMonkey codebase
> at this point, and moving over might not be a good use of time.
>
> - Owen
>
> P.S. - Is compatibility with Javascript standards a concern? No.
> Not at all. Javascript standardization is highly politicized and
> affected by concerns like what Microsoft can implement in IE and
> in general by considerations of cross-browser compatibility. We
> should use whatever dialect of Javascript is supported by our engine
> that makes our life better.
>
>
I agree with most of these points (excluding the fact that I am
obviously personally more comfortable with WebKit). With a few small
nitpicks, notably that JSCore already has 'const'.
I would definitely welcome comments on different ways to do GObject
subclassing, the interface is still changing a bit in Seed (and I
would say is much cleaner now, however the only way to add GObject
properties now is somewhat horrific...however this is something that
you very rarely want to do anyway). It's a bit of a weird interface in
general I suppose, but it seems to be working pretty well.
I think, after I look at porting GNOME Shell, if people are still
uncomfortable with Seed/JSCore, I would be willing to maintain Seed
compatible branch for the duration of the 2.28-2.30 cycle, and keep it
in sync with the main branch (barring any radical reorganization that
makes his very painful).
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]