Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2005-10-01 19:42:50


Maciej Sobczak <prog_at_[hidden]> writes:

> 1. Different scripting languages and the abilities of their interpreters
> can be sooo different that finding a universal ground for all of them
> would take years of design only. In fact, I don't believe that any such
> universal base will be ever created, if not by finding a common
> denominator which unfortunately might not be satisfying to anybody.
>
> Example 1: Tcl has a type "system" that is fundamentally different from
> that of Python. In particular, in Tcl the type of a variable does not
> depend on how the variable is set, but rather on how it is queried. For
> example, the value "Boost" can be seen as a 5-char string, but "0" can
> be used as *every* type in Tcl, be it bool, integer, string or even list
> (whose only element can be again treated as any type, depending on how
> we want to look at it) - this is very different from how the types are
> treated in Python and largely influences what can be done on the binding
> level. On the other hand, Tcl has no built-in (ie. on the interpreter
> level) support for classes and inheritance, whereas Python has it.

That makes no significant difference AFAICT. Jam is similar in its
lack of types, and I'm sure a suitable back-end could be created for
Jam.

> Example 2: Tcl has an object-based approach to interpreters and there
> can be *many* of them, even completely independent (this includes the
> possibility to run them in separate threads).

That's very similar to often-used capabilities of Lua and capabilities
that Python has, but are less-used. And it has little bearing on the
applicability of the universal front-end.

> Any given interpreter can be made "safe" by disabling certain
> commands, so that it is very easy to create "jails" or "sandboxes" -
> very useful for applications that need to execute untrusted
> scripts. In addition, it is possible to alias commands from one such
> interpreter to another, which makes it even more interesting.

That sounds interesting, but it doesn't have any bearing on the
applicability of a universal binding mechanism AFAICT.

> In other words, a "universal" binding would need to be full of
> fundamental compromises.

I don't buy it.

> 2. I don't see any *benefit* from building such a "universal"
> thing. I think that users of different scripting languages form
> rather disjoint audiences and any overlap here is too small to
> justify the effort to create a universal language binding.

There's a *huge* amount of overlap in the things that Boost.Python and
Luabind do, and want to do, which is why the authors started this
project. I believe if you were looking harder for overlap with your
Tcl library you'd find it.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk