Rails 我们不应该排斥 Windows

poshboytl · 2012年01月27日 · 最后由 Kylelkh 回复于 2018年10月18日 · 15802 次阅读

Ruby on Rails 在 Windows 上跑起来很不爽这是一个事实... 这个事实从很多年前延续到现在... 我几年没有用 Windows 跑过 RoR 所以我已经不确定 windows 上的表现是进步还是退步了...

但是从各个 rails core team members 的言论来看他们是更加重视 Windows 平台了...

@rerouse also, Rails ABSOLUTELY runs on Windows. Windows support is a requirement for any new Rails feature.” -- yehuda

不管你承不承认:"Window is important, just like PHP.." :D

我希望有条件的朋友多帮忙回答一些 windows 上面特殊的问题,发布一些 windows 上搭建环境等容易遇到的问题。

如果你能帮助 windows 给 rails 或者一些 gem 打 patch... 那将是对中国社区更大的帮助...

绕过问题,并不是解决问题的最好办法..

Let's face it... and do it better... :)

windows 是一个更广阔的天空。但是由于其的特殊体系,也需要投入更多的精力。不过我觉得 Jruby 已经很好的解决了这个问题,是一个更适合 windows 平台的选择。 如果 rails 把 windows 也纳入需要照顾的范围,会让 rails 更加笨重,缓慢,不再敏捷。因为 windows 的理念就是这样,和 unix 完全不是一个风格的。

匿名 #4 2012年01月27日

最终都要工作在 unix 上,对依赖 unix 环境的东西推荐 unix 这是节约新手的时间,和排斥不排斥 windows 没有关系。在大家谈论 rvm 时自己却要去找 pik, 不是很没有意义吗。

一楼的回答很到位,win 是非 unix 架构,很多兼容起来确实成本很高。ror 正式环境也是 posix 系为主。所以花时间在 win 下面确实不值得。解决方案还是用 jruby 通过 jvm 来减少平台差异。或者主流的用 vbox 虚拟一个 ubuntu mini 或者 debian 或 arch,给个 512 的内存就可以跑的很欢。

#4 楼 @cless 如果新手不会类 unix 系统怎么办?让他先学 unix?

遇到问题才能解决,如果换一个方向,那只是回避了这个问题...

#5 楼 @bony @cngump 我倒是很期待 windows8... support posix... :)

匿名 #8 2012年01月27日

#6 楼 @poshboytl 为什么不能让他先学 unix? 这世界上有无数问题,你不换方向,你的一生能全部解决的了吗?将时间耗在没意义的问题上不值得,请寻找最简单/直接的解决方法。

#1 楼 @bony Rails 本来就已经纳入了 windows 的支持... “@rerouse also, Rails ABSOLUTELY runs on Windows. Windows support is a requirement for any new Rails feature.” -- yehuda 普通人要做的只是遇到问题,分享解决方案... 如果能打 patch,那当然是更好的....

如果连学习 linux 的基本都不会,这样的开发人员确实让人担心。就像前几天的环境调查,大部分是 mac,linux,可见主流用户的环境,所以既然做 ror 还是要主流点吧。同期待 win 8。自己作为看三个平台的老用户,linux 确实值得开发人员去了解和学习。

only 某平台我一直觉得是 windows 甚至是一些 mac os 的理念。

http://www.gnu.org/philosophy/ 我很喜欢 GNU 的哲学,这是一个态度和追求问题。

windows 最主要的问题是无法跑起生产环境来。

大部分常用 GEM 不会是很大问题,基本上 10 个有 7 个 windows 还是能跑起来。

有很多人质疑过 railsinstaller 这样的东西,我觉得 railsinstaller 挺好的,至少是抱着解决问题态度。

#8 楼 @cless 当然可以让他先学... 而事实上社区里(中国)不都是这么回答的? 先学 unix 只是会增加学习成本...

换方向意味着你放弃解决这个问题,这是可以的。因为有些问题你这辈子不需要解决,或暂时不需要解决。

根本问题就在于 windows 的问题需不需要解决,我觉得需要。 而事实上 core team 也在解决。他们并没有说不解决。 而普通的 windows 用户需要做的是帮助他们,这不是他们几个 core team members 自己的事情。任何一个 issues 的 report,任何一个 patch 都是积极的...

