Shared publicly  - 
CoffeeScript is clean-looking and has some nice syntactic sugar, such as String Interpolation, HEREDOCs, and @ (instead of "this."). But it has it's issues, as well, not the least of which is debugging:

"CoffeeScript is a maintenance nightmare because it is more difficult to comprehend and debug–and that, after all, is what we do most of the day."
Jarrod Overson's profile photoJava Foust's profile photo
Only barely related but I'm mentioning it because of my own frustration with a lack of variable interpolation in strings; if you add a format method to the string prototype you allow yourself the ability to write code like:

"Foo is %@ and bar is %@".format(foo,bar)

It's a good middle ground between concatenation and templates. It has been in use elsewhere for ages but I had forgotten about the idea until reminded by Ember.
Nice. Or even "Foo is #{foo} and bar is #{bar}".format(), if you like Jade syntax.

(Or "Foo is {{foo}} and bar is {{bar}}".format(), if you like Mustache syntax.)

Of course, both of these libraries and more are available in their entirety on both server and client.

Then there is Sugar, which annoyingly calls their format method 'assign':

"Foo is {1} and bar is {2}".assign('foo', 'bar')

or, "Foo is {foo} and bar is {bar}".assign({foo: 'foo', bar: 'bar'})

And as you once pointed out, the printf library can do the job, for those who know what that is.
Add a comment...