本书Software Abstractions的第163页有这个非凡的陈述:
声明式描述非常强大,但它有一个 缺点:无意中过度约束。
哇!
“无意中过度约束”是否存在于所有声明性语言中?例如,XML Schema中是否发生了无意的过度约束? SQL中是否会发生无意的过度约束?
换句话说,是合金特有的“无意的过度约束”问题,还是广泛适用于所有声明性语言?如果是后者,我将非常感谢解释。
答案 0 :(得分:1)
它是联合带来的好处的另一面。在编程语言中,您不能通过说"输出是输入的排列和元素按顺序排列",但你可以说在允许和的规范语言中。这提供了很多功能,特别是通过实现关注点分离,它可以让您从最小限制开始,然后增长它们。但是有一个缺点:添加太多限制,你最终可能会错误(或者更糟糕的是,某些东西比你想象的要强一些)。合金的不良核心设施有助于解决这个问题,但并没有完全解决问题。