我刚刚开始研究即将在2.8版本中发布的Scala集合库的重新实现。那些从2.7开始熟悉该库的人会注意到,从使用角度来看,该库变化很小。例如...
> List("Paris", "London").map(_.length)
res0: List[Int] List(5, 6)
...在任何一个版本中都可以使用。该库非常有用:实际上,它很棒。但是,那些以前不熟悉Scala并四处摸索以了解该语言的人现在必须理解方法签名,例如:
def map[B, That](f: A => B)(implicit bf: CanBuildFrom[Repr, B, That]): That
对于这样简单的功能,这是一个令人生畏的签名,我发现自己很难理解。并不是说我认为Scala可能成为下一个Java(或/ C / C ++ / C#)的原因-我不相信它的创建者将其瞄准该市场-但我认为Scala成为/肯定是可行的下一个Ruby或Python(即获得大量商业用户)
- 这会让人们不去斯卡拉吗?
- 这是否会使Scala在商业世界中成为坏名声,因为只有专注的博士生才能理解这种学术玩法?被CTO S和软件的负责人会得到吓跑了?
- 重新设计图书馆是明智的想法吗?
- 如果您正在商业上使用Scala,您是否对此感到担心?您打算立即采用2.8还是等待观察会发生什么?
史蒂夫·耶格 (Steve Yegge)曾经攻击Scala(在我看来是错误的),因为他认为Scala的字体系统过于复杂。我担心有人会在野外使用此API 散布FUD(类似于Josh Bloch害怕JCP不会在Java中添加闭包)。
注意 - 我应该清楚一点,尽管我相信约书亚·布洛赫(Joshua Bloch)在拒绝BGGA封闭提案方面具有影响力,但除了他诚实地认为该提案代表错误之外,我没有将这归因于其他任何事情。
尽管我的妻子和同事一直在告诉我什么,但我不认为我是个白痴:我在牛津大学获得了很好的数学学位,并且我从事商业编程已有近12年的时间,并且在Scala从事商业编程大约一年(也是商业上)。
请注意,煽动性的标题是对1980年代初期英国政党宣言的引用。这个问题是主观的,但这是一个真实的问题,我已将其定为CW,我希望对此事发表一些意见。