我在美学上是 Scala 的忠实粉丝,并且喜欢将许多概念性工作投入到诸如其类型系统和库之类的东西中。
但是,当我开始对 Scala 进行修补(并且看到我的一些同事在修补它)时,我发现自己不得不挖掘越来越多的 Java 知识(尤其是在库方面)。
这给我带来了一些问题:
- 我从未做过 Java 程序员,对 Java 标准库或其他流行库(如 Apache Commons)不熟悉或不熟悉。
- 我在 Java 领域的 google-fu 很弱。很难知道要搜索什么 - 大量不相关或初级的 Java 编程新手教程加剧了这个问题。
但在这一点上,我不确定我是否应该硬着头皮尝试找到最快、最全面的 Java 之旅,以 catch 20 年的 Java 发展,或者继续尝试是否合理当我在 scala 中闲逛时,逐步修补我的知识。
我们中的 scala 负责人能提供的任何智慧都将不胜感激。
附: 我对自己熟悉 Scala 语法的能力毫不怀疑,而且我对函数式编程和 scala 社区中的范例非常满意和满意。但程序员的能力不仅取决于一个人自学的能力,还取决于一个人向他人学习和采用其他工具和技能的能力。
最佳答案
您应该采用 lazy
方法来学习 Java。在需要时学习它。
在我看来,很多旧的 Java 知识已经过时,很多新教程都是多余的。例如,您当然不想为 Java 过时的 Collections
烦恼。许多基于 Java 的框架可以安全地忽略。并且可以安全地绕过重量级 JavaEE 堆栈,直到您被迫使用其中的一部分。
Java 中的许多常见模式在 Scala 中要简单得多,前者需要大量样板代码。核心逻辑应该始终在 Scala 中实现。我相信您可以直接在 Scala 中完成大部分工作,并且只需要在构建 Swing 或与 Spring 集成等时深入研究 Java。
关于选择和使用 Java 库,我个人的指导方针是:
- 如果 Spring 可以做到,请使用 Spring
- 如果 Spring 太重,就使用 Spring 使用的。
- 如果 Spring 做不到,请查看 github 项目
- 如果 github 上没有任何内容,请检查 Apache 项目
- 如果 Apache 没有任何内容,请检查 sourceforge(t)。
- 最后,Google 随机或自行构建。
这有点儿戏,但在过去 12 年从事 Java 工作后,我对第三方库的成熟度和稳定性的印象是。
关于java - 作为一个称职的 scala 程序员是否需要你成为一个称职的 java 程序员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4230746/