From: Stone Zhong on
Inspired by JavaScript, I am creating a scripting language/engine with
similar syntax to javascript, it is ideal for unix day-to-day
maintained or talking to database -- check it out at
http://www.stonezhong.net/os/index.html. If you are not interested,
pls ignore this message and I apologize for the spam.
From: "Michael Haufe ("TNO")" on
On Aug 8, 11:52 pm, Stone Zhong <stone.zh...(a)gmail.com> wrote:
> Inspired by JavaScript, I am creating a scripting language/engine with
> similar syntax to javascript, it is ideal for unix day-to-day
> maintained or talking to database -- check it out athttp://www.stonezhong..net/os/index.html. If you are not interested,
> pls ignore this message and I apologize for the spam.

Why not just implement ES5 with Rhino style extensions instead of a
knock-off?
From: Dmitry A. Soshnikov on
On 09.08.2010 8:52, Stone Zhong wrote:
> Inspired by JavaScript, I am creating a scripting language/engine with
> similar syntax to javascript, it is ideal for unix day-to-day
> maintained or talking to database -- check it out at
> http://www.stonezhong.net/os/index.html. If you are not interested,
> pls ignore this message and I apologize for the spam.

Looks interesting. Simplified by functionality and easy to learn, enough
for more-less complex scripting.

However, there are no some ideological concepts: closures, higher-order
function (or are they?), syntactic sugar for lists/array processing, and
so on. Are object mutable and dynamic? Is typing is dynamic?

So I wish good luck in this project and its development. It's not
necessary to repeat after existing languages. A better way -- to take
all good from them, and avoid all bad and old.

P.S.: also you may take a look on CoffeeScript (it removes some C-syntax
garbage from ES and provides some high-abstract sugar).

Dmitry.
From: Ry Nohryb on
On Aug 9, 7:49 pm, "Dmitry A. Soshnikov" <dmitry.soshni...(a)gmail.com>
wrote:
> (...) (it removes some C-syntax
> garbage from ES and provides some high-abstract sugar)

Nothing, *NO*THING* in C is garbage, Dmitry, my dear friend. !
--
Jorge.
From: Stone Zhong on
On Aug 9, 10:49 am, "Dmitry A. Soshnikov" <dmitry.soshni...(a)gmail.com>
wrote:
> On 09.08.2010 8:52, Stone Zhong wrote:
>
> > Inspired by JavaScript, I am creating a scripting language/engine with
> > similar syntax to javascript, it is ideal for unix day-to-day
> > maintained or talking to database -- check it out at
> >http://www.stonezhong.net/os/index.html. If you are not interested,
> > pls ignore this message and I apologize for the spam.
>
> Looks interesting. Simplified by functionality and easy to learn, enough
> for more-less complex scripting.
>
> However, there are no some ideological concepts: closures, higher-order
> function (or are they?), syntactic sugar for lists/array processing, and
> so on. Are object mutable and dynamic? Is typing is dynamic?
>
> So I wish good luck in this project and its development. It's not
> necessary to repeat after existing languages. A better way -- to take
> all good from them, and avoid all bad and old.
>
> P.S.: also you may take a look on CoffeeScript (it removes some C-syntax
> garbage from ES and provides some high-abstract sugar).
>
> Dmitry.

Thanks for the comments Dmitry.
Here are some points to clarify:

* closures
I am using a slightly different way, in OrangeScript, a function is
also a map, so a function can have it's own attributes. Instead of
allowing a function to access the variable defined outside the
function, I am consider these variable part of the function. Example
is:

var add = function {
var ret = function { return self["x"] + args[0]; };
ret::set_keys("x", args[0]);
return ret;
};
println(add(2)(3));

here, add(2) is a function, and apply it on 3 returns 5.

* syntactic sugar for lists
I do not have a forEach statement, it is easy to implement as a
function, for example:

var forEach = function {
for (var i = 0; i<args::get_length(); i = i + 1) {
args[1](args[0][i]);
}
};
forEach([1, 3, 2], function { println(args[0]); });

* All objects -- actually the are just map (aka hash table), yes, they
are dynamic
They can choose to not have "prototype", and member (function or non-
function value) can be set to other value at any time.
If you change an object's prototype, their behavior will change as
well.

- Stone