从美学的角度来看,我是Scala的忠实拥护者,并且喜欢将其投入打字系统和库之类的许多概念性工作。
但是,当我开始修改Scala(并看到我的一些同事在修改它)时,我发现自己不得不挖掘越来越多的Java知识(尤其是以库的方式)。
这给我带来了一些问题:
不过,在这一点上,我不确定我是否应该咬紧牙关,尝试通过Java找到最快,最全面的教程来赶上Java的20年发展,还是不确定继续尝试逐步修补我的Java是否合理我在scala周围徘徊时的知识。
斯卡拉领导我们之间提供的任何智慧将不胜感激。
PS我毫无疑问会熟悉Scala语法,我对函数式编程和scala社区中的范例感到非常满意和满意。但是,程序员的能力不仅取决于自己的自学能力,而且还取决于他从其他人那里学习和采用工具与技能的能力。
您应该采取一种lazy学习Java 的方法。在需要时学习它。
lazy
我认为,许多旧的Java知识已经过时,许多新的教程都是多余的。例如,您当然不想打扰Java的过时Collections。许多基于Java的框架可以安全地忽略。而且,可以安全地绕过重量级的JavaEE堆栈,直到您被迫使用其中的一部分。
Collections
Java中的许多常见模式在Scala中要简单得多,前者的工作繁琐。核心逻辑应始终在Scala中实现。我相信您可以直接在Scala中完成大部分工作,并且在构建诸如Swing或与Spring集成之类的东西时仅需要使用Java。
关于选择和使用Java库,我的个人准则是:
这有点荒唐可笑,但这是我在过去十二年中使用Java以后对第三方库的成熟性和稳定性的印象。