说到微框架,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 的框架也一起玩玩,喜欢什么自然有判断。
web编程最花时间的是模板和db,模板各家都差不多,db的orm 库,python里面只有django做的最好,但是无法独立使用,sinatra 可以用activerecord。所以,不考虑学习成本的情况下,干活用sinatra更好
1 – 我用sinatra三年了, 说它简单, 其实只是用起来简单。 学起来, 对它深入了解, 优化, 就不容易了, 2 – 实质性的, sinatra就是rack, ror也是rack, 好比不同的linux发行版一样。文档和源码 sinatra/sinatra · github
python vs ruby. 点在于python坑少