在尝试Scala之前需要了解Java吗


15

我对学习Scala感兴趣。我已经阅读了很多有关它的内容,但是很多人都看重它,因为它有一个对并发性更好的actor模型,它以更好的方式处理xml,解决了头等函数的问题。

我的问题是,您是否需要了解Java才能理解/理解Scala中的工作方式?最好先尝试一下Java然后尝试Scala,还是可以在没有Java背景的情况下启动Scala?


5
您需要进行双面操作才能欣赏锯的工作原理吗?:D
back2dos

大声笑,我会赞成这个答案。
gizgok 2011年

Answers:


17

Scala是自己的语言,它本身不需要任何现有语言的知识。如果愿意,您可以将Scala作为第一语言学习。在他们网站Learning Scala页面上,有针对不同经验水平的教程入门,从初学者到编程语言研究人员再到函数式编程专家。

不幸的是,大多数文档都集中在了解如何编程的人上,但是我实际上已经完成了一些Scala教程。它没有那么坏。希望您能理解某些基本概念。


4
托马斯是完全正确的。我只想补充一点,Scala的吸引力在于您可以重用Java的整个大型标准库。在您的情况下,这可能很重要,也可能并不重要,但是如果是这样,那么以前使用Java的经验显然会很有帮助,因为您不禁对标准库的了解很多。
Kilian Foth,

@Kilian我想到了。我仍在学习Scala,实际上还没有做任何有意义的事情,但是我不确定了解Java以能够在Scala中使用Java库有多重要。就像您不喜欢Java语法/样式从Scala调用预编译的JAR一样。
Thomas Owens

1
对于几乎每个现代平台而言,学习标准库要比学习语言语法花费更多的时间。因此,如果您想学习Scala,那么了解Java库会有好处。
杰里米

16

Java意味着两件事:

  1. Java语言-包括该语言及其语法,规则,功能和整体语义
  2. Java平台-包括运行时(JVM),整个标准库和许多流行的框架/库。请注意,还有其他Java“运行时”,例如通过GWT交叉编译后以JavaScript的形式执行,或者Android上的Java,也可以在其他运行时中运行

Java语言和Scala都在同一平台上运行。AFAIK斯卡拉可以很容易地调用到Java代码,所以如果有任何在学习Java的理解/杠杆斯卡拉真正的兴趣,那么它是理解其工作原理和如何从Scala的应用中充分利用Java代码。作为一种语言,Java不太可能教您C#到现在为止还没有教给您的任何东西(我从您的个人资料中假设您具有一定的C#经验)。

这个问题的.NET-analogy将是:

尝试F#之前是否需要了解C#/ VB.NET?

无论哪种情况,答案都是非常坚定的“否”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.