If you've downloaded the source code for AbiWord, then you *probably*
noticed that the source tree is pretty big.
If you noticed that the source tree is pretty big, you *probably*
checked to find out why, and noticed that we include the entire
JavaScript engine from the Mozilla source distribution.
If you noticed JavaScript, then you *probably* noticed that the
source code is there, but it's not being built, because we're not
actually using it.
Yet.
It has been our intention all along for AbiWord, as well as the other
applications in AbiSuite, to have a scripting language. Our plan of
record has been to use JavaScript, specifically, the implementation
from Netscape. We're starting to revisit this issue. We'd like to
ask for the opinions of people on the list. It *may* result in yet
another scripting language flame war, (we hope not) but we're
asking anyway. :-)
JavaScript
-- Pros nice syntax good mindshare in our target market object oriented features code base is probably high quality, having been used in several shipping releases of Netscape's browser. Cons mindshare may be too closely associated with web browsing object models, which we will not have NPL license is incompatible with the GPL, resulting in the fact that we would never be able to use any GPL code in AbiSource projects. no default or existing bindings to GUI toolkitsTcl
-- Pros easy to embed 9 year history -- code base is mature and reasonably stable built-in bindings to Tk Cons ugly syntax no built-in OO features (yes, we know about [incr Tcl]) no mindshare in our target market terrible name (we'd have to market it as AbiScript, or something like that) Tk doesn't work and play well with others (we'd probably have to write the whole app GUI in Tk)Perl
-- Pros doesn't matter, see the cons section Cons hopelessly arcane, unreadable syntaxPython
-- Pros readable powerful language multiple GUI toolkit bindings (ie stuff other than its Tk default) Cons terrible name (we'd have to market it as AbiScript, or something like that) uses indenting to delimit blocks (aaack!) no mindshare in our target marketSome of the stuff above is my opinion. Some of it is the opinion our target market will have. For example, personally, I rather like Perl, but its syntax is patently absurd for a target market which includes people like my Dad, or people like the VB crowd.
Personally, my favorite choice, at the moment, is Python. However, I'm still doing some due-diligence.
Opinions?