Scripting choices [Was: 2.4 Module List - zenity]

> > this makes me think that it could be a good idea to offer an integrated
> > scripting engine, as is done in Mac OS, for instance. I don't know
> > exactly how this could be accomplished, but I guess making obvious to
> > every GNOME user that they can write nice little scripts could be a good
> > idea.
> This is something I've privately advocated for a while.  The problem is
> really *which* language to use.  Aside from holy wars, there's licensing
> issues, and in the end user-friendliness.  People who code C all day
> look at Python and call it user-friendly, but someone who's never coded
> before might not agree - but then, I've never conducted a non-programmer
> scripting usability study, so I can't personally make any conclusions
> about it.  ;-)

I did a sort of informal survey about this on the lists a few months
back and the consensus was that:

1) We *really* do need a common (official) scripting framework.
2) Python should be the official scripting language.

The first issue, I think, is uncontrovertial - it is pretty obvious that
as apps become more and more complex (think gimp, abiword, gnumeric,
anjuta) and need to add more and more functionality which is used only
by a fraction of the users (think nautilus, gimp, gnumeric, abiword,
anjuta), the case or scriptability becomes stronger, since we need to
empower the power users to decide and implement their own custom
solutions (Quanta, specifically, has done an amazing job is this context
and something which anyone planning to write a good web-based IDE should
look at).

The second point was hotly debated, and there were three main

1) Mono: Some people advocated Mono on the basis of it's strong
GNOME/Bonobo integration, ease of development and scripting, ease of
embedding and that so many bindings/APIs were already available for it.
The points against it were unproven tech, low availability and size.

2) JavaScript: I was personally initially all for JavaScript, we we
already have Mozilla's engine at our disposal and something we can bank
on to be available on most machines. It is a known and proven embedding
solution and has a familiar syntax. The cons were big dependency, lack
lof language clarity (compared to python) and no existing use-cases
apart from mozilla.

3) Python: This was the most popular choice, and points for it were:
	a. Already a dependency for many libraries/programs, e.g. libxml2,
gnumeric, gimp, abiword (?), jhbuild, etc.
	b. Easiest of the above language.
	c. Ease fo embedding
	d. Good GTK/GNOME bindings available and in wide use.
	e. Cross-platform

Another point that was discussed was a language-agnostic scripting
framework. However, this was felt to be mostly unnecessary, too much
hassle for too little gain + leading to confusion, inconsistency, etc.

After the discussion, I remember someone saying that he intended to
start a module in GNOME CVS for a common scripting framework. However,
that's where the thread trailed off, and I moved on to other things
(since there was a lot to do before we could think of implementing
script - a lot of basic functionality is still missing in anjuta).

> It would be nice to see a solid official core GNOME scripting framework
> that tied in to Bonobo.  (So that you get both in-process "plugin"
> support and remote activation features For Free when you code one or the
> other.)

This was also discussed IIRC, and one of the points favouring Python 
was that it had good usable bindings for most GNOME libraries and that
probably includes Bonobo (but I'm not sure since I don't know/use


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