Arduino Strings are safe and usable
So why do you keep pointing at your SafeString library and your tutorial on "
Taming Arduino Strings for how to use Arduino Strings without problems"?
if they are OK why would they need taming?
if they are OK then your library should not be discussed in the Arduino forum either, right?
also, remind us what did you use to write your SafeString library? cStrings or the String class? (answer = cString, just like the String class.... so if they are good for the Arduino team and you, why shouldn't they be OK to learn about by the rest of the community?)
The point is that making sound decisions based on facts is part of a programer's life. Understanding how to deal with buffers, bounds and checking for limit cases and making decisions when bad things happen is an integral part of learning how to master scarce memory and the C/C++ language. And you still have to do so with your "safestring" library as you don't have dynamic storage expansion anyway.
Exposing newbies to this reality is important and should not be hidden, it's a learning opportunity. Then they can decide for themselves what they want to use. If it's a 20 lines piece of code and 3 minutes show and tell throw away project for school and they don't care about programming, then it might not require all that time investment and it's OK to go for the String class, but at least it's a conscious decision.