Here are a couple of my random thoughts, mostly based on preference rather than anything objective.<p>First--try to make the language as small as possible and as extensible as possible. This means that print should be a normal function rather than a statement and you should be able to add your own types of string encoding.<p>The ?: operator seems identical to || in JavaScript; I am not sure why you want to have it.<p>I think having functions return the value of their last statement by default (e.g. making the return keyword optional) makes writing code in a more functional style simpler.<p>In this same vein, you should have a nice and compact lambda syntax--one of the most annoying things with JavaScript (a language I happen to really like) is that even the simplest of anonymous functions is long, which makes certain types of code harder to read. I personally like Haskell's style (where \ x -> x is the same as function (x) { return x } in JavaScript), but anything short would work.<p>If everything else uses curly brackets, why does the for loop have a colon? I think you'd find this[1] post by Brendan Eich about braces interesting.<p>[1]: <a href="http://brendaneich.com/2010/11/paren-free/" rel="nofollow">http://brendaneich.com/2010/11/paren-free/</a><p>Have you considered using Haskell's syntax for comprehensions over Python's? I find the former easier to read and it's more extensible. Where in Python you would write [x for x in xs if x > 10], in Haskell you would write [x | x <- xs, x > 10]. This doesn't look much different, but is easier to read in more complex cases. The Haskell syntax can also be used for what they call "parallel list comprehension" which act like a zip rather than a cross product. (So zipWith fn xs ys would look like [fn x y | x <- xs | y <- ys] while the normal version would be [fn x y | x <- xs, y <- ys].)<p>As far as object oriented features go, if you like JavaScript's approach, take a look at Lua's tables.They're similar to but more flexible than JavaScript's objects.<p>Something like pattern matching or at least "destructuring assignment"[2] would be nice as well. This makes certain types of code <i>much</i> easier to read and write.<p>[2]: <a href="https://developer.mozilla.org/en/New_in_JavaScript_1.7#Destructuring_assignment_%28Merge_into_own_page.2Fsection%29" rel="nofollow">https://developer.mozilla.org/en/New_in_JavaScript_1.7#Destr...</a><p>Overall, I like your idea and wish you luck implementing it.