Ruby on rails clojure vs.Ruby

Ruby on rails clojure vs.Ruby,ruby-on-rails,ruby,clojure,Ruby On Rails,Ruby,Clojure,我是ASP.NET开发人员。我想学习网络开发技术和微软以外的其他语言。 我听说过两种语言,但我不知道哪一种更好,也不知道如何偏爱其中一种,尤其是clojure是一种新语言 有谁能帮我解释一下为什么要选择其中一个 谢谢。Ruby是一种不错的语言,尽管我偏爱Django框架而不是Rails。我发现使用解释语言的一件事是它们对线程的模糊实现。在Ruby和Python中,解释器一次只能处理一个线程 就clojure而言,想想当你尝试使用它时,图书馆会有多大。从.Net开始,您已经有了一个巨大的库。Pyt

我是ASP.NET开发人员。我想学习网络开发技术和微软以外的其他语言。 我听说过两种语言,但我不知道哪一种更好,也不知道如何偏爱其中一种,尤其是clojure是一种新语言

有谁能帮我解释一下为什么要选择其中一个


谢谢。

Ruby是一种不错的语言,尽管我偏爱Django框架而不是Rails。我发现使用解释语言的一件事是它们对线程的模糊实现。在Ruby和Python中,解释器一次只能处理一个线程


就clojure而言,想想当你尝试使用它时,图书馆会有多大。从.Net开始,您已经有了一个巨大的库。Python和Ruby在这一点上已经相当成熟,您可以找到您所能想到的大多数扩展。在你没有一个大图书馆之前,你很容易认为它是理所当然的。在切换之前,先看看.NETNuke。没有使用它,但它应该是.Net的模型/查看器层。

从ASP切换到Ruby可能比切换到Clojure更容易,而且它有一个更大的社区和生态系统。但是,如果您对函数式编程和/或奇特的并发特性感兴趣,您应该尝试一下Clojure。

如果您的目标是完成任务并重用成熟的库,Ruby显然会给您带来更好的回报。考虑到web开发,它必须拥有一个最具活力的生态系统。新材料的数量是巨大的,最重要的是,质量往往是惊人的

它有一个非常好的工具,和一系列的工具,使实用的web开发在各个级别都变得轻而易举

在重量级web框架中,您有:

  • ,你一定听说过。这可能是当今大社区和智能设计之间最好的折衷方案之一。另一个在我看来是django,但它是一个python框架
  • ,这是全面框架部门中较轻的替代方案
你有很多更轻的,比如,它可能是我见过的最优雅的小型web框架之一,或者,它很小,使用起来很有趣

这只是开始。无论是针对ORMs、模板引擎,还是任何与web相关的东西,您都有大量的质量选项

在ruby的负面方面:

  • 它是一种非常密集的语言,有很多东西需要学习,并且对“魔法”结构有着明显的倾向。它相当漂亮,但它远不是最简单的语言
  • 它很慢。如果你想做任何需要性能的事情,ruby可能不是你需要的语言。这可能是问题,也可能不是问题,这取决于你想用它做什么
  • 它的“常规编程”库没有web编程库那么多,尽管它显然也不是沙漠。如果您不再使用web编程,像python这样的语言有更广泛的库
Clojure是一种完全不同的野兽。这是一种非常新的语言,它完全是功能性的。如果你以前从未以功能性风格编程,这可能是一种范式转换,会让你在一段时间内效率降低,但你几乎肯定会在这个过程中学到很多东西

它也是一个lisp,就像函数式编程一样,它可能意味着需要学习很多新东西,但在过程结束时会有很多启示

它是一种非常优雅的语言,拥有一个非常活跃的社区。它也比ruby快得多,而且在新的1.2版本中只会变得更好

因此,从积极的一面来看:

  • 这是一种聪明的语言。包含许多有趣的想法,特别是关于并发性的。它不是面向对象的
  • 对于动态语言来说,速度很快
  • 它运行在JVM上,并且具有非常强大且易于使用的Java互操作系统。这基本上意味着您可以使用整个Java生态系统
消极方面:

  • 这是非常新的。这本身并不是一个缺点,但这是你可能会遇到其他麻烦的原因
  • 它几乎没有集成良好的思想库。这是我认为最有害的一点。您基本上拥有java世界中所需的一切,但解决方案可能很难看。您可能希望在此过程中编写自己的包装器库,但这需要时间
  • 它不像你所知道的一切。它不是面向对象的,它不是命令式的,它也不像经典的C语法。因此,根据你的其他语言经验,学习可能需要很长时间
因此,总结如下:

如果您希望在一个非常舒适的环境中学习新事物,同时能够通过利用成熟的库快速构建事物,请选择ruby


如果你想学习更多的新东西,你不介意进入一个全新的领域,最终花更多的时间去做事情,并且你想加入一个社区,这个社区可能正在改变我们对编程的看法,而黑客攻击和在这个过程中获得乐趣,选择clojure;)

这是从.NET比较苹果和橙子,对你来说学习Ruby可能会更容易。你最终可以在桌面上放更多的选项:Scala和F#在某种程度上介于Clojure和Ruby之间。我同意如果你只是其中一个,那么网站就只需要Ruby。有了Clojure,你会学到更多。Clojure中的Web人员正在快速开发新的框架、基于事件的服务器、模板化的新想法。。。Clojure非常适合使用键值存储,因为它感觉就像普通的DataStrucs,所以您不需要OO来转换任何数据库框架。Clojure作为一种通用的无目的编程语言更具实用性,因为它的速度更快,而且有很多优点