Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12

Mustache is a fine templating library and liked by a lot of people. However I see these drawbacks:

  • 600 lines of code, 9 contributors for 20 line code problem

  • It’s therefore difficult to understand completely.

  • All data is automatically escaped for special characters in HTML.

    • In mustache programmers need to learn from the school of hard knocks to always use {{{ }}} syntax for tokens - otherwise user data with these special characters can break the application.

    • It’s not bad compared to some templating frameworks but having conditional if/not support is starting down the path of building a bad language.

  • It has unnecessary features like template caching - which exchanges speed for memory usage and adds complexity - premature optimization and a simpler library will be faster. This optimizing for a complicated design.

  • All data is automatically escaped for special HTML characters. This eliminates cognitive load of having to pick whether or not to escape data and eliminates a lot of bugs.

  • The library is small - you can see exactly what it does in one screenful of code. No big mysteries as to what it does

  • Zero fancy features - nothing whatsoever resembling a language with if conditionals and so on. Therefore zero danger of the templating library becoming a crappy language.

    • There are no fancy callback features to tempt developers to write complicated code. It’s only going to work with an array of data.

    • No caching or other unnecessary pre-mature optimizations - simple code will be faster anyway.

  • Putting the responsibility elsewhere for handling logic in absence of data etc. Encouraging separation of concerns.

  • No labels