微框架 Python Flask 和 Ruby Sinatra,哪個更值得推薦?

說到微框架,Python Flask和Ruby Sinatra無疑是最熱門的兩個了,想聽聽有接觸過的朋友對這兩個的評價以及推薦建議。從我目前的了解,Python雖然在國內的發展貌似好於Ruby,但是在國外的Web開發方便,Ruby的Rails/Sinatra基本上都佔據著主導的位置,從Google出來的資料便可略知一二。


這個問題很難回答,Sinatra vs Flask的最主要差別,其實是Ruby和Python的差別。當然Flask要比Sinatra重一些,社區更完善,文檔更多,擴展性更強。Sinatra本身如果要應用在中型以上的項目,要自己做很多boilerplate,當然你也可以用基於Sinatra並且整合了許多東西的Padrino。

對於這種micro framework,他們絕大多數的設計哲學都很像,其中的差別主要是語言本質的差別。當然,要開發一個稍微有一點規模的東西,是需要引入大量的third party libraries的,尤其是ORM。Python的ORM主要是SQL Alchemy,而Ruby用的比較多的事ActiveRecord和DataMapper。

最後,我對「在國外的Web開發方便,Ruby的Rails/Sinatra基本上都佔據著主導的位置」並不認同。Ruby/Rails社區在Web方面很有創造力,有許多很不錯的idea,而Python社區則相對安靜。但是對於產出來說,Python並不比Ruby弱。Jeff Atwood寫過一篇文章,提到「Ruby is not cool anymore」,所以你看到Ruby社區似乎很「活躍」,其實是因為Ruby/Rails流行的比較晚,所以有許多空白要填補,也有許多新輪子由於語言特性而被造出來——Python很早已經過了這個時代。在過了「being cool」的時代過後,將會迎來「get shit done」的時代。


這問題和 Python VS. Ruby 沒什麼不同。。。

問題是何必 VS 呢,訓練有素的工程師在這兩個框架下寫點東西用不了 30 分鐘的時間。花個周末連 node 的框架也一起玩玩,喜歡什麼自然有判斷。


其實選擇哪個框架/技術,於個人而言,不要有太多「瞻前顧後」般的糾結,不能像大眾吵哪個技術好那樣。一般在選擇前要做些快速驗證。你說豆瓣、知乎為何選擇Python而不是Java?當然Java也是很好的實現工具,這裡面應該有各種考慮,比如當前開發人員的技術方向等等,沒有哪個更好或更不好,只有哪個更合適或不合適。
比如我的個人博客:瓜園耕讀 - 田園將蕪胡不歸,選擇的就是Flask技術棧。我也曾考慮過Ruby,RoR也挺好的,但一是我想嘗試一下新的東西,二是當時階段我用得多的語言就是Python,理由也僅此而已,這裡沒有啥高大上的技術理由。反正用了Flask以後,自己寫這個博客代碼,斷斷續續地花了一個月吧好像?記不太清了。


都不推薦。
===========
玩玩還可以,沒有多少實際用處。
要想真干點事情,第一推薦是Rails,當然你喜歡Python語言,可以試試Django。
受不了知乎那麼多人慫恿人學習Flask,這麼簡陋的框架你搭建一個完整的網站需要多久?國外很少人用Flask,除非很簡單的項目。一般網站初創項目都是Rails。其它的都是非主流。


Python Flask也不是什麼值得推薦的Python web解決方案。

我們做企業開發更喜歡用pyramid框架,做大項目用起來比flask更好用。

比如許可權管理,安全,比如自帶的scan功能,避免了多少鍵盤的誤敲錯誤啊。

flask只能做點小玩意


1 - 我用Sinatra三年了, 說它簡單, 其實只是用起來簡單。 學起來, 對它深入了解, 優化, 就不容易了,

2 - 實質性的, Sinatra就是Rack, RoR也是Rack, 好比不同的linux發行版一樣。

文檔和源碼 sinatra/sinatra · GitHub


web編程最花時間的是模板和DB,模板各家都差不多,DB的orm 庫,python裡面只有django做的最好,但是無法獨立使用,Sinatra 可以用ActiveRecord。所以,不考慮學習成本的情況下,幹活用Sinatra更好


python vs ruby. 點在於python坑少


顯然應該用sinatra。。。 flask更像一個玩具


推薦閱讀:

TAG:Ruby | Python | Ruby on Rails | Sinatra | Flask | Python 框架 |