The left side shows all the ridiculous string types C++ developers have to deal with: str , String , OsStr , OsString , Path , PathBuf , Vec<u8> , &u8 , CString , CStr ... while the right side shows the elegant simplicity of just using char[] . It's like bringing a Swiss Army knife to a gunfight when all you needed was a bullet. The string handling complexity in modern languages vs. the old-school C approach is programming's version of "why use many word when few word do trick?"