Epiphany extensions, what to do next



Hi all,

as you might know, support for Seed[1] extensions was committed to
trunk a while ago, and it can be optionally enabled since the 2.27.0
release. Unfortunately, because of the way bindings manage memory
through toggle references, I've been told that it's, at minimum, not a
good idea to enable both Python and Seed extensions at the same time
(this makes sense to me, although I'd welcome a 'yes, this is right
and can't be made to work' authoritative answer :)). This is the
reason why you can't enable both Seed and Python support at the same
time.

So, assuming the situation will remain as is, and that we'd rather not
have distros shipping two incompatible binaries, one with python and
the other with seed, I think we should decide which language do we
want to support as the one to write Epiphany extensions in (not
counting things like C or Vala). These are the pros/cons of each one
as I see them:

Python:
+ Already there.
+ Has a big platform on its own.
-  Has a big platform on its own. (uh? what? More on this later.)
-  Perhaps a big heavy for the kinds of extensions people do.

Seed:
+ Uses the latest and greatest technologies, very little code needed
to support it.
+ It uses the same language/vm than the browser, so we get this for free.
+ Love it or hate it, JavaScript will probably be (if it's not
already) the most popular programming language in the world.
-  Does Seed have a long term roadmap? Will it be maintained in the
future? GNOME Shell and litl both use gjs, what about that? (Not that
we would use gjs anyway, but...)
-  Dropping Python would force us to rewrite extensions and would, for
sure, piss of some people.

So, what about the big platform in Python being good and bad at the
same time? Seems to me there are two ways to approach the problem:
- Having a huge platform is good because it allows you to write many
things fast. Want to do an RSS extension? Python has amazing RSS[2]
libraries, so pick one and go for it. Threads? Sure. Printing? Yeah.
Everything.
- On the other hand, having a huge platform might make your code clash
constantly with the GNOME platform. You'd rather use GIO for all I/O,
but it probably won't be as natural as using Python default system.
Seed, on the other hand, uses JavaScript, which is a really small
language, so it can do things like integrating GIO deeply, making it
natural to use it. Same with everything else.

So, that all being said, I'm not sure what I think myself. If I had to
decide now I'd probably say that Seed makes more sense in the long
term, but maybe 2.28 is too soon to drop Python, as we'll have our
hands too full trying to make the browser usable to deal with another
big transition, code rewriting, etc.

What do you guys think?

Xan
--

[1]: http://live.gnome.org/Seed
[2]: http://www.feedparser.org/


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