ADM is not trying to win by adding one more spelling for classes and loops. The interesting
parts are the things that usually live in frameworks, build systems, runtimes, or entirely
different toolchains.
Polyglot by design
Use the code you already have.
Interop in ADM is not just a C FFI. Bind functions from native libraries, or call code
running in JavaScript/Node, Python, Lua, Ruby, PHP, R and other embedded runtimes. Bridging
layers reach JVM languages such as Java and Kotlin, .NET languages such as C#, and more.
A foreign function still looks like a typed ADM function at the call site.
Read about external functions and FFI →
JavaScript
Java / JVM
.NET / C#
Python
Lua / LuaJIT
Ruby
C / C++
Rust / Go
WASM + more
Contracts & transactions
Functions can declare what they expect and provide. A function can also define its own
begin and rollback behavior, then participate in a larger
transaction without a transaction framework around it.
Services are a language concept
Long-running stateful systems get a shared model: queries, commits, events, observers and
lifecycle. Logging, storage, schedulers, messaging, UI and your own services speak the same
language-level vocabulary.
Dependencies do not get everything
ADM traces a package's path to files, the network, devices and other privileged services.
The developer chooses what dependencies may reach; runtime policy lets the user narrow that
access further. adm audit shows why a permission is needed.
From a loop to the GPU
Use ordinary loops, spread work across cores with forall, operate on native SIMD
vector types, or compile a cuda def for the GPU. Parallelism is not hidden behind
a collection of unrelated libraries.
Units that calculate
Numbers can carry units: 100(km), 9.81(m/s²). Arithmetic derives the
resulting dimension, and a value can be displayed in any compatible unit. Hundreds of units
and prefixed forms are built in.
Native apps without the web stack
Build the interface in the same language as everything else and ship one native binary. No
browser engine, no bundler, no second toolchain. Dozens of ready-made components get a real
window on screen fast, and your edits show up while the app is still running.