3 ms·
Cool, I like these kinds of projects. When it comes to embedding a scripting language in C, there are already some excellent options: Notable ones are Janet, Gu
by smartmic 8mo ago
Cool, I like these kinds of projects. When it comes to embedding a scripting language in C, there are already some excellent options: Notable ones are Janet, Guile, and Lua. Tcl is also worth considering. My personal favorite is still Janet[0]. Others?
[0]: https://janet-lang.org/ https://janet-lang.org/
- forgotpwd16 8mo agoIo is nice (Smalltalk/Self-like). A mostly comprehensive list: https://dbohdan.github.io/embedded-scripting-languages/ https://dbohdan.github.io/embedded-scripting-languages/
- briancr 8mo agoShould have replied directly —- thanks! That’s a great list..
- publicdebates 8mo agoThat list (or any similar list) would be so helpful if it had a health column, something that takes into account number of contributors, time since last commit, number of forks, number of commits, etc. So many projects are effectively dead but it's not obvious at first sight, and it takes 2 or 3 whole minutes to figure out. That seems short but it adds up when evaluating a project, causing people to just go to a well known solution like Lua (and why not? Lua is just fine; in fact it's great).
- briancr 8mo agoSeconded.
- briancr 8mo agoThanks! I’m unfamiliar with Janet but I’ve looked into the others you listed. One personal preference is that a scripting syntax be somewhat ‘C-like’.. which might recommend a straight C embedded implementation although I think that makes some compromises.
- dualogy 8mo agoAngelScript. Matured & maintained since 2003, is fully typed and with C syntax. https://www.angelcode.com/angelscript/ https://www.angelcode.com/angelscript/
- briancr 8mo agoYes very C-like.. One immediate difference is that in these C-like scripting languages there’s a split between definitions and executable commands. In Cicada there are only executable commands: definitions are done using a define operator. (That’s because everything is on the heap; Cicada functions don’t have access to the stack). I personally think the latter method makes more sense for command-line interactivity, but that’s a matter of taste.
- zem 8mo agosquirrel: http://squirrel-lang.org/ http://squirrel-lang.org/
- briancr 8mo agoYes I like this one. It’s similar and even more C-like, in that it discriminates between classes, class instances, functions, methods vs constructors, etc. (Cicada does not).