1. initially it was port of z3c.form, but much more simple.
it was more than year ago, i was much more familiar with z3c.form
2. we need some serialization library, we used zope.schema
then switched to colander. over time we found that colander just adds
too much complexity.
we use ptah.form in 3 different subsystem. form ui, rest api and
settings. ptah.form is more about fields(schema) rather than form
generation