Why use varchar a lot?

So it’s totally appropriate to denormalize a table when the data you’re dealing with is variable length. Variable-length rows lead to fragmentation, whereas if you have fixed-length rows, a new row can take the place of a deleted row with no problem.

With disk space so cheap these days, why is varchar used so often? I understand that varchar is probably misrepresented — if one attribute is variable length (varchar) then all char attributes are changed to varchars. However, why employ the use of varchar instead of char?

So it’s totally appropriate to denormalize a table when the data you’re dealing with is variable length. Variable-length rows lead to fragmentation, whereas if you have fixed-length rows, a new row can take the place of a deleted row with no problem.

With disk space so cheap these days, why is varchar used so often? I understand that varchar is probably misrepresented — if one attribute is variable length (varchar) then all char attributes are changed to varchars. However, why employ the use of varchar instead of char?