开发者

Why would a company decide to develop in Ruby on Linux and not on Windows? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. 开发者_运维技巧 Closed 9 years ago.

I would like to know if anyone meet a similar situation.

What are the reasons for a company to decide that you must develop using Linux environment (virtual machine) and not Windows environment?

Here there's no workstations with Linux at all - all computers have Windows installed. There's one production Linux server.

Is it possible to develop ruby in Windows and deploy your application on Linux?

What would be the advantages of not using Windows just for development? Is it just better performance?

thank you


I would think the main advantage is that your development environment is similar to your target deployment environment, so when you finally deploy, you hopefully have fewer issues related to a different environment. This might be more relevant for desktop apps than for server-based web apps, though in both cases you'd have to make sure your dependencies (UI widgets or server process) are available and similar enough on both platforms.

Other advantages? Developing on Linux is probably cheaper. Can't say the performance is always going to be better though.


Apart from the obvious reason, possible problems with compatibility of certain gems, database servers etc., there is another, perhaps more subtle one:

There is a cultural difference between Windows folks and *nix folks, reflected in many ways, from the way we perform everyday tasks (such as searching for files on disk, or searching for a string in files), the way we set up and administer the system, to what do we picture when someone mentions "an application".

Ruby comes from the second camp, and while it runs perfectly on Windows as well, it somehow reflects the world it's been born and maintained within. A banal example would be irb. To someone used to a command line interface, irb is absolutely natural and comfortable tool. Command line does exist in Windows world as well, but it's really pretty hidden and usually the interface for the last resort. Whole set of Perl-isms was borrowed by Ruby, and Perl was created as a Unix scripting language.

So, in my opinion, picking Linux as a development platform could make you a better Ruby programmer, simply by forcing you to adopt the cultural guidelines of *nix world.


My work environment uses Linux too. We develop mostly in Java, but it's a similar story.

The company's Windows laptops are severely hobbled by anti-virus software (which is very necessary, as in a large company any security hole will eventually be exploited by viruses inadvertently dragged into the company).

Our Linux boxes are locked down to the extent that we can't do major configuration changes, but no virus scanner/intrusion detector is necessary. Relative to the company standard, our Linux machines are a joy to work with! Our memory and CPU are mostly available for the tasks at hand.

This setup has also proven easier and cheaper for our admins to manage.


I have developed a substantial and complex web site with Ruby on Rails using Windows for development and two different flavors of Linux for production. There were a couple of hiccups related to libraries that must be compiled, like ImageMagick.

When I got a new laptop that came with Vista, I was unable to get MySQL to run on it, and I switched to using Linux inside VirtualBox. While I doubt that I will ever be converted to the Linux user experience, I did find that it was somewhat easier to get all of the components working together properly on Linux. Now, I do almost all of my dev work inside VirtualBox, as it allows me to keep all of my client work compartmentalized, and I am easily able to spin up new development environments that have specific requirements that might not play well with my preferred desktop setup.

So, yeah, it can be done, but don't disregard the potential of working inside VirtualBox. It's a wonderful environment.


What are the reasons for a company to decide that you must develop using Linux environment (virtual machine) and not Windows environment?

  1. Other than some technical issue i think windows need license and Linux doesn't
  2. Mostly Ruby is used by small companies so using linux benificial for them

Is it possible to develop ruby in Windows and deploy your application on Linux?

YES. But it is good practise to have a same Development & Production enviorment

What would be the advantages of not using Windows just for development? Is it just better performance?

Most of the Servers run on Linux and it's always good to have a same Development & Production enviorment


As others have noted, there's a big advantage in having your deployment and development environments be at least reasonably similar.

I have to disagree with those who have said that compatibility is not a big deal. We have a pretty big site and use a lot of gems, and we've run into problems with the sole Windows-based developer on the team. There are certain gems he just can't use properly or at all (e.g. json, gitjour, mechanize, hpricot), which means there are features to which he can't contribute. We've encountered zero platform differences between Mac OS X and Linux.

The fact of the matter is that Windows is a distinctly second-class platform in the Ruby and especially the Rails world. You can do it, but I wouldn't recommend it.


It is certainly possible to develop Ruby on windows that is deployable to Linux.

There may be some difference with Gems if they were written in low level C, but this is pretty rare.


reformat a harddisk and install ubuntu, boot from a flash disk, run as a vm through virtual box or the like, there are many ways to run linux in your situation, and it will be an easier development solution for you. its always better to develop in the os environment you plan to deploy on. also, you could check out jruby. if you still decide to develop on windows, checkout

  1. help.github.com for how to install git and cygwin on windows

  2. ruby-lang.org to install ruby for windows

  3. and rubygems.org to install rubygems for windows

heh, the last best reason: a terminal shell in linux isn't limited to 80 columns wide ;)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