When comparing Dust.js vs EJS, the Slant community recommends EJS for most people. In the question“What are the best JavaScript templating engines?” EJS is ranked 6th while Dust.js is ranked 9th. The most important reason people chose EJS is:
EJS uses all the JS jargon and logic, so if you're proficient in JS, you can use EJS right away.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Filters
Easily extendable using filters and helpers. Can consume any public API.
Pro Cache templates at the client side
Dust.js compiles its templates to plain old javascript, and since javascript files are cacheable, that essentially means your templates can be cached at the client side.
Pro Write once run anywhere
Since Dust's templates are written in JS, there's nothing stopping you from running the same DustJS code both on the client as well as server side (if it supports V8/Rhino JS engine).
Pro Interactive tutorial
Dust.js is quite easy to begin with, thanks to it's powerful interactive tutorial.
Pro Complete JavaScript logic
EJS uses all the JS jargon and logic, so if you're proficient in JS, you can use EJS right away.
Pro Same language before and after rendering
Your html/text remains pretty much the same before and after rendering. EJS filters out and performs its functions on any occurrences of its own <%= %>
tags in your template.
Pro Lightning-fast to learn
EJS introduces fairly small amount of new syntax that one has to learn to become fully proficient. The syntax itself is easy to comprehend for anyone who is even somewhat familiar with JavaScript and CSS.
Pro Consistently scores rather well in benchmarks
According to some benchmark tests, EJS is way faster than Jade or Haml.
Pro Powerful error handling
EJS has a really smart error handling mechanism built right into it. It points out to you, the line numbers on which an error has occurred, so that you don't end up looking through the whole template file wasting your time in searching for bugs.
Cons
Con There are no new releases
And apparently Linkedin will not support it more.
Con Not enough community support
Since the number of people currently using Dust.js is quite insignificant as compared to Mustache js and Handlebars, you're less likely to get your question answered or issue resolved if you start using it.
Con No support for block by default
EJS has no support for the block
functionality which allows you to reuse pieces of templates across different files. Although it can be added to EJS through a third-party library.
Con Cryptic syntax
Much more difficult to read, especially for designer/HTML people who don't write JavaScript.