clojure与Ruby

Mos*_*azi 17 ruby ruby-on-rails clojure

我是ASP.NET开发人员.我想学习Web开发技术和微软以外的其他语言.我听说过两种语言,但我不知道哪种语言更好或者如何偏爱另一种语言,特别是clojure是新的.

任何人都可以帮我解释为什么选择其中一个而不是另一个?

谢谢.

rap*_*ard 19

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

它有一个非常好的软件包分发系统,以及许多工具,可以在各个层面轻松实现实际的Web开发.

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

  • Rails,你一定听说过.这可能是今天大社区和智能设计之间最好的妥协之一.另一个在我看来是django,但它是一个python框架
  • Merb,在完整的框架部门中更轻松的替代品

而且你有很多较轻的,比如Sinatra,它可能是我见过的最优雅的小网页框架之一,或露营,这是一个小而且非常有趣的使用.

这仅仅是个开始.无论是ORM,模板引擎,还是其他任何您想要与网络相关的事情,您都有大量的质量选择.

对红宝石的消极方面:

  • 它是一种非常密集的语言,需要学习很多东西,并且对"魔法"结构有明显的倾向.它非常漂亮,但它远非最简单的语言.
  • 这很慢.如果你想做任何需要性能的事情,ruby可能不是你需要的语言.这可能是也可能不是问题,取决于你想用它做什么
  • 对于"常规编程"而言,它没有像网络编程那样多的库,尽管它显然不是沙漠.如果你退出网络编程,像python这样的语言有更广泛的库.

Clojure是一个完全不同的野兽.它是一种非常新的语言,它完全是功能性的.如果你之前从未编写过功能风格的编程,那么它可能会在一段时间内降低你的工作效率范围,但你几乎肯定会在这个过程中学到很多东西.

它也是一个lisp,与函数式编程一样,它可能意味着要学习很多新东西,但在这个过程的最后会有很多启示.

这是一种非常优雅的语言,拥有非常活跃的社区.它也比红宝石快得多,而且只有新的1.2版本才会变得更好.

所以积极的一面:

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

在消极方面:

  • 这是非常新的.这本身并不是一个缺点,但也是你可能遇到的其他麻烦的原因.
  • 它很少有很好的集成和思想库.在我看来,这是最不利的一点.你基本上拥有了java世界中你需要的一切,但解决方案可能很难看.您可能希望在此过程中编写自己的包装器库,但这需要时间.
  • 它不像你所知道的一切.它不是面向对象的,它不是必需的,它没有经典的C语法.因此,根据您的其他语言经验,可能需要很长时间才能学习

所以摘要是:

如果你想在一个非常舒适的环境中学习新东西,同时有可能通过利用成熟的库来快速构建东西,那么选择ruby.

如果你想学习更多新东西,你不会介意在全新的领域,最终花更多的时间做事,并且你想参与一个可能正在修改我们编程方式的社区,在黑客攻击和玩乐过程中,选择clojure;)


Que*_*mer 1

Ruby 是一种很好的语言,尽管我更喜欢 Rails 上的 Django 框架。我发现使用解释语言的一件事是它们对线程的模糊实现。在 Ruby 和 Python 中,解释器一次只会处理一个线程。

就 clojure 而言,当您尝试使用它时,请考虑一下该库有多大。来自.Net,你已经拥有了一个巨大的库。Python 和 Ruby 目前已经相当成熟,您可以找到几乎所有您能想象到的扩展。人们很容易认为拥有一个大图书馆是理所当然的,直到你没有它为止。在切换之前先看看.Net nuke。没有使用过它,但它应该是.Net 的模型/查看器层。