bog
pallene
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bog
-
Bog – small, strongly typed, embeddable language
Looking at the two of them, both awesome projects, not a competition but here are a few things I noticed. Cyber seems to have pretty good documentation (maybe Bog does too but I didn't find too much from the readme. For example, you can see Bog has a GC and its standard library supports JSON, but memory management and non-scalar data structures aren't mentioned in the Bog readme).
Cyber also seems to be under more active development at the moment.
https://github.com/vexu/bog/graphs/contributors
https://github.com/fubark/cyber/graphs/contributors
- Bog – Small, strongly typed, embeddable language
-
If you made a library in Zig. Could you use that library inside C? (and by extension, almost all programming languages, since most languages support C libraries to some extent)
Check bog for a real life example https://github.com/vexu/bog
pallene
-
LuaX: A Lua Dialect with JSX
It would have been nice if LuaX was written in Lua.
Forking Pallene (https://github.com/pallene-lang/pallene) would introduce:
- Which for loop method is faster
- Using Lua with C++
-
Bog – small, strongly typed, embeddable language
Terra and Nelua are both very different in goals than Teal. Teal is literally gradual types integrated into Lua keeping as many of Lua's idioms as possible (to a fault[1]). Terra and Nelua are both very metaprogrammable systems programming languages. Nelua's goals are primarily to soften C's rough edges, comparable to something like Nim.
There's another one you missed in Pallene[2]. But again, it's goal was to optimize the stack sharing involved in using the C API. It also adds types though and maintains Lua idioms as much as possible.
[1]: https://github.com/teal-language/tl/discussions/339
[2]: https://github.com/pallene-lang/pallene
-
Nelua, AOT statically typed Lua
That was somewhat of an entertaining read.
> Terra is C if you replaced the preprocessor with Lua.
This is what is written on the tin.
PUC made there own version of Terra
Pallene http://www.inf.puc-rio.br/~roberto/docs/Gualandi-2020-SCP.pd...
https://github.com/pallene-lang/pallene
https://www.youtube.com/watch?v=H3inzGGFefg
This is a good writeup on all the Alt-Luas https://injuly.in/blog/gsoc/
- data types in function definition
- You can make Lua compiled/statically typed using Teal... It's like TypeScript, but for Lua!
-
Lua, a Misunderstood Language
Odd to suggest that if they're interested in Lua, that they should check out Moonscript which is a different language altogether (although it compiles to Lua). But if you insist, something a little more Lua-ish is Teal[1] (gradual types ala TypeScript) or Pallene[2] (companion typed subset of Lua meant to generate optimized C libraries for use with Lua).
[1]: https://github.com/teal-language/tl
[2]: https://github.com/pallene-lang/pallene
- Interesting discussion about lua on Hacker News
-
Upcoming interview with Roberto Ierusalimschy
You might be thinking of Pallene (previously named Titan) https://github.com/pallene-lang/pallene
What are some alternatives?
gale - Strongly-typed, minimal-ish, stack-based development at storm-force speed.
LuaJIT - Mirror of the LuaJIT git repository
zls - A Zig language server supporting Zig developers with features like autocomplete and goto definition
luau - A fast, small, safe, gradually typed embeddable scripting language derived from Lua
LoLa - LoLa is a small programming language meant to be embedded into games.
nelua-lang - Minimal, efficient, statically-typed and meta-programmable systems programming language heavily inspired by Lua, which compiles to C and native code.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
tl - The compiler for Teal, a typed dialect of Lua
arocc - A C compiler written in Zig.
terra - Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.
moonscript - :crescent_moon: A language that compiles to Lua