Ruby on Rails开发效率高,到底是因为Ruby语言还是Rails框架

Python09

Ruby on Rails开发效率高,到底是因为Ruby语言还是Rails框架,第1张

python php也有类似rails的实现,所以还是rails本身设计得好。rails大量使用了元编程,ruby元编程功能强大,类在运行时是开放的,用ruby更容易设计出rails这样的框架。ruby本身设计目标就是对程序员友好,恰巧能运行。所以rails火了ruby也进入了

当然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很早已经过了这个时代。