Back to main page...

Features of Horse64 Root

WARNING, THIS PROJECT IS SUPER UNFINISHED, SOME OF THIS ISN'T IMPLEMENTED YET.

Remember, this document is subjective. Here are Horse64 Root's features:

If you're a beginner, e.g. if above list confuses you, try Horse64 first.

To get started with Horse64 Root, check the intro.

Read onward for more detailed technical feature explanations.

A focused design

Horse64 Root offers a modern, streamlined, and focused design, with the following advantages:

Measured safety

Horse64 Root brings lowlevel safety features that are easy to use, and reasonable while not excessive:

A clear code flow

Horse64 Root tries to make the code flow and side effects obvious:

Comparison with other languages and use cases

⚠️⚠️⚠️ Horse64 Root is currently very unfinished. The following information is more of a roadmap, not the current state. ⚠️⚠️⚠️

Here's a comparison to Python, JavaScript (JS), Go, and C++. Disclaimer: this list is subjective, no guarantee of accuracy.

Please report inaccuracies..

Syntax, Core, and Code Flow Features

H64 RootPythonJSGoC++LuaSyntax, Core, and Code Flow
Dynamic types as a beginner-friendly default.
Strongly typed to avoid silent harmful conversions.
Minimal, clean syntax without line terminators.
Type annotations can be used for extra verbosity.
Advanced type checker verifies types ahed of time.
Minimizes concurrency crashes in buggy code.
Line breaks optional for versatile code layout.
Concurrency of all I/O and network default APIs.
Garbage-Collector to make avoiding leaks easier.
Object-oriented class types as built-in feature.
Extend types without inheriting as built-in feature.
Native multiple bases inheritance for mixins.
Auto-parallel threaded execution of every async call.
Tail-call optimization enabled by default.
1-based indexing that is more beginner-friendly.

Multimedia and Desktop App Features

(⚠️ Horse64 Root isn't great here, try Horse64 instead!)

H64 RootPythonJSGoC++LuaLibraries and Desktop App Features
Big standard library without extra setup.
UI and graphics integrated for easy graphical apps.
High-level networking by default for servers etc.
Unicode with full grapheme support by default.

Deployment Features

H64 RootPythonJSGoC++LuaDeployment Features
Portable program binaries as default output.
Self-contained, no install needed for end users.
Official packaging tools for easy project handling.
Compiler trivially usable at runtime, if needed.
Easily bake in all binary resources like images.
Virtual archive mounting for all standard I/O.
Can make C API libraries easily for C/C++ program use.

Scripting Features

(⚠️ Horse64 Root can't do this at all!)

H64 RootPythonJSGoC++LuaScripting Features
Compiler trivially usable at runtime, if needed.
Instant script use for fast script helper launch.
Easy runtime eval() for trivial script injection.
Runs in web browser by default, for simple web use.
Embedded easily for integrated, subordinate scripts.
Easy runtime module loading for trivial mutability.
Dynamic global scope at runtime, extreme mutability.
REPL shipped by default for dynamic experiments.

Large Project Features

H64 RootPythonJSGoC++LuaTooling and Large Project Features
Precompiled always, for better large project checks.
Static name resolution to catch most typos early.
Non-trivial optimizations and warnings by default.
Forced type declarations for deepest compile checks.
Focused clean syntax to write larger projects fast.

Organizational Structure Comparison

H64 RootPythonJSGoC++LuaOrganizational Structure Comparison
One central default runtime for combined efforts.
Default compiler self-hosted, for easier changes.

Runtime Performance and Lowlevel Features

H64 RootPythonJSGoC++LuaRuntime Perf. and Lowlevel Features
Bytecode interpreter for high portability.
Attribute lookups largely AOT, to avoid bottlenecks.
Compiler made for AOT optimizations.
Largely lock-free memory sharing for fast threading.
Always uses JIT for speed, or 100% AOT compiled.
Outputs machine code always, for extreme speed.
Fully manual allocations easily available.

(AOT refers to Ahead-of-Time, handled at compile time rather than runtime.)

For an easier to use high-level language, see Horse64's list.

Why not Rust?

Horse64 Root aims to be easier to learn, easier to write, better to adapt and maintain, and with lower hardware demands for developers.

The perceived rigidness and high barrier for entry of Rust, as well as the high memory needs making compilation on older hardare difficult, is what led to the decision to work on an alterantive.

Whether that alternative succeeds, is for you to judge.

Privacy | Admin Contact | Misc