Almost all the Ruby frameworks for the Model layer mix up business logic with database details. This kind of architecture leads to god classes, slow build times and to a general poor design. What if we assign these roles to smaller components that are able to collaborate together? Imagine how life changing would be to work just with object, without worrying how to persist them. How easy and fast would be testing them? How small and well defined would be your objects? Let me introduce Lotus::Model.
Moore's law is over. Modern computation is exploited by running processes on multiple cores. Ruby has always ignored this trend, and the community didn't put enough attention on this topic. The VM allocates a memory heap, which is shared and writable by threads. If incorrectly coordinated, those threads can lead to unexpected behaviors.
The missing part of all the Ruby web frameworks is the distinction between views and templates. Keeping things separated, helps to declutter templates and models from presentation logic. Also, since views are objects they are easily testable. If you ever used Mustache, you are already aware of the advantages. Lotus::View is based on these simple concepts.
MRuby is a lightweight Ruby. It was created by Matz with the purpose of having an embeddable version of the language. This article covers how to enable Redis scripting with Ruby.
Lotus development is going well. This month, I’m proud to announce Lotus::Controller. It’s a small, powerful and fast Rack framework.