用于.NET开发人员的Python或Ruby?

时间:2009-02-15 19:45:36

标签: python ruby-on-rails ruby comparison

我是一名C#.NET开发人员,我主要从事ASP.NET项目。

我想学习一种新的编程语言,

  • 通过体验新语言来提高我的编程技巧,
  • 看到与微软环境不同的东西,
  • 也许以不同的方式思考。

为了我的目标,我专注于两种语言。 Python Ruby

  • 你为我提供哪一个?
  • 他们彼此的利弊?
  • 值得学习吗?

编辑:抱歉,我编辑了我的帖子但未通知此处,

Ruby on Rails取代了Ruby。

8 个答案:

答案 0 :(得分:16)

这两种语言都很强大而有趣。对您的工具箱来说,这两者都是有用的补充。

Python拥有更大的社区,可能还有更成熟的文档和库。它的面向对象有点不一致,感觉(对我来说,恕我直言)就像是用语言固定的东西。您可以在运行时更改类行为(猴子修补),但不能更改预编译类,并且通常不赞成。

Ruby可能与您当前的体验有所不同:它具有一些Smalltalk的风格(例如,方法调用更正确地发送消息)。它的面向对象是从头开始内置的,所有类都可以修改,它是一个被接受 - 如果有点可怕 - 的练习。社区规模较小,图书馆不太成熟,文档覆盖率较低。

两种语言在下一个majopr版本中都会有一定程度的向后兼容性,两者都有.Net实现(IronPython是生产,IronRuby到达那里)。两者都有反映其优势的网络框架(搜索关于Django / Rails辩论的SO)。

如果我从未见过Ruby,我会非常高兴使用Python,并且在必要时不会受到影响。我总是发现自己希望能用Ruby完成这项工作。但那是我的意见,YMMV。

编辑:来想想它,即使它让我感到痛苦,如果你想利用你对.Net框架的了解,你可能最好看看IronPython,因为它比Ruby等价物更成熟

答案 1 :(得分:6)

首先......对你想要扩大你的知识有好处!其次,您正在将语言(Python)与Web框架(Ruby on Rails)进行比较。

我认为您最好的选择是在Python Ruby中尝试一些不同的框架,在每个框架中执行相同的相当简单的任务,然后选择您想要了解更多的框架关于。 Rails对Ruby很好,但它并不是唯一的。对于Python,我喜欢Pylons和Django。

优点和缺点:Ruby比Python更清晰,语言更清晰。 Python有一套更大的模块。

值得学习吗?是的,同时适用于Python和Ruby。

答案 2 :(得分:3)

如果您是初学者,如果您决定开始学习Python,我建议您尝试Django。当然,如果您认为Ruby是您的风味选择,Rails是显而易见的方法。无论你选择哪种语言,我都可以向你保证这将是一个不错的选择。

话虽如此,我个人的选择是Python。我喜欢这种语言,我喜欢社区,几乎每次都使用Python。我将它用于命令行应用程序,GUI应用程序,并将其用于Web应用程序(Django)。哦,我也将它用于Windows和Linux上的系统管理脚本。

说完之后,我建议你学习像Haskell或Lisp这样的语言。这将真正打开你的眼睛,以一个新的编程视角。此外,既然你说你大多熟悉.Net框架,我真的建议你从F#开始,因为你已经熟悉了这些库,它将使转换更加顺畅。无论哪种方式,祝你好运。

答案 3 :(得分:2)

学习新的编程语言总是有价值的。 Python和Ruby都是很好的。值得注意的是,虽然Python是一种语言,但Ruby on Rails是一个框架。恕我直言,你应该学习Ruby 之前你学习Rails。

转到try ruby!,看看你是否喜欢它。如果你这样做,那么试试Rails。否则,试试Python。两者都同样有用。对我来说,Ruby更“有趣”。如果你喜欢Lisp,你可能会喜欢Ruby。如果你喜欢C,你可能更喜欢Python。试试两个!

答案 4 :(得分:2)

经验法则 - 如果您喜欢严格的规则则使用Python,如果您喜欢Ruby则使用Ruby。

另一个:如果你喜欢JavaScript - Ruby是你的选择:)

答案 5 :(得分:2)

什么?没有提到IronPython?

IronPython是DLR的旗舰语言。它允许您使用所有熟悉的.NET库,但通过Python。

我肯定会尝试使用Python和IronPython。您将学到很多东西,甚至可以将它隐藏到您当前的项目中(您可以在.NET应用程序中嵌入IronPython引擎)。

答案 6 :(得分:1)

如果您正在学习Ruby on Rails,guides site有一本很好的入门指南和更多关于改进rails-fu的指南。

此外,Tore Darell写了一个S urvivor's Guide for Ruby on Rails,这也可能对你有用。

答案 7 :(得分:0)

我会加入Ruby。似乎有一个更大的(或至少更活跃的)社区,新项目的步伐和持续发展是首屈一指的,学习资源似乎超过&超过Python的那些。我错了,但这些都是我的印象。