要不要用Ruby
我知道这个问题可能不太好回答,但我还是想试试……
我刚刚开始在一家新公司工作,他们的代码库非常简单,目前大概只投入了一个月的开发时间。现在这些代码是用Ruby写的。
目前也在使用Ruby on Rails,但主要是为了测试Ruby代码。
这段代码的最终目标是为一个用PHP写的网站提供后台支持(可能是Drupal、Echo等的后台)。
我对Ruby没有经验,所以我倾向于使用我更熟悉的语言(比如Python),但我也不想因为没有理由就排除Ruby。
如果你不打算在Rails项目中使用Ruby,那它还有价值吗?我选择Python或其他语言会不会更好?
这些库的比较如何?
谢谢!!!
6 个回答
Rails应用程序可以成为基于PHP系统的一个很好的REST后端。
REST的功能非常适合这个用途。你想要xml格式的数据?没问题。你想要json格式的数据?也没问题。
如果你和你的团队对这个不太熟悉,那就用你们更熟悉的方式来写一个REST接口吧。 :)
Ruby的疯狂。看起来很酷,但可能会让你接触到更复杂的东西:Lisp
我的预测:
很明显,你对Ruby或Python都没问题,当然php也能用。
你会非常喜欢Ruby。
我有点担心,在Ruby之后,唯一的去处就是Lisp,到时候我可能会变成那些疯狂的Lisp爱好者,留着奇怪的发型,挥舞着手臂,喃喃自语关于“唯一真正的宏处理器”。
稍微认真一点,虽然Lisp和Smalltalk在60年和40年后仍然处于小众领域,但这两个语言的结合却结出了果实。各种Lisp和Smalltalk的程序员开始在Ruby和Rails的会议上谈论他们的“孩子”Ruby。实际上,Ruby(大约15年的历史)融合了Lisp和Smalltalk的一些神奇特性。
而且,Ruby还带来了Perl的日常实用性和三行脚本的强大功能。Ruby在编程语言界是一场爆炸,它将Perl的脚本超能力与像Smalltalk这样异国情调语言的面向对象超能力结合在一起。
无论有没有Rails,Ruby都是一门令人惊叹和开创性的语言。我说,试试吧。
我的建议会根据你自己的目标而有所不同,你可以问问自己(或者给每个选项打个分,从1到10),看看你更喜欢:
- 学习一门将来可能用到的新语言?比如说 Ruby。
- 通过把 Python 用在所有事情上来加深你的 Python 技能(比如使用 Django 或 Web.Py)= Python。
- 把 Ruby 的测试从 Rails 中移出来 = Ruby。
你还可以问自己一些其他问题来帮助做决定,比如:
- 速度重要吗?可以在不同语言中做一些测试。(如果是 Ruby,那就用 Ruby 1.9,再看看 另一本 Ruby 书。)
- 整合性重要吗?如果重要,为什么要用 PHP 作为前端?
- 你和语言社区的联系重要吗?如果重要,可以根据“社区感”来选择。
- 是否有大量的后端文本处理?(Perl?)
- 你想用 ORM 还是写 SQL?= 看看 Ruby 和 Python 的 轻量级框架。
我觉得库的问题不大,因为(我很确定)流行语言的库涵盖了所有常见的任务。
如果你能把以上所有选项打分从1到10,可能会帮助你找出一个更喜欢的方向……
然后,我认为问题可以分为三点:
- 你最喜欢用什么语言编程(工作应该是愉快的)?
- 前端和后端能否用同一种语言生成?
- 你想用框架还是现成的内容管理系统(CMS)作为前端?
了解语言的起源也是值得的:PHP 最初被宣布为 SSI 的扩展,Ruby 尝试结合 Perl、Smalltalk 和 Lisp 的优点,但也有类似 C/Java 的语法,Perl 与 Unix 紧密相连,虽然通常对最终用户是隐形的(尽管有一些 非常好的 Perl 网络框架)。你已经了解 Python 了。
至于框架和 CMS,了解它们的区别、限制和特点也可能有帮助。安装一个 PHP CMS 很简单(对于有明确目的的网站来说很好),但当你想做一些它无法直接做到的事情时,可能会发现自己被一大堆难以理解的代码困住。后端语言的框架能让你更容易地把前后端连接起来。