ruby开发环境

在a)windows b)linux或c)mac中开发ruby是否更好? 为什么?

编辑:

我之所以这样问是因为我听说在windows中使用ruby在轨道上使用ruby时,在windows中开发ruby并不是那么稳定/好。 (不确定,如果这是真的)。

此外,David Heinemeier Hansson(Ruby on Rails的创建者)似乎正在使用Mac,因此最初的印象似乎是Ruby on Rails应用程序,而Mac则很好地融合在一起。

我强烈建议你不要在Windows上开发。 为什么? 首先,每次升级都会在Windows上出现很多问题,而且大多数gem或插件创建者都不使用windows,所以他们不关心windows并且不对它进行测试(有几个大牌)平坦的人说窗户不是他们的问题,这是你的问题)。 你会发现* nix vs Windows问题会一次又一次地咬你。 路径名斜线,ssh实现中的细微差别,控制台和字体问题,rubygems,capistrano等等……

一段时间后最终会发生什么事情,每次你必须调试“这只是在Windows上有问题吗?”时,你总是会在脑后发出这种声音。 而那个小小的声音对你来说是一种代价……每天都会用掉一些电池。

对于前期美元而言,Mac的价格更高(遗憾的是我没有),并且Linux平台花费一两天的时间来试图让你的无线网络工作更昂贵,但这些都是前期一次性成本。 使用Windows for Rails开发的唠叨不安全是一项持续的成本。 至少在社区开始拒绝那些并非真正跨平台的事情之前。

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

每次你提出一个窗户问题时,你也会觉得那个在电梯里放屁的人。

我说这一切都是为了那些必须在他的开发平台上使用windows的人。 嘿,那味道是什么?

[后期编辑:Ruby在Windows上也慢了3倍。 这将影响您的意愿始终进行测试并损害您的TDD反馈周期]

无论你最舒服,都无所谓。 我已经完成了这三项工作。

我认为Windows有点不舒服,因为它不是基于unix的,CLI更笨重。

(但是如果你使用像NetBeans这样的工具,你甚至都不需要CLI了)

我建议在开发一个稍后将部署在linux系统上的应用程序时不要使用Windows。 如果你正在开发一个应用程序进行练习,Windows就可以了。

问题是,如果你的目标是linux,那么你需要在你的开发机器上拥有一个完整的堆栈:一个web服务器,一个dbms,也许是memcached等等。虽然可以将所有这些加载到windows上(我已经完成了它),它将比在Linux机器上花费更长的时间,速度会更慢,并且当某些东西不起作用时,你将更难找到帮助。

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

作为替代方案 ,您可以使用Windows作为桌面计算机,但使用Linux计算机作为运行应用程序的开发服务器。 任何旧电脑都可以运行linux。 使用samba从Windows机器远程访问和编辑文件。 linux机器不需要显示器,你只能远程使用它。

只需将应用程序的config / environments / development.rb更改为include即可

config.action_controller.consider_all_requests_local = true 

因此,您可以在Windows计算机上查看浏览器中的堆栈跟踪。

问候,

拉里

Ruby on Rails在所有平台上运行良好,但工具支持各不相同。 例如,TextMate是Rubyists中最喜欢的编辑器,它只是Mac。 您将能够在TextMate中找到许多有助于使用RoR的有用工具,因此最好在Mac上进行RoR开发。

我自己使用Mac和Linux。

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

在那些Unix系统中,我首选的是Mac,它拥有所有的Unixfunction以及你的linux系统所缺少的所有界面细节,当然我没有没有我每天服用的TextMate,所以Mac它是。

1981年,我在早期的Unix系统上开始担任程序员。 到1995年我一直是一个纯粹的Unix人。然后’东西’发生了,(企业所有权),Windows进入了我的生活。

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

我记得的唯一Windows问题是我必须强制将文件系统读取和写入二进制模式来修复“开发”与“部署”问题。

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

另外,我只会处理我为自己的业务构建的RoR应用程序。 我永远不需要构建任何其他RoR应用程序,我永远不会开发任何插件,永远不必接管另一个项目,从来没有任何人INSIST我包含的东西只能用于我的Windows开发环境不能正常工作的东西等等……

我会这样说:

如果您负责为您的雇主开发Web应用程序,并且该雇主是基于Windows的,则不应该阻止您将RoR视为平台。 该应用程序必须由第三方部署,除非您的雇主足够大并且该项目足够重要以保证内部Unix系统。

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

我将在Joyent上给你一个例子,如果我想运行迁移,我必须完成他们的数据库GUI,登录数据库,然后’执行’命令。 好的,所以我得到一个简单的text_field,输入目的地为Unix shell的输入,即:

cd / user / myhome / sites / mysite && rake db:migrate RAILS_ENV = production

如果我没有Unix背景,那可能就不那么容易理解了。

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

无所谓,如果你是一个纯粹主义者,那么你的开发环境应该尽可能地与你的生产环境相匹配,关于操作系统和Ruby和Rails的版本。 但实际上它并不重要。

有些gem可以在Mac上运行,但不适用于某些Linux版本(例如我上次试用时的gitjour)。

使用Mac可能有好有坏,这取决于您是否想知道您开发的任何内容都可以在任何其他操作系统上运行。

我已经在OSX和Linux(Ubuntu)上完成了轻轨开发,我发现差异几乎察觉不到(就ruby和rails而言……显然桌面环境在两个操作系统之间有很大不同)。

正如其他人所说的,大多数ruby / rails教程,gem,插件等都面向Unix类型的系统,所以我认为可能会有一些烦人的小问题试图在Windows中进行ruby / rails开发,除非你当然是使用IronRuby。 🙂

为Rails开发设置Unix环境的一个低麻烦的替代方案是运行一个更易于使用的Linux发行版,如VMWare,VirtualBox,VirtualPC等虚拟化软件下的Ubuntu或Fedora。

我同意许多以前的post,Windows上的Rails可能是一个问题。 很多人为Rails开发的情况都是在Mac或Linux上,因此找不到Windows错误,这对插件来说尤其如此。

Rails的一个问题是IDE。 Mac上的TextMate似乎是一个受欢迎的选择,但Linux和Windows选项相当分散。 通常我不担心这个,但我发现当你有IDE支持时,Rails变得更易于管理。 一般来说,有很多文件位于相当复杂的目录结构中,所以有一个IDE可以让你轻松找到你想要的文件,这是一个非常好的生产力提升。

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

在寻找这个问题的答案时,由于在使用Ruby进行开发时总是不得不破解我的工作方式,我可以说如果你有选择,可以使用Linux或Mac。 我已经正式开始使用Ubuntu 9.04,这就是为什么:

1)不能做任何ssh之类的东西,比如使用Capistrano,vlad,为rubyforge创建gem等等。你可以使用cygwin做这些事情,但是使用cygwin和windows工作的一切都是如此痛苦。

2)最后一根稻草是试图在rails应用程序中启动后台任务时才意识到windows无法进行fork进程….甚至没有为cygwin打扰这个,只是切换到Ubuntu所以我不喜欢我必须继续解决这些问题。

Ubuntu 9.0.4非常热门,但印象非常深刻,所以它可能并不那么糟糕。