Вопрос

лучше ли разрабатывать ruby on rails в a) Windows, b) linux или c) Mac?почему ?

отредактированный :

причина, по которой я спрашиваю об этом, заключается в том, что я слышал, что разработка ruby on rails в Windows не так стабильна / хороша по сравнению с использованием ruby on rails в Mac.(хотя и не уверен, правда это или нет).

плюс тот факт, что Дэвид Хайнемайер Ханссон (создатель Ruby on Rails), похоже, использует Mac, поэтому поначалу кажется, что приложения Ruby on Rails и Mac хорошо сочетаются.

Это было полезно?

Решение

Я настоятельно советую вам не разрабатывать под Windows.Почему?Во-первых, есть много вещей, которые ломаются в Windows при каждом обновлении, и большинство создателей gem или плагинов не используют Windows, поэтому они не заботятся о Windows и не запускают на ней тесты (есть несколько известных людей, которые категорически заявили, что Windows - это НЕ их проблема, а ваша).Вы обнаружите, что проблемы с * nix vs Windows будут преследовать вас снова и снова.Косые черты в именах путей, незначительные различия в реализациях ssh, проблемы с консолью и шрифтами, rubygems, capistrano и т.д...

Что в конечном итоге произойдет через некоторое время, так это то, что каждый раз, когда вам придется что-то отлаживать, у вас в голове всегда будет звучать этот голос, говорящий: "Это проблема только в Windows?" и этот тихий голосок обходится вам дорого ... каждый божий день вы расходуете часть своей батареи.

Компьютеры Mac стоят дороже в пересчете на авансовые платежи (которых, к сожалению, у меня нет), а платформы Linux стоят дороже с точки зрения затрат дня или двух на то, чтобы заставить вашу беспроводную сеть работать, но это единовременные авансовые расходы.Острая небезопасность использования Windows для разработки Rails - это постоянные издержки.По крайней мере, до тех пор, пока сообщество не начнет отвергать вещи, которые на самом деле не являются кроссплатформенными.

В качестве примера возьмем огурец.По какой-то причине тестовая платформа зависит от конкретной конфигурации консоли, недоступной в Windows.Поэтому, чтобы использовать его в Windows, вам нужно изменить шрифт в вашей консоли и изменить кодовую страницу в вашей консоли.В противном случае буква "а" исчезнет из всех выходных данных.Почему?Потому что это прекрасно работает для систем * nix и дает вам красивые цвета (я думаю, что это огромный недостаток и очень-очень неудачный выбор дизайна, даже если вы игнорируете Windows).

Вы также будете чувствовать себя как парень, который пукнул в лифте каждый раз, когда поднимете тему Windows.

Я говорю все это как человек, которому в данный момент приходится использовать Windows в качестве своей платформы разработки.Эй, что это за запах?

[поздняя правка:Ruby также работает примерно в 3 раза медленнее в Windows.Это повлияет на вашу готовность постоянно проводить тесты и нарушит цикл обратной связи TDD]

Другие советы

Не должно иметь значения, что бы вам ни нравилось больше всего.Я сделал все три.

Я полагаю, что Windows немного неудобна из-за того, что не основана на unix, CLI немного более неуклюжий.

(Но если вы используете такой инструмент, как NetBeans, на самом деле вам даже не очень нужен CLI)

Я не рекомендую использовать Windows при разработке приложения, которое позже будет развернуто в системе Linux.Если вы разрабатываете приложение для практики, Windows подойдет.

Проблема в том, что если вы нацелены на linux, то вам захочется иметь полный стек на вашей машине разработки:веб-сервер, СУБД, возможно, memcached и т.д.Хотя все это можно загрузить в Windows (я это сделал), это займет больше времени, чем на компьютере с Linux, будет медленнее, и вам будет сложнее найти помощь, когда что-то не сработает.

Кроме того, вы можете столкнуться с проблемами поддержки gem и плагинов в Windows.Например, \ вместо / для путей к каталогам и других странностей.Хотя разработчики ruby постараются быть полезными, поддержка Windows иногда ограничена, поскольку большая часть RoR-работы выполняется на компьютерах Mac или Linux.Например, у Capistrano были проблемы с запуском в Windows (возможно, теперь они исправлены).

