Scala WartRemover是否解决了杨章批评中提出的问题?

时间:2015-01-06 11:27:02

标签: scala

Yang Zhang提供了Scala语言的the following critique,说明了以下内容:

Scala Wart Remover解决了以下问题:

  • 任何
  • Any2StringAdd
  • AsInstanceOf
  • DefaultArguments
  • EitherProjectionPartial
  • IsInstanceOf
  • ListOps
  • NoNeedForMonad
  • NonUnitStatements
  • 没有
  • OptionPartial
  • 产品
  • 返回
  • 序列化
  • 不安全
  • 无功

我的问题是: Scala WartRemover是否解决了杨章批评中提出的问题?

1 个答案:

答案 0 :(得分:5)

绝大多数都没有。 Wartremover解决了其中一些线路中的哪些线路无法编译"琐事问题,通过使任何遵循特定不良形式的代码成为错误。但那是(IMO)从未成为批评的有趣部分。

隐式宏(在2.11中)和Shapeless 2.0解决了扩展集合的问题;万里' 1-line-of-boilerplate-per-type解决方案现在是0-line-of-boilerplate-per-type解决方案(使用宏可以证明是作弊,但你没有必要自己编写宏,你可以在Shapeless中调用一个标准的宏。一如既往,我们应该强调,这里的抱怨是,在Scala中很难用其他语言做什么(除了像Idris之类的东西)。

社区仍然不善于回应批评,IMO。也就是说,Scala在解决实际业务问题方面似乎越来越成功;我感觉大多数前沿的使用都在增长,这表明任何复杂性要么不是批评声称的问题,要么至少可以解决。当然,在我现在的雇主那里,我们比以往任何时候都做更多Scala,并且用更少的努力生成更好,更易维护的程序。