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

haw*_*eye -2 scala

张洋提供下列批评 Scala语言说明如下:

斯卡拉除疣解决以下问题:

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

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

lmm*_*lmm 5

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

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

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