A defense of C's null-terminated strings
What I want from strings in a programming language:<p>1) Memory-safe (can&#x27;t touch memory that you don&#x27;t own)<p>2) Opaque (standard library can change the implementation later)<p>3) Immutable (can be passed around like values)<p>4) Unicode (no fixed width chars, no default conversion to bytes)<p>I don&#x27;t know any good reason to deviate from these rules. Even systems languages would do well to follow them, IMO.