如果都绕开了,谁来提 issues,谁来打 patch?

#11 楼 @metal 我很赞同你的说法...这个问题上态度是很重要的...

其实 windows 的支持对我本人没有任何影响...我不在 windows 工作...但我仍然担心上面的支持和问题。 我希望在上面工作的人一起来解决问题。而不是简单的抱怨和说拜拜... 转变一些社区里的态度就是本帖要达到的一个目的...

匿名 #14 2012年01月27日

#12 楼 @poshboytl 我就是从 windows 开始学的,因此我感触较深,很多 windows 上的问题到了 unix 下不成问题,ruby china 没几个人用 windows, 你说的 core team 里也没几人用 windows 吧,能期望谁来给你答案?windows 上的 issue 是必要的吗?不会 unix 的想要开发 rails, 有几间公司会要人,这是必学的啊

#14 楼 @cless 必要还是不必要?这问题我们俩讨论讨论就算数了?最多得出结论对于你我不必要... 对于 windows 用户他就是必要的... 对啊..core team 的人不用 windows 他们都要去支持 windows...这态度还不够值得你我学习的?

如果他彻底说不支持了,我倒是安心了...

nodejs 的作者 Ryan Dahl 本人也不用 windows...但是你看到他对 windows 的态度了没?

btw 这句话就是他说的: “Window is important, just like PHP.“

匿名 #16 2012年01月27日

#15 楼 @poshboytl 所以说,你终究是希望一些不存在的 "解决问题者", 去解决 windows 上新手的问题?这里都没人用 windows, 你全心推广 windows 还好,但你自己都没在用了,你到底在呼吁谁来 support?

#16 楼 @cless 摘自我的原文: “我希望有条件的朋友多帮忙回答一些 windows 上面特殊的问题,发布一些 windows 上搭建环境等容易遇到的问题。”

这个人应该不是你我,但是我相信有: 至少我就看到过,我对 @metal在这一贴的回答就表示很好: http://ruby-china.org/topics/944

#16 楼 @cless

windows 用户一大把。问题是 ruby 和 rails 往往是很多人第二个工具,也许他经常在 windows 下开发,他可能因为 ruby 或者 rails 而装了双系统,如果每次用 ruby 或者 rails 都去切换系统,还是挺麻烦的。还有些公司用的员工管理系统都是 windows only 的。

在中国完全不用 windows 的用户非常少。

匿名 #19 2012年01月27日

#18 楼 @metal windows 用户一大把,双系统用户我就是其中一个,反正我是不愿意耗时间在 windows 上搞 rails, 你们愿意的话就继续吧

这个看站在什么角度去看 rails 的核心人员说这句话的意思是要 ROR 更多的支持 win dows 但问题其实不在这里,ROR 在 windows 下跑的其实没有什么问题,问题在于支持他的第三方上 比如以前的 Rspec /Cucumber,Cucumber 早先根本就不能支持在 Windows 上跑,Rspec 也是千难万难,并且受到限制,现在我不太清楚,不玩 Windows 了。 各种第三方也是对 windows 支持不佳。这才导致在 Windows 学习 ROR 的成本非常之高 所以让新手去学习 Windows 上的 ROR 是不明智的,因为有的东西根本就不能在 Windows 跑,会浪费大量的时间去解决这些问题,而 Linux 基本上不会有这个问题 Linux 的学习成本 其实很小,装个虚拟机,也就一天的问题,基本就能搞定。

如果有一定的能力后,去为 Windows 上的 ROR 做些贡献是没有问题的,但是还在学习的阶段,去从 Windows 入手是不明智的,所以我不建议新手去搞。

在 windows 上搞这些,最大的可能性就是花个十天半个月,然后发现这根本行不通,然后还是只能装个 Linux

还是让尘归尘,土归土吧

以前我在一个公司工作,公司里面水平最高的 Rails 程序员用的是 Dell 的笔记本,一直在 Windows 下面开发 Rails 应用,问及原因是他晚上回家要用这个电脑玩 wow,并且懒得用双系统,懒得切换... 所以我对能坚持一直用 windows 的 Rails 程序员表示敬意!

不是排斥,用习惯 linux,再用 win 不习惯

