Wartbed:Architecture/Scripting
From Dark Omen Wiki
As of yet, there is no need for scripting.
Options for script languages include
Script language | Notes | Maturity | Embeddability | Ease of using from C++ | Language complexity | Script parsing/execution | Platforms | Licence |
---|---|---|---|---|---|---|---|---|
LUA | Designed for C for maximum portability. Some hoops (local wrappers) must be hopped for C++ integrations. | Well done | High | Easy | Medium. Sparse semantics. Procedural and OO paradigms. Vanilla but not particularly aesthetic syntax. | Fast | Most | |
AngelScript | No notes yet | Medium rare | High | ??? | ??? | Fast? | ??? | |
Ruby | No notes yet | Well done | Cumbersome? | Lowest | Higher. Single-paradigm, extreme OO design. CLosures, lambda, mix-ins. Very appealing and human-readable semantics and syntax. | Slower | All? | |
Python | No notes yet | Well done | ??? | Low | High. The German of script languages: extremely well equipped libraries, has everything you'll ever need, but can be butt ugly. | Slow | All | |
Minimal | Git download location | Rare | ??? | ??? | ??? | ??? | ??? | |
Falcon Programming Language | Designed for maximum speed using C++. | Medium rare | High | ??? | High: Multi-paradigm: supports procedural, object oriented, prototype oriented, tabular, functional and message oriented programming models. Coroutines, multithreading, compile-time metaprogramming, reflection. Virtual file system. Small standard library. Mostly strict and clean style, functional code slightly messy. | Fast | Win,Linux, OSX | Dual: Either FPLL (similar to LGPL/MIT), or GPL |
ChaiScript | Designed for C++ integration. Very easy to integrate into application - ca. three lines! Dynamically type scripting language inspired by Ruby and Scala. Type-safe inside C++. | Medium rare | Very high. | Easy | High: lambda, everything-is-an-object, closures; OO, functional, procedural and message paradigms.Very appealing syntax. Library is an exposure of C++ methods and STL types. | ??? | Source for Win, Linux, OSX. | Liberal and permissive home-cooked licence. |
Current favourites=
1st place | ChaiScript |
1st runner up | |
2nd runner up | Angelscript |
3rd runner up | LUA |
Dream language: Ruby, if it would be fast enough interpreted and embedded