Wartbed:Architecture/Scripting
From Dark Omen Wiki
(Difference between revisions)
Line 60: | Line 60: | ||
|- | |- | ||
| [http://www.falconpl.org/index.ftd?page_id=Home Falcon Programming Language] | | [http://www.falconpl.org/index.ftd?page_id=Home Falcon Programming Language] | ||
- | | | + | | Designed for maximum speed using C++. |
| Medium rare | | Medium rare | ||
| High | | 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 | | Fast | ||
- | |||
| Win,Linux, OSX | | Win,Linux, OSX | ||
| Dual: Either FPLL (similar to LGPL/MIT), or GPL | | Dual: Either FPLL (similar to LGPL/MIT), or GPL | ||
Line 72: | Line 72: | ||
| 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++. | | 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 | | Medium rare | ||
- | | Very high | + | | Very high. Source for Win, Linux, OSX. |
| Easy | | Easy | ||
- | | High: lambda, everything-is-an-object, closures; OO, functional, procedural and message paradigms.Very appealing syntax. | + | | 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. |
| ??? | | ??? | ||
| ??? | | ??? |
Revision as of 10:05, 16 February 2010
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. Source for Win, Linux, OSX. | 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. | ??? | ??? | ??? |
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