Not if the language supports a mix of value types, off heap allocations or untraced references.
There are a few like that.
Re:WebAssembly Raytracer
by imtringued on Sunday December 17, 2017 @05:18PM
(#15948008)
Can you name them?
Yes, surely.
- Eiffel
- Oberon family (Oberon, Oberon-2, Active Oberon, Component Pascal, Oberon-07)
- Mesa/Cedar
- Modula-3
- D
- Nim
- C# (specially now with 7.2 improvements)
- Go
- Swift (RC is also a form of GC algorithm)
These are just the most well known ones, there are others if you feel like having a dive into SIGPLAN papers.
I can also provide examples, how to do it in any of them, if you wish.
I've jumped through similar hoops in Go, and even C++ to avoid allocation or GC.
The fact that a dynamic language like JavaScript can compile and execute as fast as it does is nothing short of incredible! Even if it's not idiomatic, it's still far from "unreadable".