2009-04-29 201 views
4

在a)windows b)linux或c)mac上的rails上開發ruby會更好嗎?爲什麼?ruby​​開發環境

編輯:

爲什麼我問這是我聽到的是,在開發Windows Ruby on Rails的是不是穩定/好當你在Mac軌使用紅寶石相比的原因。 (不知道如果這是真的或不)。

加上David Heinemeier Hansson(Ruby on Rails的創建者)似乎正在使用Mac這一事實,因此最初的印象似乎是Ruby on Rails應用程序,Mac可以很好地結合在一起。

+2

我認爲這只是一個偏好和習慣的問題。如果您曾經是一個以Windows爲中心的人,剛開始使用RoR或您感興趣的任何語言,最好堅持使用舊環境(即Windows)。由於您不僅僅處理語言本身,而且還處理新環境(OS),因此您將沒有特定於平臺的命令來學習。其他平臺也是如此。 – Eddy 2009-04-30 01:48:34

回答

24

我強烈建議你不要在Windows上開發。爲什麼?首先,每次升級都會在Windows上發生很多事情,而絕大多數創業者或插件創建者都不使用Windows,因此他們不關心Windows,也不對其運行測試(有幾個大名字那些持平的人說Windows不是他們的問題,而是你的)。你會發現* nix vs Windows問題會一次又一次地讓你陷入屁股。路徑名斜槓,在SSH實現,控制檯和字體問題,RubyGems的,Capistrano的,等細微差別......

什麼最終會發生一段時間後,就是你永遠有這樣的聲音在你的腦袋,每次的回你必須調試一些說「這只是在Windows上的問題?」而這個小小的聲音對你來說是一種代價。每天都會使用你的一些電池。

蘋果電腦在前期美元方面比較昂貴(可惜我沒有),而Linux平臺則花費了一兩天的時間來花費更多的時間來試圖讓你的無線工作,但這些是前期一次性成本。使用Windows for Rails開發的不安全感是一個持續的成本。至少在社區開始拒絕並非真正跨平臺的事情之前。

作爲一個例子看看黃瓜。出於某種原因,測試框架依賴於Windows中不可用的特定控制檯配置。因此,要在Windows中使用它,必須更改控制檯中的字體並更改控制檯中的代碼頁。否則,字母「a」從所有輸出中消失。爲什麼?因爲它適用於* nix系統,並且給你漂亮的顏色(我認爲這是一個巨大的缺陷,即使你忽略windows也是非常糟糕的設計選擇)。

你也會覺得每次出現窗戶問題時都會在電梯裏放屁。

我說這一切都是爲了那些目前不得不爲他的開發平臺使用windows的人。嘿,那是什麼味道?

[後期編輯:Ruby在窗口上也慢了3倍。這會影響你的意願一直在進行你的測試並傷害你的TDD反饋週期]

7

應該無所謂,無論你最舒服。我已經完成了所有三個。

我認爲Windows有點不舒服,因爲不是基於Unix的,CLI有點笨拙。

(但如果你使用像NetBeans的一個工具,你不是真的甚至不需要CLI多)

+0

我建議所有windows用戶在安裝機器後首先安裝Cygwin。給你一個每個人都熟悉的優秀shell(bash)和你習慣的所有實用程序。 – Trey 2009-04-30 00:26:34

+0

當我說Windows CLI時,我包含了cygwin,但cygwin是一個真正的Unix CLI的糟糕替代品。一切似乎都有點笨拙/破碎/關閉 - 並非如此,只是令人討厭而已。有時候我很想將DSL安裝爲Windows服務,只需要SSH就可以執行命令行工作。 – 2009-04-30 17:12:20

0

不要緊,如果你是一個純粹的那麼你的開發環境應儘可能與您的生產環境儘可能與操作系統和Ruby和Rails版本有關。但真的沒什麼關係。

3

Ruby on Rails適用於所有平臺,但工具支持各不相同。例如,TextMate是Rubyists中最受歡迎的編輯器,它僅限於Mac。您將能夠在TextMate中找到許多有用的工具來處理RoR,因此最好在Mac上進行RoR開發。

我自己使用Mac和Linux。

1

由於所有gem在這些系統上都可用/可編譯,所以基於Unix的系統將爲您提供一條不受阻力的路徑,這在Windows機器上並不容易。在Windows上這不是不可能的,但是你會花更多的時間讓它工作,而不是在某些情況下工作。

在這些Unix系統中,我的首選是Mac,它具有所有的Unix功能以及Linux系統中可能缺乏的所有接口細節,當然,如果沒有我的每日劑量的TextMate ,所以Mac就是這樣。

0

一些寶石可以在Mac上使用,但並不是某些Linux版本(例如gitjour,當我上次嘗試使用時)。

使用Mac可能是好還是壞,取決於您是否想知道您開發的任何軟件都可以在任何其他操作系統上使用。

4

我建議不要在開發應用程序時使用Windows,而這些應用程序稍後會部署在Linux系統上。如果你正在開發一個應用程序來練習,Windows就沒問題。

問題是,如果你瞄準的是linux,那麼你需要在你的開發機器上有一個完整的堆棧:一個web服務器,一個dbms,或許memcached等等。雖然可以加載所有(我已經完成了),它將比在Linux機器上花費更長的時間,速度會更慢,並且在出現問題時尋找幫助會更困難。

此外,您可以在Windows上運行gem和插件支持問題。例如\代替目錄路徑和其他怪異。雖然rubyists會嘗試提供幫助,但是由於大多數RoR工作是在Mac或Linux機器上完成的,因此Windows支持有時會受到限制。 例如,Capistrano在Windows上運行時遇到問題(它們現在可能已經修復)。

