I tend to agree, but in static languages, reflection engines are usually needed to automate or simplify mapping, and reflection can get messy. Static languages are not designed for CRUD, in my opinion (without a revolution in frameworks, at least). Look at the square-bracket "annotations" or "attributes" in C#. Isn't that kind of info that classes or object instances were supposed to define, such as fieldx.maxLength=30;? Square brackets are a kludge.
But no ORM for me, thank you. I have already given.