Julia 语言存在许多在计算方面并不正确的缺陷:
多年来,我使用Julia编程语言来转换、清理、分析和可视化数据,进行统计,并进行模拟。
我发布了一些开源包,用于诸如有符号距离场、最近邻搜索和图灵模式(以及其他),对Julia的概念进行了可视化解释,如广播和数组,并使用Julia制作了我名片上的生成艺术。
我不久前已经停止使用Julia了,我想我应该把我的理由写出来。
在使用 Julia 多年之后,我的结论是,在整个生态系统中存在着太多的正确性和可组合性错误,以至于在任何对正确性有要求的情况下,都没有理由使用它。
根据我的经验,在我使用过的所有编程系统中,Julia 及其软件包的严重正确性错误率是最高的,而我在 2000 年代中期开始使用 Visual Basic 6 编程。
举一些具体的例子可能是有用的,以下是我提出的一些正确性问题:
- 对概率密度进行抽样会产生不正确的结果
- 对数组进行采样可能会产生有偏差的结果
- 乘积函数可能会为 8 位、16 位和 32 位整数产生不正确的结果
- 将直方图拟合到 Float64 数组可能会产生不正确的结果
- 基函数 sum!、prod!、any! 和所有!可能会默默地返回不正确的结果
以下是其他人提出的类似问题:
- Summarystats 返回平均值为 0 的数组的 NaN 分位数
- OrderedDict 可能会损坏密钥
- 闰年 dayofquarter() 的误差
- 使用带有误差线的数字类型时,模拟结果不正确
- 带有 stdout=IOStream 的管道乱序写入
- 错误的结果,因为某些copyto!方法不检查别名
- 错误的 if-else 控制流程
我经常遇到这种严重程度的错误,足以让我质疑 Julia 中任何中等复杂计算的正确性。
。。。
我过去十年在语言和社区方面的经验强烈表明,至少在基本正确性方面,Julia 目前并不可靠,或者正在变得可靠的道路上。对于 Julia 团队想要服务的大多数用例,风险根本不值得回报。
详细点击标题