В качестве альтернативы, вы можете использовать Windows в качестве настольного компьютера, но в качестве сервера разработки для запуска приложения используйте компьютер с Linux.Любой старый компьютер будет работать под управлением Linux просто отлично.Используйте samba для удаленного доступа к файлам и редактирования с вашего компьютера под управлением Windows.Компьютеру с Linux не нужен дисплей, вы будете использовать его только удаленно.

Просто измените конфигурацию вашего приложения / environments/development.rb, чтобы включить

config.action_controller.consider_all_requests_local = true

таким образом, вы можете видеть трассировки стека из вашего браузера, работающего на вашем компьютере с Windows.

С уважением,

Ларри

Ruby on Rails хорошо работает на всех платформах, но поддержка инструментов различна.Например, TextMate - любимый редактор среди Rubyистов, и он доступен только для Mac.В TextMate вы сможете найти множество полезных инструментов для работы с RoR, поэтому, возможно, лучше всего заниматься разработкой RoR на Mac.

Я сам использую Mac и Linux.

Система на базе Unix предложит вам путь наименьшего сопротивления, поскольку все драгоценные камни доступны / компилируются в этих системах, что не так просто на компьютере с Windows.В Windows это не невозможно, но в некоторых случаях вы потратите больше времени на то, чтобы заставить его работать, а не на выполнение работы.

Из этих Unix-систем я предпочитаю Mac, в нем есть вся мощь Unix, а также все тонкости интерфейса, которых может не хватать вашей системе Linux, и, конечно, я не смог бы жить без своей ежедневной дозы TextMate, так что это Mac.

Я начал работать программистом в 1981 году в ранних системах Unix.Я оставался чистым сторонником Unix вплоть до 1995 года.Потом случилось "кое-что" (владение бизнесом), и Windows вошла в мою жизнь.

Итак, в 2007 году я начинаю изучать RoR, чистую Windows.Я развернулся на Joyent, который называется Solaris.Я успешно разработал два больших приложения, разработанных для Windows и развернутых на Solaris / Apache / Mongrel, без серьезных инцидентов.

Единственная проблема Windows, которую я когда-либо помню, заключается в том, что мне пришлось принудительно выполнять чтение и запись файловой системы в двоичном режиме, чтобы исправить "разработку" по сравнению спроблема с "развертыванием".

Честно говоря, я не вижу никаких проблем с разработкой в Windows и развертыванием в Unix.Но у меня был обширный опыт работы с Unix, и я не уверен, что история была бы такой же, если бы я не знал Unix.

Кроме того, я всегда буду работать только над приложениями RoR, которые создаю для своего бизнеса.Мне никогда не понадобится создавать какие-либо другие приложения RoR, я никогда не буду разрабатывать никаких плагинов, мне никогда не придется браться за другой проект, никогда никто не БУДЕТ НАСТАИВАТЬ на том, чтобы я включал что-то доступное только в то, что плохо работает с моей средой разработки Windows, и т.д...

Я бы сказал так:

Если вы отвечаете за разработку веб-приложения для своего работодателя, и этот работодатель работает на Windows, это НЕ ДОЛЖНО мешать вам рассматривать RoR в качестве платформы.Приложение должно быть развернуто третьей стороной, если только ваш работодатель не является достаточно крупным, а проект достаточно важным, чтобы гарантировать использование собственных систем Unix.

Так что, если вы хоть немного разбираетесь в Unix, вам МОЖЕТ понадобиться небольшая помощь на этом пути.Если вы используете сторонний Rails-хост, загляните на их форумы поддержки, убедитесь, что там есть люди, желающие и способные обсудить с человеком, не относящимся к Unix, любые вопросы развертывания / настройки и обслуживания.

Я приведу вам пример, на Joyent, если я хочу запустить миграцию, я должен пройти через их графический интерфейс базы данных, войти в базу данных, затем "выполнить" команду.Итак, я получаю простое текстовое поле, в котором я ввожу входные данные, предназначенные для оболочки Unix, которая является:

cd/user/myhome/sites/mysite и разгребать базу данных:перенести RAILS_ENV=production

Возможно, это было бы не так просто понять, если бы у меня не было опыта работы с Unix.

