Re: Vala bindings for epiphany?



On Sat, Oct 03, 2009 at 01:50:02PM +0300, Xan Lopez wrote:
> On Sat, Oct 3, 2009 at 1:30 PM, Magnus Therning <magnus therning org> wrote:
> > On Fri, Oct 02, 2009 at 06:00:07PM +0200, Wouter Bolsterlee wrote:
> >> Op vrijdag 25-09-2009 om 22:11 uur [tijdzone +0100], schreef Magnus
> >> Therning:
> >> > Does anyone out there have a .vapi for epiphany's extension API?
> >> >
> >> > I'm particularly interested in the bookmark manipulation API.
> >>
> >> Afaik the idea is to have at least Seed extensions for Epiphany. Python
> >> support has been dropped, and it won't come back. I'm not sure about
> >> Vala, even though there were plans for it:
> >>
> >>   http://uwstopia.nl/blog/2008/07/vala-bindings-for-epiphany-extensions
> >>
> >> But then, I think Seed extensions are designed fill exactly the same
> >> gap, so I'm not sure what the added value of Vala extensions is.
> >
> > Epiphany has always supported  extensions written in C.  Basically Vala would
> > offer a way of writing C extensions in a language that arguably is much nicer
> > to work with :-)
> >
> > My experience with trying to translate a Python extension to Seed was that it
> > wasn't ready for proper use yet:
> >
> >  - Javascript doesn't include many of the handy types that is in Python,
> >   especially dictionaries (maps) and sets.  Vala has Gee.
> 
> Objects in JavaScript are dictionaries (I mean, even the syntax is the
> same...), and I'm sure there's plenty of implementations of data structures
> like Python sets around.

No, they are "dictionary-like", not proper dictionaries.  For instance keys
can only be strings or numbers.

I'm sure there are implementations of sets around for JavaScript.  But that's
just the point, Seed *doesn't come with one*, instead I have to look around
for an implementation to use.  Then I have to track any upstream changes.
It's just not the kind of situation I expect from an extension language.  I'm
sure this is going to change at some point, after all Seed is used in other
parts in Gnome too.

> >  - The GNOME libraries are largely written in C, and even though introspection
> >   makes Seed bindings trivial the API's are distinctly non-object orientated.
> >   Vala's .vapi files manage to offer a much improved API.
> 
> How are Seed bindings not object orientated? Not to say that you can't
> improve things by doing manual fixing of the automated bindings, as usual,
> but I'm not sure what you mean here.

Well, first of all, JavaScript's variant of object orientation has a
distinctive functional feel to me, but beyond that you are right, my comment
was overly harsh.  Seed bindings are as object-orientated as GTK+/GNOME is,
which means it's somewhat limited by its C roots, but offers a good base to
build more idiomatic bindings for different object systems.  I haven't found
any idiomatic bindings for JavaScript/Seed yet though.

/M

-- 
Magnus Therning                        (OpenPGP: 0xAB4DFBA4)
magnus@therning.org          Jabber: magnus@therning.org
http://therning.org/magnus         identi.ca|twitter: magthe

Attachment: pgpafAV3k4TKK.pgp
Description: PGP signature



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]