Javascript templates - what is it for

Не так давно почула про використання Javascript templates в одному з проектів з якими мені доведеться працювати. А саме з hogan, короткий приклад тут:
http://www.javascriptoo.com/hogan-js

В минулому я працювала з проектами на пітоні, де використовувались шаблони пітона, фактично html код зі вставками теж аля {{variable}}

Тобто фактично, наскільки я розумію, сервер віддавав готову скомпільовану сторінку.
Якщо ми розглядаємо Javascript template, то від сервера ми отримуємо все ще html з variables, а потім надсилаємо запит до сервера, отримуємо дані і через js вставляємо їх?

Якщо так. то це подвійна робота, якщо ні, може хтось пояснити принцип роботи?

Идея джаваскриптовых теплейтов заключается в том, что сервер присылает чистые данные (обычно в формате JSON по какому-нить AJAX-у как xmlHTTPRequest или websokets). Темплейты уже находятся в скомпилированном js файле приложения.

Такой подход позволяет сделать тонкий (мало знающий о том, как работает клиент) сервер, обычно CRUD, и большую часть логики перенести на клиент.

Например по этому принципу работает текущий форум. На главное странице делается запрос за данными http://forum.jscourse.com/c/frontend/l/latest.json, а клиентский джаваскрипт с помощью темплейтов строит веcь UI.

Дякую за відповідь. Ось знайшла цитату

Rendering UI updates by using client-side templates is often the way to go. Still, the best performance for the initial full page load is achieved by serving that page as a whole. This allows the browser to render the HTML as is without requiring any JavaScript parsing or extra requests for data. This might be a challenge, especially for pages that are both dynamic and require the best initial loading times possible. Then, ideally, templates are being developed and reused on the client and the server to both support the best performance and still be maintainable.

Я так розумію що найідеальніший спосіб - при завантаженні сторінки отримувати її від сервера одразу з данними, а не після загрузки ще надсилати запит, а потім отримувати від сервера відповіді?

Утверждение верно.

Но проблема этой стратегии в том, что на корректную ее реализацию требуется немало ресурсов (рендер темлейтов на сервере, считай выполнение джавасрипта, хитрый способ написания джавасрипта, чтобы компоненты могли работать как на чистой, так и на частично отрендеренной странице, как рендерить темплейты для залогиненных пользователей, соответственно должна быть хитро реализована авторизация). Например такой стратегии придерживается twitter. Поэтому советую соотнести количество сохраненного времени при изначальной загрузке страницы к количеству времени, сохраненному при начальной загрузке страницы.

Думаю, это стоящая вещь, достаточно посмотреть как шустро работают Twitter и StackOverflow. Надеюсь, когда-нибудь я доросту до реактивного программирования и серверного JS.