[Haskell-cafe] [ANNOUNCE] Ajla: a new purely functional programming language
jo at durchholz.org
jo at durchholz.org
Sun May 26 22:17:13 UTC 2024
On 26.05.24 23:57, Mikulas Patocka wrote:
> Hi
>
> I'd like to announce the release of Ajla - a new purely functional
> programming language that looks like traditional procedural languages.
>
> If you are interested, see https://www.ajla-lang.cz/
Just one thing that caught my eye:
> Ajla has efficient mutable arrays - if an array's reference count is one, the array is modified in place. If not, a copy of the array is created and modified.
That design decision restricts you to reference-counting garbage
collectors. These have multiple problems and restrictions, such as:
- Inability to deal with reference cycles.
- Assigning to a reference means TWO additional write operations to keep
the reference counts up-to-date; this means your programmers will try to
minimize allocation, which tends to restrict the design space so the
code gets worse.
- Reference counting is less efficient than copying collectors for most
cases.
- Being restricted to one GC algorithm means the language cannot improve
on that front, the GC approach is baked into the language semantics and
cannot be changed if it turns out it was an unlucky choice.
I'd recommend doing something like the borrowing semantics in Rust, or
uniqueness typing of Clean: Some language mechanism that makes sure that
all mutable data is only accessible through a single reference at any
one time.
This will also allow compilers to aggressively optimize, since if a
language enforces a one-reference-to-mutables-only, there can be no
aliasing, and that's a huge win as any even merely potential aliasing
prevents a whole host of important optimizations.
Just my 2c :-)
Regards,
Jo
More information about the Haskell-Cafe
mailing list