2009-04-29 203 views
4

在a)windows b)linux或c)mac上的rails上开发ruby会更好吗?为什么?ruby​​开发环境

编辑:

为什么我问这是我听到的是,在开发Windows Ruby on Rails的是不是稳定/好当你在Mac轨使用红宝石相比的原因。 (不知道如果这是真的或不)。

加上David Heinemeier Hansson(Ruby on Rails的创建者)似乎正在使用Mac这一事实,因此最初的印象似乎是Ruby on Rails应用程序,Mac可以很好地结合在一起。

+2

我认为这只是一个偏好和习惯的问题。如果您曾经是一个以Windows为中心的人,刚开始使用RoR或您感兴趣的任何语言,最好坚持使用旧环境(即Windows)。由于您不仅仅处理语言本身,而且还处理新环境(OS),因此您将没有特定于平台的命令来学习。其他平台也是如此。 – Eddy 2009-04-30 01:48:34

回答

24

我强烈建议你不要在Windows上开发。为什么?首先,每次升级都会在Windows上发生很多事情,而绝大多数创业者或插件创建者都不使用Windows,因此他们不关心Windows,也不对其运行测试(有几个大名字那些持平的人说Windows不是他们的问题,而是你的)。你会发现* nix vs Windows问题会一次又一次地让你陷入屁股。路径名斜杠,在SSH实现,控制台和字体问题,RubyGems的,Capistrano的,等细微差别......

什么最终会发生一段时间后,就是你永远有这样的声音在你的脑袋,每次的回你必须调试一些说“这只是在Windows上的问题?”而这个小小的声音对你来说是一种代价。每天都会使用你的一些电池。

苹果电脑在前期美元方面比较昂贵(可惜我没有),而Linux平台则花费了一两天的时间来花费更多的时间来试图让你的无线工作,但这些是前期一次性成本。使用Windows for Rails开发的不安全感是一个持续的成本。至少在社区开始拒绝并非真正跨平台的事情之前。

作为一个例子看看黄瓜。出于某种原因,测试框架依赖于Windows中不可用的特定控制台配置。因此,要在Windows中使用它,必须更改控制台中的字体并更改控制台中的代码页。否则,字母“a”从所有输出中消失。为什么?因为它适用于* nix系统,并且给你漂亮的颜色(我认为这是一个巨大的缺陷,即使你忽略windows也是非常糟糕的设计选择)。

你也会觉得每次出现窗户问题时都会在电梯里放屁。

我说这一切都是为了那些目前不得不为他的开发平台使用windows的人。嘿,那是什么味道?

[后期编辑:Ruby在窗口上也慢了3倍。这会影响你的意愿一直在进行你的测试并伤害你的TDD反馈周期]

7

应该无所谓,无论你最舒服。我已经完成了所有三个。

我认为Windows有点不舒服,因为不是基于Unix的,CLI有点笨拙。

(但如果你使用像NetBeans的一个工具,你不是真的甚至不需要CLI多)

+0

我建议所有windows用户在安装机器后首先安装Cygwin。给你一个每个人都熟悉的优秀shell(bash)和你习惯的所有实用程序。 – Trey 2009-04-30 00:26:34

+0

当我说Windows CLI时,我包含了cygwin,但cygwin是一个真正的Unix CLI的糟糕替代品。一切似乎都有点笨拙/破碎/关闭 - 并非如此,只是令人讨厌而已。有时候我很想将DSL安装为Windows服务,只需要SSH就可以执行命令行工作。 – 2009-04-30 17:12:20

0

不要紧,如果你是一个纯粹的那么你的开发环境应尽可能与您的生产环境尽可能与操作系统和Ruby和Rails版本有关。但真的没什么关系。

3

Ruby on Rails适用于所有平台,但工具支持各不相同。例如,TextMate是Rubyists中最受欢迎的编辑器,它仅限于Mac。您将能够在TextMate中找到许多有用的工具来处理RoR,因此最好在Mac上进行RoR开发。

我自己使用Mac和Linux。

1

由于所有gem在这些系统上都可用/可编译,所以基于Unix的系统将为您提供一条不受阻力的路径,这在Windows机器上并不容易。在Windows上这不是不可能的,但是你会花更多的时间让它工作,而不是在某些情况下工作。

在这些Unix系统中,我的首选是Mac,它具有所有的Unix功能以及Linux系统中可能缺乏的所有接口细节,当然,如果没有我的每日剂量的TextMate ,所以Mac就是这样。

0

一些宝石可以在Mac上使用,但并不是某些Linux版本(例如gitjour,当我上次尝试使用时)。

使用Mac可能是好还是坏,取决于您是否想知道您开发的任何软件都可以在任何其他操作系统上使用。

4

我建议不要在开发应用程序时使用Windows,而这些应用程序稍后会部署在Linux系统上。如果你正在开发一个应用程序来练习,Windows就没问题。

问题是,如果你瞄准的是linux,那么你需要在你的开发机器上有一个完整的堆栈:一个web服务器,一个dbms,或许memcached等等。虽然可以加载所有(我已经完成了),它将比在Linux机器上花费更长的时间,速度会更慢,并且在出现问题时寻找帮助会更困难。

此外,您可以在Windows上运行gem和插件支持问题。例如\代替目录路径和其他怪异。虽然rubyists会尝试提供帮助,但是由于大多数RoR工作是在Mac或Linux机器上完成的,因此Windows支持有时会受到限制。 例如,Capistrano在Windows上运行时遇到问题(它们现在可能已经修复)。

