Mike, with reference to CLR and languages (I'm trying to partition the
discussion into manageable chunks, so only one topic at a time):

On Wed, Mar 17, 2010 at 4:01 PM, Dickson, Mike (ISS Software) <
mike.dick...@hp.com> wrote:

>
>  Assuming a CLR based approach doesn't simply mean C# there are lots of
> good scripting implementations (Lua, Python, Rubs, etc.) available as .NET
> language implementations all of which should be able to be used.   It's
> possible that the sandbox implementation might limit that but I don't see an
> obvious reason it should. Also if this list is too limiting again you can
> install a module that provides a proxy to another environment implemented in
> whatever language you choose.
>
>
You're missing two key points here.

The first is that reimplementing a language on top of an existing runtime is
not the same thing as being able to use a language natively.  Languages are
implemented with specific runtimes for very good technical reasons, and
shoehorning them into another framework's VM model is almost guaranteed to
deny essential facilities from operating.

For example, you mention Lua, which I use quite a lot.  Lua is designed
expressly for use in embedding and extending arbitrary applications through
its C/C++ API.  If Lua is re-implemented afresh on top of another CLR
language, it loses that native ability entirely.  Alternatively, if the
existing Lua implementation in ANSI C is linked into the CLR runtime
directly, then the C/C++ interface is still available but it would have to
be denied as it would break the sandbox.  Either way, Lua scripting would no
longer benefit from the masses of add-ons available in the Lua community,
virtually all of which are implemented as native extensions.

A bigger issue though is simply not being language agnostic in the first
place.  This totally misses the opportunity of harnessing people's skills in
dozens or hundreds of languages that are not available for CLR, using their
favorite IDEs and other tools.  It denies them the benefit of the huge
number of libraries out there in other languages, representing thousands of
man years of effort.

Restricting the languages available for *sim-side* scripting made sense,
because that's an environment that Lindens need to control.  But that
requirement does not apply to client-side scripting of extensions, which are
about *user control and empowerment*, not LL's.

If there were no other solution, then fine.  But there are other solutions.

Over the 2+ years of AWG, we have examined in quite some depth how to create
language-agnostic interfaces (mostly with the viewer in mind), and it's not
particularly hard.  I've detailed one clean approach here in various posts
since February -- namely, using a socket API so that any language whatsoever
could use the API from an external process, with no language-specific
programming nor bloat in the viewer.  The benefits of doing this are
colossal (I've listed them in prior threads), while the disadvantages are
really minor, mostly that it takes more effort to reach bare metal speeds.

Given such a language-agnostic approach, the sky is really the limit,
because quite literally anything is possible in external processes written
in arbitrary languages, without being imprisoned in a sandbox that has to be
made leaky for interfacing and hence is necessarily compromised.  All the
specialist languages for concurrency or artificial intelligence or
scientific simulation can be brought to bear directly.  The result would be
quite astounding.

So there *ARE* alternatives, and they don't have the problems with the
embedded Mono approach that several of us have described here over the last
4-5 weeks.

Finally, your suggestion to use a proxy is just a bandaid on top of an
inherent design fault, which is the hardwiring in of one scripting runtime
into the viewer in the first place.  It is not necessary, and it imposes too
many restrictions with only an illusion of security, not to mention creating
a maintenance nightmare for the viewer.

If we can get client-side scripting to be discussed with Lindens openly,
these pro's and con's will be brought into the light of day, and then we can
see how the balance tips in terms of engineering benefits, objectively.  And
that's my purpose in raising the matter.  Design done in secret avoids
objective assessment.


Morgaine.
_______________________________________________
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Reply via email to