Wren is another nice one:
I am all in for competition, but I can't see how both of these languages could improve over Lua.
Lua is pretty simple and elegant, but has its woes on being too flexible and wonky (especially with nil and global variables). It also doesn't support OOP syntax directly, so everyone started to create their own wonky class system, which broke easily because of Lua's wonkiness. Gravity seems like a good embedding language packaging a nice OOP syntax with a lot of syntactic sugar (such as properties and access specifiers), so I think some UI/game developers would choose this over Lua.
LuaJIT interpreter which is _faster_ can be used on iOS. So you would use an immature language everywhere because you can't use the fastest implementation on one platform (iOS), when infact, the LuaJIT interpreter is the fastest interpreter of any dynamic language on all platforms.
Wonkiness is not a substantive claim. How do class systems break because of it?
I consider Lua's type system almost mathematical in its elegance. For my taste, Lua is the penultimate dynamic language, held back only by the unforgivable Wirth-style indexing from 1.
The one place where I simply must correct you is in calling tables inefficient. LuaJIT's implementation, as interpreted, is demonstrably among the fastest general-purpose container classes in widespread use.
LuaJIT is state-of-the-art even without the JIT. A lot of people miss this and go down various rabbit holes only to come up with something that's significantly worse. Personally, given what I just described, I don't see how Gravity compares at all favorably to Lua.
There is a difference here where 1/2 people something iphone can run, and the other half want something that would run on a small 32bit.
I want a scripting VM with an FFI. Lua while supposed to be able to do that just isn’t supported by anyone for that purpose.
P.s. the cortex m4 is awesome!
For my own interest, do you have examples of the way other languages do it? I'm interested, and but I'm afraid to google that.
else
foo();
and writes else
foo();
bar();
which compiles, but doesn't do what you think it does. And I have seen this bug in actual projects.Secondly, along with gofmt, it prevents style wars.
If you really want to twist the knife... even Perl 5 gets this right. Even Perl 5 thinks that naked if/else bodies is too crazy and error prone.
But it is nice if the language enforces it. I would even go so far as to claim it is common sense.
>dynamic typing
>naked if-else bodies
I'm sorry, but I just don't see how this improves on anything. How will GravLang make me a better, more productive programmer? How will it make my programs more robust?
Don't get me wrong, as a hobby project it's fine, but as a "real" language it doesn't have any selling points to me.