同意楼主,遇到问题解决问题而不是回避问题。 像我,虽然家里用 Mac,但是单位只能用 Windows, 那我也喜欢用 Ruby,谁让咱喜欢她呢。ruby 在 windows 下用 RubyInstaller 下安装很方便。主要就是有第三方的 gem,有可能需要编译,用 Devkit 能解决一大部分问题,还有一小部分 native gem 确实在 windows 下编译不了,那也没辙 :>

再举个例子,由于工作需要,需要在嵌入式系统的程序中嵌入一个脚本引擎,咱当然是想用 Ruby 了,但是系统是 Windows CE 5.0,6.0(搞过嵌入式的朋友应该知道),WinCE 系统的 API 比 Windows 裁剪掉了很多,所以移植起来费点事,但最后也是移植完成,交付使用。因为机器和系统是客户的,总不能让客户把系统也换了吧,换个嵌入式 linux,这根本就不现实嘛!有些事情是我们决定不了的。

所以说,一律让来社区提问者都用 linux 和 mac,同样也不现实。他们不能使用 Linux 也肯定有自己的原因。有条件能帮的就帮一下,不能帮就精神支持一下,这样咱们的 Ruby 社区才能慢慢发展起来。

#25 楼 @skandhas 很赞成你的说法... :) BTW: Ruby on WindowsCE... 太帅了.... :D 有空分享一些嵌入式 ruby 的经验啊...lol..

新手用 linux 2 天没把环境搞好,按照 http://ruby-china.org/wiki/install_ruby_guide

@qiukun 我 ubuntu 刚成功,写了个 wiki, 话说没显示出来,难道在审核嘛???? 你先看这个 按照 http://blog.sudobits.com/2011/10/27/how-to-install-ruby-on-rails-in-ubuntu-11-10/ 装完 rails 后 加上下面评论里的 gem install nodejs 就好了

windows 下慢死了,现在 windows 上没法用 ROR,这问题真的不是咱们能解决的 学学 Ruby 语言还行

为了 Ruby 我 mac 都买了,但是 Windows 还是离不开。深刻认同楼主的观点,有问题不能一概绕过。

简而言之,现在的 rails 不适合新手自学。

很多 GEM 需要编译...在 WIN 下这个是个难题

我们基本上都是在 Windows 上用 ROR 的,也许用的 gem 比较少或开发的系统功能比较单一?是碰到一些问题,但还能解决。日本的 ruby mailling 上也有很多人在 Windows 上用 ruby 开发啊。还有,目前在试用轻量 Ruby(mruby),最终和 C 结合编译,调试的开发环境也是 Windows 的。。

#34 楼 @asobuwjcat mruby 已经放出来了吗?记得 Matz 说的是今年 3 月份正式放出。

#26 楼 @poshboytl 当时我使用 Ruby1.9.2-p0 进行的移植。等 mruby 出来之后,在嵌入式下使用 ruby 应该就方便了。

@skandhas mruby 目前确实还没有正式放出,但是我们公司作为适用合作单位正在参与其中。

Windows 下弄个虚拟机,比如 VirtualBox,里面装 Linux,通过文件共享的方式做开发。 这样工作,生活,娱乐三不误,我们就是这样弄的,哈哈。

Windows 有这么大的用户群,不考虑实在是可惜。 如果 Ruby 能在 Windows 下完美运行,很多人会懒得去折腾 Linux 和 Mac,不要给我谈开源、自由... 我的很多朋友就是因为 ruby 太折腾而放弃转投 Python。 @huacnlee ruby.taobao.org 上建议添加 rubyinstaller、railsinstaller 的镜像或下载链接,我深圳电信 4M ADSL 从官方下载只有 50k,煎熬 ing...

#39 楼 @camel 我还是依然坚持不推荐在 Windows 下面搞 Ruby, 尤其是 Ruby on Rails。 所谓工欲善其事,必先利其器。 当然初期学习是可以的,但容易引出很多平台问题带来多余的麻烦。 我接下来回把 rubyinstall 放入淘宝镜像上面去。

从这个帖子就可以看出中国人对 windows 的依赖有多大。。而我现在对 windows 的最大依赖就是 qq。其他平台的 qq 实在太 SB 了。

