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/ _______________________________________________ epiphany-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/epiphany-list
