2010-07-26 163 views
16

我是ASP.NET开发人员。我想学习微软的网页开发技术和其他语言。 我听说过两种语言,但我不知道哪一种更好,或者如何优先考虑哪种语言,特别是clojure是新的。clojure与红宝石

任何人都可以帮我解释为什么要选择其中的一个吗?

谢谢。

+0

这是比较苹果橙子 – GabiMe 2010-07-26 13:28:34

+1

来自.NET,它可能会更容易让你学习Ruby。 – NullUserException 2010-07-26 13:30:14

+1

您最终可以在表格中添加更多选项:Scala和F#都以某种方式“处于”Clojure和Ruby之间。 – 2012-08-21 12:52:35

回答

1

虽然我偏爱Rails上的Django框架,但Ruby是一种很好的语言。我发现使用解释型语言的一件事是他们模糊的线程实现。在Ruby和Python中,解释器一次只能处理一个线程。

就clojure而言,想一想当你尝试使用它时图书馆会有多大。来自.Net你已经有了一个巨大的库。在这一点上,Python和Ruby相当成熟,你可以找到大部分你可以想象的扩展。在没有它的情况下,大型图书馆是理所当然的。转换之前看一下.Net nuke。没有使用它,但它应该是.Net的模型/查看器层。

3

从ASP切换到Ruby可能比切换到Clojure更容易,它也有更大的社区和生态系统。但是,如果您对函数式编程和/或花式并发功能感兴趣,则应该给Clojure一个镜头。

+0

你可以让Clojure为你提供整个Java社区和生态系统......你可以争论定义,但在实践中你会得到很多好处 – mikera 2011-02-17 00:38:57

19

如果您的目标是完成任务并重用成熟的库,Ruby显然会为您提供更好的回报。考虑到Web开发,它必须拥有最具活力的生态系统之一。新东西的数量很大,而且最重要的是,质量往往令人惊叹。

它有一个非常不错的package distribution system,和一些工具,使各种级别的实际网络开发轻而易举。

在你有重量级的Web框架:

  • Rails,你都一定听说过。这可能是当今大型社区和智能设计之间最好的妥协方案之一。其他人会在我看来被Django的,但它是一个Python框架
  • Merb,这是在完全成熟的框架部

打火机替代你有一吨较轻的,如Sinatra,这可能是我见过的最优雅的小型网页框架之一,或者是Camping,它使用起来很小且很有趣。

这只是开始。无论是ORM,模板引擎,还是其他任何你想要与它相关的网站,你都有很多优质的选择。

在红宝石消极的一面:

  • 这是一个非常密集的语言,有很多东西需要学习,并为“神奇”构建一个独特的倾斜。它非常漂亮,但它远非最简单的语言。
  • 速度很慢。如果你想做任何需要性能的东西,ruby可能不是你需要的语言。这可能是也可能不是问题,取决于你想要做什么
  • 它没有像“网络编程”那样多的“常规编程”库,尽管它显然不是沙漠。像python这样的语言如果你不参与web编程,它的库的范围更广。

Clojure是一个完全不同的野兽。这是一门非常新的语言,它完全实用。如果你以前从未以功能性风格进行过编程,那么这可能是一种范式转变,可能会使你的工作效率下降一段时间,但在这个过程中你几乎肯定会学到很多东西。

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

这是一个非常优雅的语言,一个非常活跃的社区。它的速度也比ruby快很多,而且新版本的1.2版本只会更好。

所以,从积极的一面:

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

在消极的一面:

  • 这是非常新的。这本身并不是一个缺点,但是它可能会带来其他麻烦。
  • 它很少有很好的集成和思想库。这是我认为最有害的一点。你基本上拥有你在java世界中所需要的一切,但解决方案可能很难看。您可能想在流程中编写自己的包装库,但这需要时间。
  • 这不是你所知道的一切。它不是面向对象的,它不是必要的,它没有像古典C语法那样的东西。所以,这取决于你的其他语言的经验,这可能需要很长的时间来学习

所以摘要:

如果你想在一个非常舒适的environnment学习新的东西,而不必建立东西的可能性借助成熟的图书馆非常快速地选择红宝石。

如果你想学习甚至更​​多新东西,你不介意在一个全新的领域,最终花更多的时间去做事情,并且你想参与一个可能正在修改的社区我们关于编程思考的方式,虽然黑客入侵和在这个过程中玩得开心,选择clojure;)

+0

我同意如果你只有一个网站完成ruby。使用Clojure,你会学到更多。 Clojure中的网络资源正在快速开发新的框架,基于事件的服务器,模板化的新思路...... Clojure非常适合使用关键值存储库,因为它几乎像普通数据库一样感觉所以你不需要OO到什么数据库转换框架。 Clojure作为普通的purpess编程语言更具有优势,因为它更快速,并且有更多的库。 – nickik 2010-07-26 14:25:58

+0

我同意Clojure可以从一些流行的库/框架中获得很多,但我认为我看到的可用代码更清晰。正如另一位评论者曾经说过的,Ruby拥有大量可用的“与Fugly内部关系”的库。它们可能适合您的需要,但您必须遵守其代码风格,可能有或可能不存在巨大的效率问题,并且可能需要在Rails下一版本发布时进行更新(请记住,需要更新Rails出于安全目的,所以你需要推进或获得LTS版本)。 Clojure库对我来说更像是干净的代码。 – jm0 2013-12-18 22:13:45