YALOA implies Yet Another Layer Of Abstraction, and the idea is that you can often solve your problems by providing another abstraction layer, allowing you to solve whatever problem is currently at your hand. In many ways, it’s the core idea of dependency injection and IoC containers. If you separate your implementations from the places that use your logic through interfaces, and combine this with an IoC container, you can always exchange the class implementing your logic, with minimum changes to your project. Hence, there is a common agreement in the software development industry, that YALOA is something you should always strive for.
YALOA is actually the main feature of Hyperlambda, since it ensures that you always have another layer of abstraction between your interface and your implementation. For instance, the HTTP REST endpoints the crudifier creates, doesn’t contain any compiled code references at all. This allows you to intersect your existing Hyperlambda code, by simply editing a text file, and/or completely exchange its current implementation. This is only possible due to that Hyperlambda slots, are simply references to C# classes and methods. In such a way, Hyperlambda becomes basically a dynamic IoC container, allowing you to orchestrate your C# code together dynamically. Watch the video below to understand this relationship.