+1 that `TEXT` and `VARCHAR` get the same implementation in
Postgres.
In my opinion though: I'd still tend to prefer the
`VARCHAR` (or `TEXT` column with a `CHECK` constraint on
length) over unbounded `TEXT`. Limiting the length isn't
strictly required, but it's still useful for protecting
your data's integrity against unexpected input. Say for
example there was an application bug that accidentally
inserted a bad value into the column.
Constraints (be it data types, `CHECK`s, or foreign keys)
are one of the powerful features that Postgres and other
RDMSes offer you compared to "NoSQL", and they're a great
tool for adding a secondary layer of protection against
bugs that would otherwise compromise the shape of your
data. Very often, the more of them you have, the better.
Brandur