2010-01-23 56 views
-1

我來自桌面編程背景。我想要認真鑽研網絡編程環境。我環顧四周,我認爲使用完善的Web框架將是一條可行的路。從我看到的Django和Ruby on Rails非常受歡迎。更好的web框架?

所以我只是想知道這些或其他哪些對我來說是個不錯的選擇。一些優雅,健壯,可擴展,易於部署和維護且功能齊全的產品。我目前正在傾向於Django,因爲它基於Python,它是一種非常流行和強大的語言,但只是想知道RoR爲自己做了什麼,可能使它成爲更好的選擇?從某種意義上說,更多的是Web 2.0。只是想獲得一些額外的意見。

+6

沒錯,因爲我們沒有足夠的django vs rails問題:) – shylent 2010-01-23 13:18:53

回答

3

我可以給的唯一建議是在每一個建立一些不平凡的東西,併爲自己做出決定。如果你問這裏,你會得到各種技術的倡導者,告訴你他們的事情比其他事情都好。

我,比如,會告訴你,我用,我有選擇ASP.NET的一切,這就是爲什麼我能放出來的網站像Twiddla,,S3stat等幾個月*每個由VC支持的公司和整個PHP開發團隊花費數年時間來構建類似的東西。

在這篇文章的下面,你會注意到一個Rails人說的完全一樣的東西。所以就像我說的那樣,嘗試一些技術,看看最適合你製作的東西。

* 2個月,3個月,1周,分別

0

我使用的,因爲可擴展性和支持,非常好的文檔的Django的。 當你剛剛開始時,它有點搜索,但事後感覺非常好。

模板引擎非常強大,這意味着您也可以製作漂亮的javascript/ajax,因此web2.0部分功能非常強大。

雖然我不得不承認我對RoR沒有太多的經驗。這看起來也很不錯。

3

考慮:

  • 部署:兩者的Django和Rails現在有很好的部署選項 - 爲的mod_wsgi Apache上,乘客的Phusion爲Rails部署Django的部署。如果你想部署在Google App Engine上,你可以使用Rails(使用AppEngine for Java和JRuby),但Python和Django會更容易。另一方面,看看Heroku的類似'雲'託管。如果你有共享主機,看看他們讓你使用。我的共享託管公司讓我使用Rails,這很酷。
  • 軟件包和庫:Python和Ruby以及Django和Rails都有各種各樣的插件和庫,可以讓你做有趣的工作。如果你正在構建需要特定庫的東西,你會發現圖書館比框架更有用。
  • 嘗試語言。 Python和Ruby都是美妙的語言。我比較喜歡Ruby(而且我使用Rails),但請記住,框架實際上不是關於框架而是關於語言。所以如果你發現你對編程語言有強烈的觀點,一定要試一試。
  • 看看下面這個例子的代碼 - 例如,看東西就像一個博客引擎 - Django的有Byteflow和Rails有Mephisto
  • 看看其他框架,包括比Ruby和Python等那些使用的語言。看看Merb,Lift,Seaside,Cake,Grails等等。

並記住:技巧,想象力和創造力比框架選擇更重要。

4

..東西是優雅穩健可擴展易於部署保持全功能 ..蟒蛇是一種很受歡迎強大語言 ..這是更多web 2.0在某種意義上。

這些都是空洞的,主觀的流行詞。各種框架之間的差異不是你可以衡量的;這是他們的風格,造成了不同。沒人可以爲你決定。嘗試一些你的自我,並選擇什麼感覺適合你。

0

您應該知道的第一件事是框架或開發語言只是實現您的業務解決方案的工具。所以不要堅持任何框架或工具!不同的工具或框架具有不同的優點。他們都不是最好的。這完全取決於情況。因此,在開始開發系統之前,先進行足夠的調查並寫下業務目標,然後選擇最符合您的框架。在指定技術上方設計應用程序會使您從程序員轉變爲軟件架構構建器。

2

你應該比框架更注重語言!如果您比Python更喜歡Python,請使用Django。 Bur如果你更喜歡Ruby,看看RoR ...

它們都是很棒的框架,但它們只是「框架」!最後,我不認爲你的框架選擇會對你的Web應用程序的最終用戶產生很大的影響!

+0

不知道爲什麼這會被downvoted - 你是對的。無論框架多麼「健壯」,或者它可以自動生成多少代碼,您仍然會用該語言編寫大量代碼。如果你不喜歡這種語言,你不會喜歡這個框架。此外,您最終可能最終需要在框架之外編寫代碼,並且也必須依賴於該語言的其他庫。 – 2010-01-23 16:31:37

0

IMO,Ruby和Rails比Python和Django以及大多數其他平臺在工具和自動化方面具有很大的優勢。這對總體生產力以及部署和維護有很大影響。諸如RubyGems軟件包管理,Rake任務自動化,Active Record遷移和Capistrano部署等功能使所有這些小工作快速,輕鬆且可重複。

幾年前我嘗試過Django和Python,並且喜歡關於它們的很多事情,但是對於我的口味來說,有太多的手動擺弄和配置超過了慣例。例如,Python軟件包管理是有限的(沒有卸載功能!),並沒有普遍支持流行的庫。

Django本身沒有強加一個標準的應用程序結構,這意味着每個人都必須弄清楚並手動設置自己的佈局。這也會導致大量不必要的設置和維護工作。

如果我必須使用Python進行Web開發,那麼我可能會使用TurboGears框架,它提供了一個標準的應用程序結構,以及更多的支持工具。