我个人觉得还是用 Linux 工作 和学习,再装一个虚机来安装 win,在别无它法的情况下我才会用 windows,比如网银

#39 楼 @camel 已经加上去了。

#44 楼 @huacnlee 效率好高呀,不得不赞!!!

#40 楼 @huacnlee “工欲善其事,必先利其器。”说的非常有道理。 #39 楼 @camel 我在 Linux 上用 RubyOnRails 而不是 Windows,不是因为开源,和自由,而是在 Windows 上用 RubyOnRails 问题太多啦,而且很多问题难 google 到,研究成本太高,严重降低开发效率。

我个人感觉,RubyOnRails 的绝大部分用户都在 Mac 和 Linux 上,所以,网上的关于 RubyOnRails 的 Linux 上的各种问题的解决和文章特别的多,所以使用 Mac 和 Linux 可以得到更多的帮助。

所以这很矛盾,国内的 RubyOnRails 新人主要都使用 Windows,而关于 Windows 的资料却是最少的。 Windows 上的新人真难啊,继续努力,不要放弃,想办法换成 Linux 吧。 Ruby On Rails In Linux 才是正道,而且不沧桑!

今天在 WIN 下跑项目,一会直接崩溃,我还以为程序问题,就把项目拿回家,在 OSX 下试,结果没任何问题....NND

几个个人观点,供参考:

  1. windows 不应该被歧视,同意楼主
  2. ruby 程序员很多时候仅仅是 rails 程序员,所以猜测这可能是 windows 上 ruby 开发不繁荣的原因
  3. 我自己通常通过 jruby 来统一 windows 和 linux 上的 ruby 开发环境
  4. 对于 server 端开发,linux 是必须的技能,要告诉不会 linux 的初学者,ruby 社区的特点(或者说优点)不是消极逃避,而是主动学习,然后积极的“偷懒”

考虑下 vagrant, 我觉得它可以在相当程度上屏蔽掉 rails 团队里不同开发环境的问题。

这点可能比想象的要麻烦,rails 并不仅仅只是依赖于 ruby,更多的是依赖于开源环境,本人是被破于 windows 转向 linux,但对于在 windows 上开发 ruby 一点都不看好

我前几天要在 windows 下打包程序,想用写一些 批处理文件 (.bat) 来处理一些事情 结果发现 windows 现在连 deltree(删除目录)这个命令也没有。

大家不要和我说 cygwin, mingw, powershell 这些;这些我都知道,前两个还以前常用,我只是想说 Windows 是有多么的对程序员不友好。

@hysios @huacnlee

晚上去苹果店转悠了一下,13 寸的看不上,15 寸的看了价格咽口水,还是先 windows 吧。

@piginzoo ubuntu 下 ruby rails 都挺好的 我自己专职做 Ruby,还是 MBP。

匿名 #54 2012年03月07日

我以为,Ruby 要想发展壮大,必须重视市场份额最大的 Windows 平台

生产环境我们自然是用 Linux,但开发呢?如果可以完美运行于 Windows 平台,一则可以大量接纳新人进入社区,二则也方便我们开发人员进行开发,毕竟我们有很多时候还是需要使用 Windows 的

像我们这种高傲地坚持只支持 Unix/Linux 的想法,无异于一个 Java 开发者放着高生产率的 Eclipse 不用而非得死守 Vim

PS:我是 Vim 党,也熟悉 Linux,但现在在学习 Ruby 的同时也在整 Win32,像我这种情况就不可能脱离 Windows,希望 Ruby 社区能更加重视 Windows 这个平台

#54 楼 @ruchee Ruby 社区的包容性一直是很强的,虽然推荐使用 Mac 或是 Linux 开发,但是如果有人提出 windows 相关的开发问题,社区也会热心的回答。

#23 楼 @lgn21st - -其实双系统还是可以的,我现在也是 win7+ubuntu11.1064

#55 楼 @skandhas 哈哈,这不叫包容,是他本身这方面没做好。如果还不许人提,也太不像话了。

#57 楼 @hhuai 不许人提有啥稀奇,nginx 作者就对 windows 有很强的排斥性

