Formatting, because of localization.
If you write anything for which there is any risk it might be published, it is likely you'll have to localize (translate) it. Than it will pay off if you write the strings in localizable format from the start, because it will be pain to update otherwise.
Basically if you write
"Hello, my name is" . name . " and I'm " . age . " years old"
than the translator will see these 3 strings:
"Hello, my name is"
- Make absolutely no sense to the translator, who often does not know the program well. Most of the time they never see it, especially when commercial software is translated by translation agency.
- There is some language somewhere where the word order has to be different. In example where there is a string before, between and after all values as above, the words can be reordered. Provided the translator actually knows the bits go together, which they don't. But if there is a value at the beginning or end, you're in trouble.
For more detailed discussion and somewhat better examples, see GNU Gettext manual.
Note: When I write quick private helper scripts and such I also mix the forms, usually depending on which one is more convenient in the language I am using at the moment. But in anything that might get distributed localization is important topic and some of the problems are often non-obvious to native English speakers. So I'd really recommend at least skimming the Gettext manual to all programmers.