作爲替代,您可以使用Windows作爲您的臺式機,但使用的是Linux作爲開發服務器上運行的應用程序。任何舊電腦將運行Linux就好了。使用samba遠程訪問和編輯Windows機器上的文件。 linux機器不需要顯示器,你只能遠程使用它。

只要改變你的應用程序的config /環境/ development.rb包括

config.action_controller.consider_all_requests_local = true 

因此您可以在Windows計算機上運行,​​從看到你的瀏覽器堆棧跟蹤。

問候,

拉里

0

我已經在OSX和Linux(Ubuntu)上做了輕軌開發,我發現差別幾乎不可察覺的紅寶石和鋼軌...顯然,兩個操作系統的桌面環境差別很大)。如其他人所說,大多數ruby/rails教程,寶石,插件等都是面向Unix類型的系統,所以我認爲可能會有一些惱人的打嗝嘗試在Windows中進行ruby/rails開發,除非當然你使用IronRuby。:-)

低麻煩替代設立了Rails開發Unix環境是運行的一個更容易使用的Linux發行版,如Ubuntu或Fedora虛擬化軟件,例如像VMWare,VirtualBox的,下的VirtualPC等

0

我同意以前的許多帖子,Windows上的Rails可能是一個問題。簡單來說,很多開發Rails的人使用Mac或Linux,結果找不到Windows錯誤,這對插件來說尤其是問題。

Rails的一個問題是IDE。 Mac上的TextMate似乎是一種流行的選擇,但Linux和Windows選項相當分散。通常我不會擔心這一點,但是我發現當你有IDE支持時,Rails變得更容易管理。總的來說,有很多文件位於相當複雜的目錄結構中,因此使用IDE可以輕鬆找到您要查找的文件,這是一個非常棒的生產力提升。

你可能要考慮的另一件事是你的部署環境是什麼樣子。例如,人們可能會在Linux服務器上部署Rails應用程序。在這種情況下,您可以通過在OS X上開發來避開bug,但不幸的是,當您部署新軟件時,這些bug會出現。這是你想要調試代碼的最後一個地方。當然,你應該首先在一個臨時環境中測試你的代碼,但是人們經常跳過這一步。

0

雖然由於總是有破解窗戶周圍的事物,我的方式工作,而在Ruby中開發,我可以說,如果你有選擇,使用Linux或Mac搜索的回答這個問題。從今天開始,我已經正式開始使用Ubuntu 9.04,原因如下:

1)不能做任何ssh的事情,比如使用Capistrano,vlad,爲rubyforge創建寶石等等。你可以使用這些東西cygwin,但是使用cygwin和窗口爲一切工作是一件非常痛苦的事情。

2)最後一根稻草是當試圖在一個Rails應用程序中啓動後臺任務,只是意識到Windows不能分叉進程....甚至不打擾這個cygwin,只是切換到Ubuntu所以我不必繼續解決這些問題。

的Ubuntu 9.0.4是非常熱的,雖然,相當深刻的印象,因此它可能不會如此糟糕。

1

我在早期的Unix系統中於1981年開始了程序員的生活。我在1995年留下了一個純粹的Unix人。然後發生了'事情'(企業所有權),Windows進入了我的生活。

所以在2007年我開始學習RoR的,純粹的Windows。我部署在Joyent上,這是Solaris。我成功開發了兩個在Windows上開發的大型應用程序,並部署在Solaris/Apache/Mongrel上,沒有發生重大事件。

的僅限於Windows的問題,我永遠記得的是,我不得不強迫文件系統的讀取和寫入二進制模式來解決一個「發展」與「部署」的問題。

老實說,我沒有看到在Windows上開發和部署在Unix上的任何問題。但是我有一個廣泛的Unix背景,如果我不知道Unix,我不確定這個故事會不會一樣。

此外,我只會爲我的業務構建RoR應用程序。我永遠不需要構建任何其他RoR應用程序,我將永遠不會開發任何插件,從不需要接管另一個項目,也不需要任何人INSIST我將某些東西包含在某些不適合我的Windows開發環境的東西中等等......

我會這麼說:

如果你是負責開發一個Web應用程序給你的僱主,而僱主是基於Windows,這不應該考慮回報率作爲平臺妨礙你。該應用程序必須由第三方部署,除非您的僱主足夠大,並且該項目足夠重要,以便在Unix系統中保證。

所以如果你知道關於Unix的SQUAT,你可能需要一些幫助。如果你使用第三方Rails主機,請查看他們的支持論壇,確保有人願意並能夠通過任何部署/設置和維護問題與非Unix人員交談。

我給你舉個例子,在Joyent上,如果我想運行一個遷移,我必須通過他們的數據庫界面,登錄到數據庫,然後'執行'一個命令。好了,我得到一個簡單的text_field,我進入輸入目的地爲Unix外殼,這就是:

CD /用戶/ MYHOME /網站/ mysite的& &耙分貝:遷移RAILS_ENV =生產

可能不如果我沒有Unix背景,我很容易弄清楚。

1

從Ruby 1.9.2和Rails 3.2開始,Windows對自動測試和spork來說要慢很多(一個完整週期平均花費約15秒,而對於同一個項目,Linux只需幾秒鐘),但是我喜歡更好的gui以Git爲中心的工具和功能(TortoiseGit,WinSCP)等等,因爲我對Windows更加熟悉。我已經證實,我需要的基本功能是在兩個平臺上工作,所以我發現與速度相比,破損是一個較小的問題。