One of the distinguishing features of Jade is its clean syntax. Elements are created with CSS selector syntax which makes the template consistent with your style sheet and JavaScript element selector library.
The structure is entirely determined by the indentation. That means that indentation errors will ruin the end result, often without an easy way to find the error. Indentation errors are easily introduced by copy-pasting, by rearranging code and by working in a team where not everyone uses the same indentation style. (E.g tabs vs. spaces.)
The Slim syntax does not require many special symbols that make it hard to read. Instead it's very clean and readable even for people who have not worked with it before.
Slim's documentation is well organized and detailed, every concept is thoroughly explained and it is very helpful for both advanced users and beginners.
Slim is minimal and that is a good thing if you want to start from there. It can be easily extended and even supports popular packages that are used in Laravel (like Illuminate\Database (eloquent)) for example.
Slim allows the developer some control over how the syntax is written. It can be written without closing tags, instead using indentation. Or it can be written with closing tags, like standard HTML.
Slim's use of indentation in it's syntax and the fact that it doesn't use any HTML tags can make it seem a little strange to designers not used to this kind of syntax.
HTTP Streaming is a technique that keeps a connection between the web server and the web client constantly open. When the server has new information, it's immediately pushed to the client.
This technique is used to considerably increase loading times, because using HTTP Streaming the web app can start rendering parts of the view that do not require any complicated calculations (for example CSS files) immediately.
But to use HTTP Streaming in a Ruby app you need a template engine that supports it, fortunately Slim fully supports HTTP Streaming.
Slim is actively developed, with new features and bug fixes being released on a regular basis. Issues are addressed quickly, and Slim continues to increase in popularity.
There have been quite some changes that break the compatibility between Slim 2 and Slim 3. Even if you learned how to work with the Slim 2, you will find that Slim 3 requires re-training.
While it's true that Slim is a microframework, it's still too minimal. When used for throwaway projects or simple prototypes, it's perfect. But in the long run, it becomes less and less useful and you end up in implementing a full custom framework in trying to tackle all the missing features.
By design logic-less templates force you to separate concerns thus helping you avoid future problems with refactoring. It also allow templates to be used with multiple programming languages without changes.
Handlebars is available as a JavaScript library, a Django module as well as Java, Ruby, Scala & PHP libraries, which means you can use it for frontend and backend templating in the language of your choice.
By using indentation rather than closing tags and eliminating curly braces, Haml is fast to code.
For example
This:
<div id ="lower">
<div class="right column">
<div id="currentDate"><%= print_date %></div>
</div>
</div>
Can be written as:
%div#lower
%div.right.column
%div#currentDate= print_date
There are plenty of learning resources available for those who want to learn Haml. The documentation is detailed and well organized, and Haml is easy to pick up.
Haml uses indentation to define structure, rather than closing tags. Though this, in most cases, makes code more efficient to write, it can also cause problems. Being off by one space can cause an error or change the structure of the code.
Another token based system with all of the logic, looping and variable control that other engines provide. But in addition it supports some more advanced page composition elements e.g. block inheritance, includes, layout inheritance, custom tags and macros — all absolutely perfect for a CMS where pages are typically composed of a series of “building blocks”.
Reference:
link