dbohdan / embedded-scripting-languages

A list of embedded scripting languages
http://dbohdan.github.io/embedded-scripting-languages/
1.3k stars 78 forks source link

Which language should I use? #12

Closed Mellnik closed 7 years ago

Mellnik commented 7 years ago

Hi all, can you suggest me a language which meets following criteria?

I got JavaScript with Google V8 in my mind. Maybe NodeJS with NPM but I am not sure if you can embed this.

Thanks for your suggestions!

dbohdan commented 7 years ago

Heya.

Out of the criteria you named, libraries constrain your choice the most. The vast majority of scripting languages has few libraries. You're left with Lua, Python, JavaScript, Tcl, C# (Mono), and several others. The "default" embedded scripting language in today's world is Lua. It is easy to learn, easy to embed (much easier than V8 or Node.js), and has abundant libraries. Its syntax differs from that of C. Lua probably has more information than any other language available on its use specifically for embedded scripting. The reference implementation is reasonably fast for an interpreter (faster than Python or Tcl), and LuaJIT competes with V8 for the title of the fastest implementation of a dynamically typed language. Lua is implemented in C, but has several C++ bindings, though I cannot personally attest to their quality. (sol2 seems popular and well-liked by its users.) My recommendation, and I say this as a fan of Tcl, is that if you are unsure what to pick, pick Lua.

Mellnik commented 7 years ago

Hi dbohdan, Lua sounds reasonable. I will have a look into it. Thanks so much.

dbohdan commented 7 years ago

You're welcome!

RussellHaley commented 6 years ago

jsish.org - Javascript Interpreter Shell. Very cool. Write code in Javascript, embed it in C/C++. It has built in debugger and lots of tools you'll need (sockets, sqlite, mysql, postgress, built in web server). The downside is it's a new programming environment so the documentation is light and there are no external components.

dbohdan commented 6 years ago

@RussellHaley Thanks for the suggestion! Added in 20c37cf.