[opensource-dev] Client-side scripting in Snowglobe
Morgaine
morgaine.dinova at googlemail.com
Thu Feb 18 04:57:48 PST 2010
A line got lost from my post owing to finger trouble. Item 6 about Mono
should have read:
6. Some parties identify other reasons for avoiding Mono in general.
Without getting into that subject at all, requiring Mono for client-side
scripting would make scripting unavailable to that portion of the user
base. Since client-side scripting without Mono is perfectly feasible, Mono
should not be made mandatory for scripting, so that the widest user base can
be supported.
Morgaine.
========================
On Thu, Feb 18, 2010 at 12:42 PM, Morgaine
<morgaine.dinova at googlemail.com>wrote:
> I referred recently to Linden's internal project "Firefly" to add
> client-side scripting to SL viewers. This has been the topic of open
> discussion at several Office Hours with Lindens in SL, but that openness has
> not extended to many design details --- the Firefly design process is not
> open to the community. The only technical details that are being disclosed
> about Firefly appear to be:
>
>
> - "Scripts" are actually *Mono assemblies*, so that only languages that
> compile to Mono will be allowed.
> - The programs run in a *sandbox*, which means that most platform
> resources are not accessible to them.
>
>
> Please note that I quite like C# as a language, but the following remarks
> are about Mono use *in the SL viewer*, only, where its tradeoffs are poor.
>
> The first known detail about Firefly (mandatory Mono) is problematic on
> several fronts:
>
> 1. Only a tiny fraction of the world's applications, libraries and
> languages work on Mono, so client-side scripting will be unable to benefit
> from the huge mountain of resources available on the Internet. This is an
> extremely severe limitation, and an unnecessary restriction in the context
> of client-side viewer scripting. If I want to use a locally-installed
> package X from within my client-side script, I should be able to. What runs
> client-side should always be our individual choice, not someone else's.
> 2. Programmers want to write client-side scripts in the language that
> they know best, because that always yields the fastest progress and highest
> quality results. There was a good technical reason for forcing everyone to
> use LSL server-side, but there is no technical reason to impose this
> requirement on all client-side scripting. It is counter-productive to force
> CLR compatibility on client-side script developers when there is a simple
> alternative: define a *socket-based viewer API* for client-side
> scripts instead, hence usable from any language.
> 3. Mono runs poorly on Linux, so from being rock-solid on Linux now,
> the LL-derived viewers will become second-rate on this platform.
> 4. The viewer is already extremely bloated and a memory hog. Adding a
> Mono dependency will compound that horribly.
> 5. There is only one effective supplier of Mono: Novell. That is a
> very bad situation to encourage and to support in the viewer.
> 6. Some parties identify other reasons for avoiding Mono in general.
> Without getting into that subject at all,
>
>
> The second known detail about Firefly (mandatory sandbox) is problematic on
> two related fronts:
>
> 1. Sandboxes by design do not allow most platform resources to be
> accessed, as a security measure. This is fine and important when scripts
> are being downloaded from unknown places (like Javascript in web pages), but
> that same protection also means that client-side scripts would be powerless
> to do useful things for us in concert with local applications, files,
> devices, etc. Sandboxing client-side scripts effectively hardwires in
> script weakness for no reason discussed as a requirement.
> 2. Sandboxed applications cannot be linked with user-chosen native
> libraries since allowing native code breaks sandbox protection. This means
> no accelerators, no extensions, and no interop with other systems since
> sockets are inaccessible from any strong sandbox. This also means no
> evolution or progress outside of what the sandbox designers permit.
>
>
> This mailing list is concerned with development of open source viewers, in
> particular Snowglobe. This is heralded as a *community* viewer, embodying
> *community* requirements much more directly than the LL mainstream viewer.
> Client-side scripting will impact on every single aspect of Snowglobe bar
> none, yet the community is being excluded from the design of its most
> powerful infrastructure element. This is entirely wrong, far beyond the
> normal observation that secrecy in design has no place in open source.
>
> It is hard to assess things technically when the design requirements are
> formulated in secret. The Snowglobe community has design requirements too.
> Those deserve to be examined here openly, not limiting Snowglobe to a
> design that stems from Linden requirements alone.
>
>
> Morgaine.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20100218/8f0b56a3/attachment-0001.htm
More information about the opensource-dev
mailing list