Начиная с Ruby 1.9.2 и Rails 3.2, Windows работает намного медленнее для автотестирования и spork (один полный цикл в среднем занимал ~ 15 секунд по сравнению с простыми секундами в Linux для того же проекта), но мне нравятся лучшие инструменты и функциональность git, ориентированные на графический интерфейс (TortoiseGit, WinSCP), среди прочего, поскольку я гораздо лучше знаком с Windows.Я убедился, что необходимые мне основные функции работают на обеих платформах, поэтому я считаю, что поломки являются меньшей проблемой по сравнению со скоростью.

Не имеет значения, если вы пурист, то ваша среда разработки должна максимально точно соответствовать вашей производственной среде в отношении операционной системы и версии Ruby и Rails.Но на самом деле это не имеет большого значения.

Некоторые gems работают на Mac, но не на некоторых версиях Linux (например, gitjour, когда я в последний раз пробовал его).

Использование Mac может быть хорошим или плохим, в зависимости от того, хотите ли вы знать, что все, что вы разрабатываете, сможет работать на любой другой операционной системе.

Я занимался разработкой Light rails как для OSX, так и для Linux (Ubuntu), и я обнаружил, что различия почти незаметны (с точки зрения ruby и rails...очевидно, что среды рабочего стола сильно отличаются между двумя ОС).

Как уже говорили другие, большинство руководств по ruby / rails, драгоценных камней, плагинов и т.д.ориентированы на системы типа Unix, поэтому я бы предположил, что при попытке разработки ruby / rails в Windows могут возникнуть некоторые досадные сбои, если, конечно, вы не используете IronRuby.:-)

Простой альтернативой настройке среды Unix для разработки Rails является запуск одного из более простых в использовании дистрибутивов Linux, таких как Ubuntu или Fedora, под управлением программного обеспечения для виртуализации, такого как VMware, VirtualBox, VirtualPC и т.д.

Я согласен со многими предыдущими постами о том, что Rails в Windows может быть проблемой.Просто дело в том, что многие люди, разрабатывающие Rails, работают на Mac или Linux, и в результате ошибки Windows не обнаруживаются, особенно это касается плагинов.

Одна из проблем с Rails - это IDES.TextMate на Mac, похоже, является популярным выбором, однако возможности Linux и Windows довольно фрагментированы.Обычно я бы не стал беспокоиться по этому поводу, но я обнаружил, что Rails становится намного более управляемым, когда у вас есть поддержка IDE.Как правило, существует множество файлов, расположенных в достаточно сложной структуре каталогов, поэтому наличие IDE, которая позволяет вам легко находить нужные файлы, является потрясающим стимулом для повышения производительности.

Еще одна вещь, которую вы, возможно, захотите рассмотреть, - это то, как выглядит ваша среда развертывания.Например, могут ли люди развертывать там Rails-приложения на серверах Linux.В этом случае вам, возможно, удастся обойти ошибки при разработке на OS X, но, к сожалению, эти ошибки обнаружатся, когда вы приступите к развертыванию своего нового программного обеспечения.Это последнее место, где вы хотите отлаживать код.Конечно, сначала вам следует протестировать свой код в промежуточной среде, но слишком часто люди пропускают этот шаг.

В поисках ответа на этот вопрос из-за того, что мне всегда приходится обходить Windows, чтобы что-то работало при разработке на Ruby, я могу сказать, что если у вас есть возможность, используйте Linux или Mac.С сегодняшнего дня я официально начал использовать Ubuntu 9.04, и вот причины, по которым:

1) Не могу делать никаких ssh-операций, таких как использование Capistrano, vlad, создание драгоценных камней для rubyforge и т.д.Вы можете делать все это с помощью cygwin, но это такая заноза в заднице - использовать cygwin и Windows, работающие для всего.

2) Последней каплей стала попытка запустить фоновые задачи в приложении rails только для того, чтобы понять, что Windows не может разветвлять процессы....даже не стал заморачиваться с cygwin для этого, просто переключился на Ubuntu, так что мне не нужно продолжать работать над этими проблемами.

Ubuntu 9.0.4, однако, довольно горячая, она произвела сильное впечатление, так что, возможно, все не так уж и плохо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top