テンプレート エンジンのベンチマークプログラムを作成しています。最初に、プログラムは、レンダリングされた結果を (文字列として) 返すことによってテンプレート エンジンをテストするように設計されています。ただし、一部のテンプレート作成者は、テンプレート エンジンが結果として文字列を返すべきではなく、出力ストリームまたはライター インスタンスをパラメーターとして受け入れ、レンダリング結果をそれらにマージする必要があるという懸念を提起しています。彼らは、case がテンプレート エンジンが使用されている実際の環境を表していると主張しています。
ASAIK、この発言は 100% 正しくありません。Play!Framework (少なくとも 1.x) では、テンプレート エンジンが文字列を返し、それらを出力ストリームに入れる必要があります。そして、このように整理することは合理的だと思います。論理エラーが原因でテンプレート レンダリング プロセスが失敗した場合、テンプレート エンジンが応答に直接出力した場合、エラーが回復不能になることを考えてみてください。Play にいる間、ブラウザーに半分混乱したデータを実行させるのではなく、エレガントなシステム エラー ページに応答を送信する良い機会があります。
一方、出力に直接レンダリングすると、パフォーマンスとリソース消費に明らかな利点があります。テンプレート エンジン デザイナーにとってどちらがより良い方法なのか、興味があります。