On Thu, 2005-01-27 at 14:05, André de Leiradella wrote:
> But is there a script language out there that:
>
> 1) Has a clear syntax
> 2) Has a small footprint
> 3) Doesn't come with lots of modules that you can't remove from the core
> 4) Has garbage collection
> 5) Compiles in almost every plataform/compiler
> 6) Is designed to embeded or is extremely easy to embed
> 9) Has a nice API
> 10) Is easy to extend
> 11) Is (not necessarely only) object oriented
Felix satisfies all these requirements except (11).
For (2) YMMV: the run time is much smaller than Lua,
but then it generates fully compiled code which can
be larger than bytecode, and also need extra run
time support (eg C++ runtime).
(3) is extreme in Felix. There are not really any built-in data types,
not even int, bool or string, so there's no problem 'removing' them,
since they're not there in the first place.
(9) is difficult, since there is not really any API.
To use a C function you need to declare it, but
it is compile time only:
fun sin: double -> double;
Choose between Felix and Lua based on the scale of
your application. For a small device, such as
a mobile phone or PDA, choose Lua. For a large
and complex application (such as a serious game)
use Felix.
If you're in the middle or need a mini-language,
use Felix AND Lua together. (Felix comes with
Lua builtin at the moment). From Felix point
of view Lua CAPI is just another library.
On (11): neither Lua nor Felix need OO as much
as OO language because they have other alternative
techniques such as closures and coroutines.
However Felix binds 'seamlessly' to C++ so you can
always use C++ for OO. You can also do this in Lua,
although the bindings are harder to construct.
--
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850,
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net