No, I'm sure it's the minority. I was just being polite. :-) "Today's" programming languages are a minority too. Just think of all the ones that came and went in the 60s, 70, and 80s. Most of those were ones that wouldn't let you do "foo" + 12 as the OP said, i.e. you couldn't apply the plus operator to a string and an integer and have the integer coerced to a string automatically. It's clearly the minority that would do that, and a small minority at that.
awk and perl handle "foo" + 12, but they coerce "foo" to an integer, which is 0, and then add 12.
(Note, C lets you do "foo" + 12 but it isn't coercing 12 to a string, instead it's adding 12 to the address of the string "foo", e.g. "0123456789abcdef"[nibble].)
It would be interesting to enumerate those that do treat "foo" + 12 as if it was written "foo" + "12".
awk and perl handle "foo" + 12, but they coerce "foo" to an integer, which is 0, and then add 12.
(Note, C lets you do "foo" + 12 but it isn't coercing 12 to a string, instead it's adding 12 to the address of the string "foo", e.g. "0123456789abcdef"[nibble].)
It would be interesting to enumerate those that do treat "foo" + 12 as if it was written "foo" + "12".
Edit: add http://en.wikipedia.org/wiki/List_of_programming_languages