From: Mark Fredrickson [mailto:mark.m.fredrickson@gmail.com] The big problem that I see with CCK right now is that it ties a lot of the logic into the form submission process. This is similar to the problems we've seen with programmatically creating nodes. This is a problem for the immediate need of allowing modules to define and import their own content types (a la views). It is also a problem for long term maintenence. There are at least three ways to create a field, all of them tied to a different form. If the data storage mechanism changes (again) that requires picking through three different areas of the code, trying to synchronize the changes.
Just a quick note that http://drupal.org/node/77919 is a patch that allows programmatic submission of forms without any user interaction. Get a form array, populate the form values, and process it -- the same validate, submit, and so on calls are executed. That won't solve problems that arise from a lack of clean API, but it WILL make scripting/automating processes that require form interaction much more straightforward in 4.8/5.0. --Jeff