You need to have something like is there now to be able to call C routines that want a char *. (That doesn't in and of itself argue against another interface for the underlying representation.)