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:
pgppojZFeRawe.pgp
Description: PGP signature