Scala – Java =? (或Clojure – Java =?)

  1. 开发人员是否可以在不了解Java的情况下使用Scala?
  2. 开发人员是否可以在不了解Java的情况下使用Clojure?

注意:例如我是C#开发人员,我使用.NET而不知道任何VB(当然WF 4.0使用VB语句,所以我拒绝任何涉及WF 4.0的项目:))。

总结I:感谢大家的回答。 现在我可以告诉一个人可以在不知道Java(语言)的情况下使用这些语言。 现在我有另一个问题:如何从Java(JVM)生态系统开始? 什么是初学者,中级和高级知识库(包!)? 老实说Java生态系统对我来说总是有点混乱,因此为学习(曲线!)JVM提供一些“参考参考”和“defacto教程”会非常有帮助。 (好的!我会把它作为另一个问题发布!)

Scala和Clojure更是如此,它们与Java完全不同。 他们唯一的共同点是它们在Java虚拟机上运行。 您不需要知道要在Scala或Clojure中编程的Java编程语言。 但是,了解Java生态系统(Java虚拟机和运行时环境)会很有用。

你当然可以。 您最初缺乏标准库的知识,但是当您开始使用新语言时,这不是一个大问题。 但是,Clojure和Scala非常重视Java互操作,并且不会试图隐藏原始的Java内容,因此您可能需要在某些时候更多地了解Java(不是语言 – Java平台)最大限度地使用语言和底层平台。

从了解Java和Clojure(但不是Scala)的角度来讲,您可以在不了解Java的情况下使用Clojure。 您可以访问function齐全的核心语言和库(例如clojure-contrib)。

但是,使用Clojure(与其他lisps相比)的一大好处是可以访问Java生态系统 – 库,调试器,JVM等。

所以,是的,你可以有效地使用Clojure,我不会让缺乏Java知识阻碍你,但如果你最终开始学习足够的Java来利用它,你会添加你的技巧。

好吧,Clojure已被移植到CLR。 由于您是.NET开发人员,因此整个跳转到JVM可能更容易。 🙂

http://github.com/richhickey/clojure-clr

没错是我!

除了当我需要一个愚蠢的简单摇摆gui时,对我来说并没有什么问题。 多数民众赞成我不得不回去审查java。

Scala与java完全不同。 所以是的,你当然可以在不知道java的情况下使用scala(当然你必须首先学习scala)。 即使知道java(或任何OO语言)+一些函数式语言,也更容易理解scala。

你有没有考虑过使用f#的可能性? 它具有ML风格的function,具有丰富的类型系统(然后更接近scala而不是clojure)并且它包含在.net中的开箱即用