Goals of Bender.
- [ ] Be Syntax compatible with Clojure.
- [ ] Compatible with
clojure.core
.
- [ ] Nimble startup times No JIT by default.
- [ ] Should be as fast or faster than Lua.
- [ ] To be Faster than Lua VM without JIT.
- [ ] Hinley Millner style Type Inference.
- [ ] Immutable Datastructures.
- [ ] Tail Call Optimisation.
- [ ] Lazy/Delayed Evaluation.
- [ ] Optional Types through meta data.
- [ ] Can be Compiled to Native Code.
- [ ] Interpreted while Development.
- [ ] Be linked with C/C++ Libs.
- [ ] Use efficient GC.
- [ ] Designed with Game Development in Mind.
- [ ] Cross Platform on Windows, Mac, Linux, Android, iOS, AppleTV, and Switch.
- [ ] Should use the smallest JIT available. AsmJIT, GccJit.
- [ ] To be faster than Chez by a Factor of 3 Atleast.
- [ ] Ease of use over dogma and tradition.
- [ ] Profiler and Database for type detection.
- [ ] Favour easier funtion names over Std Lib Dogma.
- [ ] Ease of Use above Performance and Performance above backward compatibility.
- [ ] Erlang Styled concurrency.
- [ ] Use ML to detect types.
- [ ] Automatic and deterministic memory management (Optional garbage collector and VM)
- [ ] Inferred static types for speed.
- [ ] Rust Styled Optional Borrowed Ownership.
- [ ] Logic Progrming Features compatible with Shen https://shenlanguage.org/TBoS/tbos.html
- [ ] No hidden performance penalties – allocation and copying are explicit
- [ ] Straightforward integration with existing C code
- [ ] Lisp macros, compile time scripting and a helpful REPL
- [ ] Threads and atomic references.
- [ ] Asynchronous programming (i.e. promises & futures).
- [ ] Functional Reactive Programming (FRP).
- [ ] Software-Transactional Memory (STM).
- [ ] The actor model.
- [ ] Multi Platform (JVM, CLR, Neko VM)