#57 楼 @hhuai 呵呵~ 作为一门流行语言(指 Ruby,不是 Rails)而言,对 windows 的平台的支持与其他语言相比,Ruby 还需要继续加油:> @fsword 如果是具体某个作品的话,那就看作者本人的意愿了 :>,Redis 的作者也是不太支持 windows。

Ruby 的世界里不仅包括 Rails 和 Web 的话题~,还有其他很有意思的东东~ :>

#58 楼 @fsword 呵呵,不同范畴了啦,nginx 专对服务器。因为 ruby 一个很重要的特性是跨平台,如果在 windows 下跨不好,别人肯定发问。比如迅雷,office,qq 等也不会重视什么非 win 版本。

#60 楼 @hhuai ruby 很重要的特性是跨平台?恐怕 matz 先生不是这么想的吧,不是所有的虚拟机都是为了跨 os 而发明的

#61 楼 @fsword ruby 在 windows 下没有任何问题啊,有问题的是一些第三方 gem

我想 Rails way 应该是不把精力主要放在 window 上

convention over configuration, 开发者们使用 unix/linux 平台已经是一种惯例,如果显式的不支持 windows,可以强迫更多的开发者使用更好的操作系统。

公司强迫要求在 windows 下进行 ruby 开发和部署?不知道这是什么样的公司,开发热塑膜 windows 桌面软件?那么用 ruby 干嘛呢。。

我记得以前学 Lisp 的时候(被 Paul Graham 洗脑)使用 windows 也是一大痛苦。后来就强迫自己学用 Linux。其实倒不是 Unix 本身难学,而是杂七杂八的琐事要花时间去摸清(安装软件,等等)

后来 Lisp 的社区也是为了让初学者更容易上手,做出了个 Lisp In A Box,就是省了安装配置的麻烦。

现在虚拟技术好多了,可以用 vagrant 把整个 Rails/Linux/mySQL 配置环境打个包。对用户来说就是个黑盒子,也不用去想它是 windows 还是 Unix

讨论好激烈,个人感觉 @poshboytl 本意在于用 Win 玩 Rails 的朋友可以多分享自己的经验,帮助更多在 Win 下做 Rails 开发的朋友,而不在于平台的选择,平台本身没有问题,只是 Unix 系对 Rails 的兼容性会好点,目前来说是事实。Win 本身跑 Rails 也是没有问题的,只是有时候会有些诡异的问题,但还是能解的。

#58 楼 @fsword 很少有人在自己机器上装 nginx 吧 (我周围是没有),一般都是内网搞一台 web server 用来做部署,所以 nginx 排斥 windows 对大多数程序员没有影响。 rails 情况是不一样的,我们需要在本地做开发。

在 Windows 服务器上跑 RoR 本来就是本末倒置,为什么不用自己家的.net 呢,开发也很快捷方便,还有强大的 IDE 环境;RoR 更适合在类 UNIX 系统上跑的,既然早晚要在 UNIX/Linux 部署,为什么还非要在 Windows 下开发呢,是不是开发的时候还得兼顾作图?兼顾游戏?

希望 homebrew 能在 windows 下跑起来!

有套老的基于 2.3 的代码,我一直用 windows 对它进行开发

自私一点地说,做 Ruby/Rails 开发必需学习 Linux/Unix,就像开发 iOS 必需要用 Mac 和 iPhone 和每年 99 美金(不知有没有记错)的开发者帐号,这叫什么?门槛!

有一定门槛才能使整个生态系统更健康发展,对比一下 iOS 和 Android,再看看遍地 Java 程序员鱼龙混杂

想问下 win7 用 eclipse3.7 为什么装不上 RDT?

Ruby 最大的问题是 Rails 太出名了。。。就像我,并不对开发 Web 应用有多大兴趣,而只是喜欢 Ruby 这个语言本身;平时工作时也会写一点儿 Ruby 来帮忙(受到 Everyday scripting with Ruby 的影响),也并不会像 Web 开发那样安装很多 Gem。对我来说,至少作为脚本语言的,这部分能做到 Windows、Linux 和 Mac OS 下几乎一样就可以了。

ery 新人千万不要在 Windows 上使用 Ruby on Rails 提及了此话题。 06月08日 15:20
piginzoo 回复

好像知道你现在呢,15 寸到手了咩😀 😀 😀

需要 登录 后方可回复, 如果你还没有账号请 注册新账号