From: Stone Zhong on 9 Aug 2010 00:52 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 9 Aug 2010 13:27 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 9 Aug 2010 13:49 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 9 Aug 2010 14:40 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 10 Aug 2010 03:33
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 |