对于我们每天使用的流行语言和库:一些糟糕的设计,令人尴尬的API或一般糟糕的可用性的例子是什么?设计错误是我们必须付出的,因为它们会引入微妙的错误,我们必须使用尴尬的解决方法或记住不直观的方法来完成工作.
我特别想到的问题是:OO语言中的一个类实际上不应该继承其他类.有一种特殊的操作符使得某种语言难以解析,并且结果证明它是未使用的.一个错误名称或经常用于其他事物的函数(我正在考虑std::getline
将字符串标记化).
我不是在寻找那些抨击语言的贡献,并声称Perl或其他语言设计得很糟糕.我更多地寻找具体的例子或关于显然本来应该采取不同的事情的轶事.(也许设计师发现它太晚了,并试图在后续版本中修复它,但必须保持向后兼容性.)
在确定URL对象的hashCode时,Java的URL类(或几年前)确实进行了DNS查找.因此,不仅具有URL作为键的哈希表非常慢,而且如果两个连续的DNS请求返回不同的值或者拔掉网络电缆,它可以在运行时更改!