关于python:Django -vs- Grails -vs-?

关于python:Django -vs- Grails -vs-?

Django -vs- Grails -vs-?

我想知道是否有类似Django的简易网页应用程序开发与良好的部署,调试和其他工具相结合?

Django是一个非常高效的框架,用于构建内容密集的站点; 与一些Java怪物相比,我尝试过的最好的和新鲜空气。 然而,它是用Python编写的,这意味着在部署/打包,调试,分析器和其他工具方面几乎没有真正的支持,这使得构建和维护应用程序变得更加容易。

Ruby有类似的问题,虽然我比Ruby更喜欢Ruby,但我得到的印象是,在管理/支持应用程序时,Rails与Django大致相同。

有没有人在这里尝试过Django和Grails(或其他Web框架)的非平凡项目? 他们是如何比较的?


你问过一个同时使用Grails和Django的人。我已经完成了大项目的工作。这是我的想法:

IDE的:
Django在Eclipse中工作得很好,Grails在IntelliJ Idea中工作得非常好。

调试:
几乎相同(假设您使用IntelliJ for Grails,Eclipse使用Python)。步骤调试,检查变量等......永远不需要打印语句。有时django错误消息可能没用,但Grails错误消息通常很冗长且难以解析。

是时候进行单元测试了:
django:2秒。
Grails:20秒(测试本身都在几分之一秒内完成,这是关于加载框架以运行它们的部分,其余部分......正如您所看到的,Grails的加载速度令人沮丧)。

部署:
Django:将一个文件复制并粘贴到apache配置中,然后重新部署,只需更改代码并重新加载apache即可。
Grails:创建.war文件,在tomcat上部署,冲洗并重复以重新部署。

编程语言:
Groovy非常棒。我喜欢它,比Python更受欢迎。但我当然没有抱怨。

插件:
Grails:许多破碎的插件(并且可以使用每个java lib)。
Django:一些稳定的插件,但足以完成你需要的大部分工作。

数据库:
Django:使用South的模式迁移,以及通常直观的关系。
Grails:没有模式迁移,默认情况下它会在启动时删除数据库... WTF

用法:
Django:初创公司(特别是在Gov 2.0领域),独立的网络开发商店。
Grails:企业

希望有所帮助!


grails在启动时删除数据库的说法完全错误。它在启动时的行为是完全可配置的,易于配置。我通常在开发模式下运行应用程序时使用create-drop。我在测试和生产中运行时使用更新。

我也喜欢自举处理,它允许我通过Grails中的环境预先配置测试用户,数据等。

我很乐意看到有人真正建立并部署了一些商业项目评论利弊。是一个非常有趣的读物。


Grails的。

Grails看起来像Rails(Ruby),但它使用比java更简单的groovy。它使用java技术,你可以毫无困难地使用任何java lib。

我也选择Grails而不是简单,并且有很多java lib(例如jasper报告,jawr等),我很高兴现在他们加入SpringSource,这使得他们的基础扎实。


However it's written in Python which
means there's little real support in
the way of deployment/packaging,
debugging, profilers and other tools
that make building and maintaining
applications much easier.

Python有:

  • 一个很棒的交互式调试器,可以很好地利用Python REPL。
  • easy_install anv virtualenv用于依赖管理,打包和部署。
  • 与其他语言相比的分析功能
  • 所以恕我直言,你不应该担心这些事情,使用Python和Django,并愉快地生活:-)

    幸运的是,最新版本的Django在Jython上运行,所以你不需要抛弃整个Java生态系统。

    说到框架,我今年进行了评估:

  • 挂架(Python)
  • webpy(Python)
  • Symfony(PHP)
  • CakePHP(PHP)
  • 这些框架都没有接近Django或Ruby on Rails的强大功能。基于我的同事意见,我可以推荐你kohana框架。缺点是,它是用PHP编写的,据我所知,PHP没有出色的工具来调试,分析和打包应用程序。

    编辑:这是一篇关于Python应用程序(特别是Django应用程序)的打包和部署的非常好的文章。这是Django社区的一个热门话题。


    对于Python来说,"良好部署"问题并不具备Java的深层意义。

    Django的Python部署基本上是"移动文件"。如果需要,您可以直接从subversion trunk目录运行。

    你可以毫不费力地使用Python distutils并自己构建一个分发工具包,将你的Django应用程序放入Python的网站包中。我不是它的忠实粉丝,但它真的很容易做到。

    由于我的东西在Linux中运行,我有简单的"install.py"脚本,可以将Subversion目录中的东西移动到/opt/this/opt/that目录中。我在Apache配置中使用显式路径设置来命名应用程序所在的目录。

    可以通过编辑适当的文件来完成修补。 (一个糟糕的政策。)我更喜欢在SVN位置编辑并重新运行我的小安装,以确保我确实控制了所有文件。


    我有两个朋友最初开始使用Ruby on Rails编写应用程序,但遇到了许多问题和限制。经过大约8周的研究,他们决定调查其他替代方案。

    他们选择了Catalyst Framework和Perl。那是大约4个月前的事了,他们一再谈到应用程序的进展程度,以及它们的灵活性。

    使用Perl,您可以使用所有CPAN,以及包含的大量工具。我建议至少看看它。


    通过"良好部署",您将它与Java的EAR文件进行比较,这些文件允许您通过将单个文件上载到J2EE服务器来部署Web应用程序吗? (在较小程度上,WAR文件; EAR文件可以包含依赖项目的WAR文件)

    我不认为Django或Rails已经达到了这一点,但我可能错了...... zuber指出了一篇关于Python方面的更多细节的文章。

    Capistrano可能会帮助Ruby方面。

    不幸的是,我还没有真正使用Python或Ruby,所以我无法帮助分析器或调试器。


    我个人用Django制作了一些相当大的项目,但我只能比较所谓的"montrosities"(Spring,EJB)和真正的低级别的东西,比如Twisted。

    使用解释语言的Web框架大多处于初期阶段,而且所有这些(积极维护,即每天)都在变得越来越好。


    cakephp.org

    Cakephp非常好,非常靠近轨道上的红宝石(1.2)。它在PHP中,在共享主机上运行良好,易于实现。

    唯一的缺点是文档有点缺乏,但你很快得到它并迅速开始做很酷的东西。

    我完全推荐cakephp。


    推荐阅读