Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么一家公司决定在Linux而不是Windows上使用Ruby进行开发?_Ruby_Linux_Windows - Fatal编程技术网

为什么一家公司决定在Linux而不是Windows上使用Ruby进行开发?

为什么一家公司决定在Linux而不是Windows上使用Ruby进行开发?,ruby,linux,windows,Ruby,Linux,Windows,我想知道是否有人遇到类似的情况 公司决定必须使用Linux环境虚拟机而不是Windows环境进行开发的原因是什么 这里根本没有安装Linux的工作站——所有计算机都安装了Windows。有一个生产Linux服务器 可以在Windows中开发ruby并在Linux上部署应用程序吗 不只是为了开发而使用Windows有什么好处?这只是更好的表现吗 谢谢我认为主要的优势在于您的开发环境与您的目标部署环境相似,因此当您最终部署时,希望与不同环境相关的问题更少。这可能比基于服务器的web应用更适合桌面应用

我想知道是否有人遇到类似的情况

公司决定必须使用Linux环境虚拟机而不是Windows环境进行开发的原因是什么

这里根本没有安装Linux的工作站——所有计算机都安装了Windows。有一个生产Linux服务器

可以在Windows中开发ruby并在Linux上部署应用程序吗

不只是为了开发而使用Windows有什么好处?这只是更好的表现吗


谢谢

我认为主要的优势在于您的开发环境与您的目标部署环境相似,因此当您最终部署时,希望与不同环境相关的问题更少。这可能比基于服务器的web应用更适合桌面应用,尽管在这两种情况下,您必须确保您的依赖项UI小部件或服务器进程在两种平台上都可用且足够相似


其他优势?在Linux上开发可能更便宜。但是,不能说性能总是会更好。

开发可部署到Linux的Ruby on windows当然是可能的

如果Gems是用低级C编写的,那么它们可能会有一些不同,但这是非常罕见的

公司决定必须使用Linux环境虚拟机而不是Windows环境进行开发的原因是什么

除了一些技术问题,我认为windows需要许可证,而Linux不需要 大多数情况下,小公司都使用Ruby,因此使用linux对他们来说是有益的 可以在Windows中开发ruby并在Linux上部署应用程序吗

对。但拥有相同的开发和生产环境是很好的做法

不只是为了开发而使用Windows有什么好处?这只是更好的表现吗


大多数服务器都运行在Linux上,有一个相同的开发和生产环境总是很好的

我已经开发了一个庞大而复杂的网站,其中Ruby on Rails使用Windows进行开发,Linux使用两种不同的风格进行生产。有几个与必须编译的库相关的问题,比如ImageMagick

当我得到一台Vista附带的新笔记本电脑时,我无法让MySQL在上面运行,于是我转而在VirtualBox中使用Linux。虽然我怀疑自己是否会被转换为Linux用户体验,但我确实发现让所有组件在Linux上正常工作稍微容易一些。现在,我在VirtualBox中完成了几乎所有的开发工作,因为它允许我将所有客户机工作划分开来,并且我可以轻松地创建新的开发环境,这些环境具有特定的要求,可能无法很好地与我首选的桌面设置配合


所以,是的,这是可以做到的,但不要忽视在VirtualBox中工作的潜力。这是一个很棒的环境。

我的工作环境也使用Linux。我们主要用Java开发,但情况与此类似

该公司的Windows笔记本电脑受到非常必要的反病毒软件的严重阻碍,因为在大公司中,任何安全漏洞最终都会被无意中拖入该公司的病毒所利用

我们的Linux机箱被锁定到无法进行重大配置更改的程度,但不需要病毒扫描程序/入侵检测器。与公司标准相比,我们的Linux机器是一种工作乐趣!我们的内存和CPU主要用于手头的任务


这种设置对于我们的管理员来说也更容易、更便宜。

除了显而易见的原因,某些gem、数据库服务器等的兼容性可能存在问题外,还有一个可能更微妙的原因:

Windows用户和*nix用户之间存在文化差异,从我们执行日常任务(如搜索磁盘上的文件或搜索文件中的字符串)的方式、我们设置和管理系统的方式,到有人提到应用程序时我们会描述什么,这在很多方面都有反映

Ruby来自第二个阵营,虽然它在Windows上也能完美运行,但它在某种程度上反映了它诞生和维护的世界。一个平庸的例子就是irb。对于习惯命令行界面的人来说,irb是绝对自然和舒适的工具。命令行也存在于Windows世界中,但它确实非常隐蔽,通常是最后的界面。整套Perl ISM是Ruby借用的,Perl是作为Unix脚本语言创建的


因此,在我看来,选择Linux作为开发平台可以让您成为一名更好的Ruby程序员,只需强迫您采用*nix world的文化准则。

正如其他人所指出的,部署和开发有很大的优势 环境至少应该相当相似

我不同意那些说兼容性不是什么大问题的人。我们有一个相当大的网站,使用了大量的gem,我们遇到了团队中唯一一个基于Windows的开发人员的问题。有一些他无法正确使用或根本无法使用的宝石,例如json、gitjour、mechanize、hpricot,这意味着有些特性他无法贡献。我们发现Mac OS X和Linux之间没有平台差异


事实上,Windows在Ruby尤其是Rails世界中是一个明显的二级平台。你可以这样做,但我不建议你这么做。

重新格式化硬盘,安装ubuntu,从闪存启动,通过虚拟机或类似的方式运行,在你的情况下,有很多方法可以运行linux,这将是一个更简单的开发解决方案。在您计划部署的操作系统环境中开发总是更好的。此外,您还可以查看jruby。如果您仍然决定在windows上开发,请签出

help.github.com了解如何安装 windows上的git和cygwin

ruby-lang.org安装ruby for 窗户

和rubygems.org安装rubygems 窗户
呵呵,最后一个最好的理由是:linux中的终端外壳不限于80列宽

+1在生产目标相同的平台上开发是避免许多跨平台环境问题的简单方法。+1我不知道Ruby,但很多时候是文件系统路径分隔符,当程序员使用不同于目标平台的平台时,区分大小写和行尾的差异可能会令人讨厌。关于MySQL with Vista,我也有一个类似的问题——这个答案。Ruby是为UNIX设计的。引用Ruby常见问题解答:Ruby是为了利用Unix环境的丰富功能集而编写的。不幸的是,Windows缺少一些函数,而其他函数的实现方式不同。