4 ms·
Why do people do this? Obfuscating the HTML seems like the worst of both worlds. Either use a component model that abstracts it away or use HTML so you can see
by spullara 14y ago
Why do people do this? Obfuscating the HTML seems like the worst of both worlds. Either use a component model that abstracts it away or use HTML so you can see what is going on. Also, get your code out of the view. Has the world gone mad?
- njharman 14y agoI'm guessing cause they use sucky editors that make writing *ML style markup hard.
- zachrose 14y agoWell yes, but Haml/Emblem are trying to answer the question of where tooling should belong. Is it better to "abstract" syntax with your development environment, or in the source code itself?
- jacquesc 14y agoWriting is the easy part (stuff like zencoding tools help with this). But reading and grokking mountains of HTML code gets difficult for some people (me). That's when these templating languages are a lifesaver.
- machty 14y agoWhat code? The only stuff in there is to respond to changes in underlying data or pass click events to their rightful handler. Also, making something prettier, more readable, and easier to maintain seems like the opposite of obfuscatory, no?
- spullara 14y agoThis is code "each person in people" — once you go down the path of doing that kind of thing, the next thing people will ask for are filters, etc. and eventually half your business logic is in the "template" and half in the view code.
- digitaltoad 14y agoI would say that "each person in people" is a far cry from the type of logic in views normally frowned upon. What would you propose to be different in this case? Where does iteration of this type belong?
- spullara 14y agoCheck out mustache. It has things that can be used for iteration but it isn't explicit and you decide what actually happens at runtime in code rather than in the template. http://mustache.github.com http://mustache.github.com
- machty 14y agoThe {{#array}}item{{/array}} syntax is functionally equivalent to and equally logicless as {{#each array}}item{{/each}}, only the latter (handlebars) has the benefit of being precompilable and easily extensible by frameworks such as Ember, Meteor, and the like.
- Gigablah 14y agoHogan.js by Twitter is a mustache implementation that supports precompilation, among other things.
- spullara 14y agoThey may be equivalent, however, the first version has the freedom to do what they wish, for example, what is represented by array may not be directly iterable or it may be filtered. Precompilation is available in a variety of languages for mustache, including js. IMOH, handlebars is a lazy version of mustache where the developer using it sacrifices maintainability and encapsulation. Which is probably ok for most apps that don't grow beyond a single developer.