pug (Jade) vs Webix
When comparing pug (Jade) vs Webix, the Slant community recommends pug (Jade) for most people. In the question“What are the best JavaScript templating engines?” pug (Jade) is ranked 1st while Webix is ranked 13th. The most important reason people chose pug (Jade) is:
Jade supports mixins. These not only make your templating job easier but are also super-easy to read.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Easy to read, powerful mixins
Jade supports mixins. These not only make your templating job easier but are also super-easy to read.
Pro Logic done in JavaScript
The logic in Jade is done with native JavaScript. This means there's less of a learning curve and it'll be easier to get other developers up to speed.
Pro Clean syntax
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.
Pro Identation reflects nesting
With Jade you can quickly overview the hierarchy of a template.
Pro High performance on the server and client side
Apart from their functionality all template engines need to be efficient in terms of the time they require to render a page. Jade beats most of its competitors in this area, it is highly optimized to deliver good performance on both the server and client ends.
Pro Easy sublayouts using block and extends
By using the extends and block keywords, sublayouts can be made with intuitive syntax.
Pro Preprocessor support
Filters make it easy to embed compiled languages such as coffeescript or markdown directly into the template. A filter will allow you to keep your inline code and content consistent with the rest of your codebase so you can continue using your prefered language with your outputted HTML.
Pro Allows writing inline JavaScript
Jade allows embedding regular JavaScript code directly within the template.
Pro Reuse code in other languages
In addition to JavaScript, you can reuse Jade templates in Scala, PHP, Ruby, Python and Java.
Pro Interactive documentation
There's an interactive documentation available here that allows you to play around with code examples and watch the results in real time.
Pro Compiles to JavaScript
Jade compiles to a JavaScript function that produces the ultimate output. This interim format makes it useful for embedding in conditions where you're trying to save space or decrease processing requirements.
Pro Use Markdown for readable markup
Jade is awesome at templating structural markup, but that's not all Jade is awesome at. It also allows you to use markdown within your template itself which will render to a beautiful HTML page.
Pro A lot of widgets
Webix is one of the most extensive UI component libraries, second only to Sencha ExtJS. Not only considering the number of widgets, but also the API methods for manipulating these widgets.
Pro Views can be constructed using JavaScript without HTML
The most common way of working with webix is to create a JSON configuration of your view in JavaScript. When you use TypeScript, you get complete typechecking and intellisense in your IDE.
Pro Seems to be quite stable
Even the most complicated GUIs are bug-free most of the time.
Pro Webix Jet
The webix Jet library adds all the required features for SPA development (routing, template loading, ...)
Pro Extremely simple to implement.
To get started is extremely simple. It has a low learning curve.
Pro Mature project
Regular updates and releases.
Pro Great support from the webix team
The company behind webix is really quick in answering any questions you have on their forum or via email.
Pro Awesome responsive material skins
Great design and icons pack.
Cons
Con Cannot copy/paste examples from the internet
Examples from CSS frameworks like Bootstrap are never utilizing the Pug syntax, which means that you cannot ever copy/paste something to quickly see how it would look or if it works. You would have to convert the HTML to Pug first.
Con Unforgiving in case of indentation errors
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.)
Con off-side rule templating language not working well with native HTML
plain HTML pages usually can contain very deeply nested structures, whether they are hand-written by web UI designers or generated from popular web design tools or taken from existing HTML templates, which are a nightmare for front-end engineers to convert into Pug templates, where you have to take care of handling the indentation rules and the deeply nested HTML elements, even creating multiple blocks that don't have any meaning in terms of business logic, just to house the HTML elements within bearable amounts of indentations.
Pug templates are nice for Python programmers who don't want to learn HTML to start writing web pages and develop some entire websites personally from the ground up, but for any serious project that involves more than half a dozen people and has separate positions of web UI designers, front-end developers, and back-end engineers, it's much better to choose something more closely compatible with native HTML as the template engine. Pug is simply too alien from native HTML and resembles a lot more like those other off-side rule languages like Python.
Con Bad performance
Bad sintaxe (Short-hand HTML) and bad performance. No streaming or asynchronous calls. https://github.com/mauricionobrega/nodejs-template-benchmark
Con Performance is not great compared to other popular templating engines
Con Commercial license
It's not free for commercial applications.
Con Not very popular
Not really a reason to not recommend it. But it has still a small user base. It deserves a lot more attention.
Con Not modular
The library is not modular (except for some additional more complex widgets). If you only need a few widgets, you still need to include the entire library.
