2011-03-14 140 views
5

我一直在學習Ruby,只是爲了好玩(目前沒有需要Ruby的項目)。我喜歡它,但我也喜歡PHP。我知道「比較Ruby和PHP」是一個毫無意義的常被問到的問題。這不是我要問的。相反,我會對一種語言對另一種語言有意義的例子感到好奇。畢竟,這是關於爲正確的工作提供正確的工具,而且我正試圖更好地理解Ruby的「正確工作」。什麼時候使用Ruby和什麼時候使用PHP

我對社區的大小或部署的簡單性等方面並不感興趣 - 我認爲隨着Ruby的日益普及,這對PHP而言將不再是一個問題。相反,在網上完成任務的世界中,Ruby自然而然地將其作爲比PHP更合適的解決方案工作在哪種類型的工作上?另外,只需要清楚,假設PHP5以面向對象的方式編寫:-)

謝謝。

+7

我真的很想試着按照「當你使用PHP時(對PHP程序員有貶義的評論)」這樣的話來說,當你是一個(關於Ruby程序員的貶義評論)時,使用Ruby。語言的目標非常相似(例如,你不是比較Python和彙編語言),而語言大戰無人幫助 – Quentin 2011-03-14 15:06:44

+0

這是一個主觀問題的定義,例如,我會說「當你想要時使用Rails建立一個網站。當你想通過自我鞭at來使用PHP時「 – meagar 2011-03-14 15:21:45

+0

@meager:這可能是一個主觀問題,但它絕對不是一個定義。 – 2011-03-14 15:27:54

回答

0

我發現這個幻燈片很有趣的關於Ruby和Ruby on Rails,我建議你看看

http://www.slideshare.net/dosire/when-to-use-ruby-on-rails-1308900

甚至說Ruby是比PHP

2X老實說,雖然,它是真的很好,你喜歡PHP和Ruby,好資產。

+0

謝謝!所以從我能收集的信息來看,並沒有真正的明確答案,而是一個直觀的「感覺」,將更多地使用語言開發 - 我想當你選擇在PHP中使用if(condition {} vs if(condition):endif; style時,會有點類似於情況和舒適/風格,不容易普及。 – 2011-03-14 17:49:30

+0

我不認爲這個決定你想出了完全正確的。最近我通過一些小組討論,他們說PHP5比python快,但PHP中的文件解析速度較慢。所以,如果你正在開發一個具有繁重文件解析工作的網站,他們建議使用Perl。因此,我認爲沒有像「直覺感覺」這樣的東西,它是工程,所有事情都必須有精確的解釋。我很驚訝,看到沒有人知道(或不分享)這個重要問題的答案! – 2015-01-01 09:25:44

0

問題是,使用一個或另一個的理由完全是間接的,但你不想要任何情況下的:-)。

1

我的觀點是忘記問題的類別,並使用任何語言感覺最自然的你。我聽到很多人說Ruby的語法很煩人,或者他們不會「獲取」Ruby風格。我從來沒有試圖說服這些人認爲Ruby是他們工作的最佳人選,就像我從來沒有試圖說服法國小說家用英文或中文寫作來獲得更多的觀衆一樣。

你用Ruby獲得的一件事是一種通用語言,可以在Web應用程序之外應用,但如果這不適用於你,請按照你的意願去選擇感覺最簡單的語言。這就是說,做到這一點以及。挖掘你的選擇語言,研究其他人的代碼,並變得精通。也許不時重新訪問其他語言,看看你是否仍然有同樣的感受。

+0

哦,還有一件事:對於上帝的愛,不要選擇一種語言,因爲「所有的[Ruby | PHP]傢伙看起來都很酷」,想象一下自己面試工作,問自己爲什麼選擇[Ruby | PHP]作爲你最後的項目?「,然後看到面試官臉上的表情你說,「我只是不喜歡[Ruby | PHP]人」,你不想成爲別人的博客上的玩笑 – 2011-03-14 15:23:22

0

很難給出答案。隨着您學習越來越多的編程語言,許多人得出結論「適合正確工作的正確工具」。特別是如果你學習像Perl這樣的小衆語言。這是一個用於文本處理和管理工作的好工具。它不適用於商業企業應用程序。這就是Java的用途。 Python非常適合腳本編寫,Ruby對Web應用程序非常有用。

在元級別上,Ruby更安全。歷史表明,安全性和PHP不能很好地結合在一起。作爲安全顧問,我的選擇是Ruby。

0

舉幾個例子:

  • PHP是比較常見的廉價託管服務提供商和整體它需要較少的工作,以舉辦一個PHP應用程序比一個Ruby編寫的。所以如果要編寫一個廣泛分發的平臺,比如wordpress,PHP是一個更好的選擇。

  • Ruby比PHP更適合腳本編寫。如果你不擔心網絡上的某些東西,只需一個後端工具,那麼ruby是一個更好的選擇。

0

使用任何你最熟悉的語言來完成工作。你的代碼和你一樣好。

相關問題