What is NLG
NLG stands for Natural Language Generation. The goal of NLG is to generate texts automatically from data, with the same quality as if a human being had written it.
Natural Language Understanding (NLU) is the exact opposite: transforming text into structured data. NLG and NLU are both subfields of Natural Language Processing (NLP).
You don’t need a Natural Language Generator to generate basic texts, but doing it without a Natural Language Generator quickly becomes tricky. The pratical issues in NLG are:
the use of synonyms and referring expression to avoid repetitions
the proper agreement of verbs, nouns, adjectives (depending on the output language)
proper punctuation and spacing
the ability to properly list things (xxx, yyy and zzz)
See examples of templates showing the added value of a Natural Language Generator compared to a plain template engine like Pug.