作为替代,您可以使用Windows作为您的台式机,但使用的是Linux作为开发服务器上运行的应用程序。任何旧电脑将运行Linux就好了。使用samba远程访问和编辑Windows机器上的文件。 linux机器不需要显示器,你只能远程使用它。

只要改变你的应用程序的config /环境/ development.rb包括

config.action_controller.consider_all_requests_local = true 

因此您可以在Windows计算机上运行,​​从看到你的浏览器堆栈跟踪。

问候,

拉里

0

我已经在OSX和Linux(Ubuntu)上做了轻轨开发,我发现差别几乎不可察觉的红宝石和钢轨...显然,两个操作系统的桌面环境差别很大)。如其他人所说,大多数ruby/rails教程,宝石,插件等都是面向Unix类型的系统,所以我认为可能会有一些恼人的打嗝尝试在Windows中进行ruby/rails开发,除非当然你使用IronRuby。:-)

低麻烦替代设立了Rails开发Unix环境是运行的一个更容易使用的Linux发行版,如Ubuntu或Fedora虚拟化软件,例如像VMWare,VirtualBox的,下的VirtualPC等

0

我同意以前的许多帖子,Windows上的Rails可能是一个问题。简单来说,很多开发Rails的人使用Mac或Linux,结果找不到Windows错误,这对插件来说尤其是问题。

Rails的一个问题是IDE。 Mac上的TextMate似乎是一种流行的选择,但Linux和Windows选项相当分散。通常我不会担心这一点,但是我发现当你有IDE支持时,Rails变得更容易管理。总的来说,有很多文件位于相当复杂的目录结构中,因此使用IDE可以轻松找到您要查找的文件,这是一个非常棒的生产力提升。

你可能要考虑的另一件事是你的部署环境是什么样子。例如,人们可能会在Linux服务器上部署Rails应用程序。在这种情况下,您可以通过在OS X上开发来避开bug,但不幸的是,当您部署新软件时,这些bug会出现。这是你想要调试代码的最后一个地方。当然,你应该首先在一个临时环境中测试你的代码,但是人们经常跳过这一步。

0

虽然由于总是有破解窗户周围的事物,我的方式工作,而在Ruby中开发,我可以说,如果你有选择,使用Linux或Mac搜索的回答这个问题。从今天开始,我已经正式开始使用Ubuntu 9.04,原因如下:

1)不能做任何ssh的事情,比如使用Capistrano,vlad,为rubyforge创建宝石等等。你可以使用这些东西cygwin,但是使用cygwin和窗口为一切工作是一件非常痛苦的事情。

2)最后一根稻草是当试图在一个Rails应用程序中启动后台任务,只是意识到Windows不能分叉进程....甚至不打扰这个cygwin,只是切换到Ubuntu所以我不必继续解决这些问题。

的Ubuntu 9.0.4是非常热的,虽然,相当深刻的印象,因此它可能不会如此糟糕。

1

我在早期的Unix系统中于1981年开始了程序员的生活。我在1995年留下了一个纯粹的Unix人。然后发生了'事情'(企业所有权),Windows进入了我的生活。

所以在2007年我开始学习RoR的,纯粹的Windows。我部署在Joyent上,这是Solaris。我成功开发了两个在Windows上开发的大型应用程序,并部署在Solaris/Apache/Mongrel上,没有发生重大事件。

的仅限于Windows的问题,我永远记得的是,我不得不强迫文件系统的读取和写入二进制模式来解决一个“发展”与“部署”的问题。

老实说,我没有看到在Windows上开发和部署在Unix上的任何问题。但是我有一个广泛的Unix背景,如果我不知道Unix,我不确定这个故事会不会一样。

此外,我只会为我的业务构建RoR应用程序。我永远不需要构建任何其他RoR应用程序,我将永远不会开发任何插件,从不需要接管另一个项目,也不需要任何人INSIST我将某些东西包含在某些不适合我的Windows开发环境的东西中等等......

我会这么说:

如果你是负责开发一个Web应用程序给你的雇主,而雇主是基于Windows,这不应该考虑回报率作为平台妨碍你。该应用程序必须由第三方部署,除非您的雇主足够大,并且该项目足够重要,以便在Unix系统中保证。

所以如果你知道关于Unix的SQUAT,你可能需要一些帮助。如果你使用第三方Rails主机,请查看他们的支持论坛,确保有人愿意并能够通过任何部署/设置和维护问题与非Unix人员交谈。

我给你举个例子,在Joyent上,如果我想运行一个迁移,我必须通过他们的数据库界面,登录到数据库,然后'执行'一个命令。好了,我得到一个简单的text_field,我进入输入目的地为Unix外壳,这就是:

CD /用户/ MYHOME /网站/ mysite的& &耙分贝:迁移RAILS_ENV =生产

可能不如果我没有Unix背景,我很容易弄清楚。

1

从Ruby 1.9.2和Rails 3.2开始,Windows对自动测试和spork来说要慢很多(一个完整周期平均花费约15秒,而对于同一个项目,Linux只需几秒钟),但是我喜欢更好的gui以Git为中心的工具和功能(TortoiseGit,WinSCP)等等,因为我对Windows更加熟悉。我已经证实,我需要的基本功能是在两个平台上工作,所以我发现与速度相比,破损是一个较小的问题。