dibyendumajumdar/ravi

Overview comparison to Terra

Closed this issue · 1 comments

This is a really dumb question, but how do you authors of Ravi see the differences between Ravi and Terra (https://github.com/zdevito/terra )?

I know they're not directly comparable, but many (most?) of the reasons why static typing and JIT compilation is being added to dynamic languages seems to be the same across these projects.

Hi - my impression is that Terra is more a version of C with Lua like syntax, and possibly removal of some of the dangerous features in C. Plus there is glue to call Terra code from Lua and vice versa. Terra uses LuaJIT - and LLVM - to be honest LuaJIT makes all of the features in Terra redundant anyway (this is my personal opinion).

Ravi is different in that it is Lua plus JIT / limited optional static typing. The type annotations are really very limited and only to help JIT, but essentially most Lua code is also valid Ravi code - except when some limits are exceeded. So Ravi has the same GC like Lua, it supports the same C api, etc. For instance there is a distro of Ravi which consists of well known Lua packages.

Terra on the other hand is not Lua, and cannot run Lua code.

Another attempt that is similar to Terra is a new language called Titan.

Regards
Dibyendu