9/08/2006

Rails 優缺點比較

又是一篇比較文

Ruby on Rails, and Ruby as a Language

優點

  1. MVC framework幫助 Ruby 使用者區分 presentation 還有 business logic
  2. Unit tests 直接 Build in
  3. DRY(Don’t repeat yourself) 原則讓開發較為容易
  4. 快速敏捷,而且不需要compile time的開發
  5. Convention over configuration 還有 meta-programming 讓 XML Configuration 絕跡,而這些都是 JAVA Platform 像是 Stuts 所必須的工作
  6. Active Record orm( Object Relational Mapper )不需要configuaration(如果不算 connection 的 config)
  7. 完整的Ajax Support( Prototype and Scriptaculous )
  8. Built in XML Web Services
  9. Ruby 實在是太簡單了,每個東西都是 Object ,而且code簡單好讀read.
  10. Easy model validations
  11. 當你 database schema 確定了,開發程式會速度非常快
  12. Session 資料會以存在硬碟或是資料庫的方式處理,所以 Session 資料將很容易被很多台 Server 存取
  13. Ruby是dynamically typed 語言,這讓開發變得很容易。
  14. Ruby 是 Open Class ,所以你可以在 Run Time 很容易加入任何新的Methods。這讓Active Record 可以動態的在Run Time產生每個 Database Entry。也因此,Ruby on Rails不需要更新 Database mapping Schema。
  15. Ruby 支援 Closures ,這讓 Ruby 可以使用較少的code就達成許多 JAVA 很辛苦才能達成的事情。
  16. Ruby on Rails將開發者良好的觀念帶入框架之中,他保護開發者免於一些很平常的錯誤。而這個架構也對於新的架構提供最好的實做方式。
  17. Mongrel Web Server 給予 Rails 開發者專屬於自己的Container,並且速度很快。
  18. Ruby 其實在 1993年就開始開發了。所以他不僅限於Web 開發,他有很多方面的應用。
缺點

  1. 對於已經存在的 Database Schema 要支援是比較弱的。雖然你總是可以在 Model 加入一些 mapping 來改進,但是你在同時也會失去一點點 ActiveRecord的便利性。最重要的是,他們沒有想過要改進現存database schema 的支援度。
  2. API 文件相當嚴重的缺乏。
  3. 如果你無法依照他給你的指示方式去做,那你就必須自己手動去寫。
  4. 如果當你不依照 Rails 的指定的方式去做,Scaffold 的 generator 產生的東西就沒太多意義。
  5. 要讓程式擁有很高的 Scale 是很花記憶體的,雖然現在 memory 很便宜。
  6. 沒有 build in 國際化的支援。
  7. SQL Server 的支援較弱(PHP也是如此的情況)
  8. Rails 開發時間較為年輕(跟PHP或是JAVA相比),所以他的開發者較少,不過最近成長數量相當驚人
  9. IDE數量不足,Textmate是最好的,但是他是 MAC only 的。


沒有留言: