<p>I'm wondering if there's such a thing as Django-like ease of web app development combined with good deployment, debugging and other tools? </p>

<p>Django is a very productive framework for building content-heavy sites; the best I've tried and a breath of fresh air compared to some of the Java monstrosities out there. 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. </p>

<p>Ruby has similar issues and although I do like Ruby <strong>much</strong> better than I like Python, I get the impression that Rails is roughly in the same boat at Django when it comes to managing/supporting the app. </p>

<p>Has anyone here tried both Django and Grails (or other web frameworks) for non-trivial projects? How did they compare?</p>

[{'answer_id': 76198, 'author': 'Trausti Thor', 'author_id': 6801, 'author_profile': 'https://Stackoverflow.com/users/6801', 'pm_score': 1, 'selected': False, 'text': '<p>cakephp.org</p>\n\n<p>Cakephp is really good, really close to ruby on rails (1.2).  It is in php, works very well on shared hosts and is easy to implement. </p>\n\n<p>The only downside is that the documentation is somewhat lacking, but you quickly get it and quickly start doing cool stuff.</p>\n\n<p>I totally recommend cakephp.</p>\n'}, {'answer_id': 77693, 'author': 'zuber', 'author_id': 9812, 'author_profile': 'https://Stackoverflow.com/users/9812', 'pm_score': 3, 'selected': False, 'text': '<blockquote>\n  <p>However it\'s written in Python which\n  means there\'s little real support in\n  the way of deployment/packaging,\n  debugging, profilers and other tools\n  that make building and maintaining\n  applications much easier.</p>\n</blockquote>\n\n<p>Python has:</p>\n\n<ol>\n<li>a <a href="http://docs.python.org/lib/module-pdb.html" rel="noreferrer">great interactive debugger</a>, which makes very good use of Python <a href="http://en.wikipedia.org/wiki/REPL" rel="noreferrer">REPL</a>. </li>\n<li><a href="http://peak.telecommunity.com/DevCenter/EasyInstall" rel="noreferrer">easy_install</a> anv <a href="http://pypi.python.org/pypi/virtualenv" rel="noreferrer">virtualenv</a> for dependency management, packaging and deployment.</li>\n<li><a href="http://docs.python.org/lib/profile.html" rel="noreferrer">profiling features</a> comparable to other languages</li>\n</ol>\n\n<p>So IMHO you shouldn\'t worry about this things, use Python and Django and live happily :-)</p>\n\n<p>Lucky for you, newest version of <a href="http://blog.leosoto.com/2008/08/django-on-jython-its-here.html" rel="noreferrer">Django runs on Jython</a>, so you don\'t need to leave your whole Java ecosystem behind.</p>\n\n<p>Speaking of frameworks, I evaluated this year:</p>\n\n<ol>\n<li><a href="http://pylonshq.com/" rel="noreferrer">Pylons</a> (Python)</li>\n<li><a href="http://webpy.org/" rel="noreferrer">webpy</a> (Python)</li>\n<li><a href="http://www.symfony-project.org/" rel="noreferrer">Symfony</a> (PHP)</li>\n<li><a href="http://www.cakephp.org/" rel="noreferrer">CakePHP</a> (PHP)</li>\n</ol>\n\n<p>None of this frameworks comes close to the power of Django or Ruby on Rails. Based on my collegue opinion I could recommend you <a href="http://www.kohanaphp.com/home" rel="noreferrer">kohana</a> framework. The downside is, it\'s written in PHP and, as far as I know, PHP doesn\'t have superb tools for debugging, profiling and packaging of apps.</p>\n\n<p><strong>Edit:</strong> Here is a very good <a href="http://bud.ca/blog/pony" rel="noreferrer">article about packaging and deployment of Python apps</a> (specifically Django apps). It\'s a hot topic in Django community now.</p>\n'}, {'answer_id': 78424, 'author': 'Christopher Cashell', 'author_id': 13091, 'author_profile': 'https://Stackoverflow.com/users/13091', 'pm_score': 2, 'selected': False, 'text': '<p>I have two friends who originally started writing an application using Ruby on Rails, but ran into a number of issues and limitations.  After about 8 weeks of working on it, they decided to investigate other alternatives.</p>\n\n<p>They settled on the <a href="http://www.catalystframework.org" rel="nofollow noreferrer">Catalyst Framework</a>, and Perl.  That was about 4 months ago now, and they\'ve repeatedly talked about how much better the application is going, and how much more flexibility they have.</p>\n\n<p>With Perl, you have all of CPAN available to you, along with the large quantity of tools included.  I\'d suggest taking a look at it, at least.</p>\n'}, {'answer_id': 81699, 'author': 'zgoda', 'author_id': 12138, 'author_profile': 'https://Stackoverflow.com/users/12138', 'pm_score': 1, 'selected': False, 'text': '<p>Personally I made some rather big projects with Django, but I can compare only with said "montrosities" (Spring, EJB) and really low-level stuff like Twisted.</p>\n\n<p>Web frameworks using interpreted languages are mostly in its infancy and all of them (actively maintained, that is) are getting better with every day.</p>\n'}, {'answer_id': 83075, 'author': 'Powerlord', 'author_id': 15880, 'author_profile': 'https://Stackoverflow.com/users/15880', 'pm_score': 1, 'selected': False, 'text': '<p>By "good deployment" are you comparing it with Java\'s EAR files, which allow you to deploy web applications by uploading a single file to a J2EE server? (And, to a lesser extent, WAR files; EAR files can have WAR files for dependent projects)</p>\n\n<p>I don\'t think Django or Rails have gotten quite to that point yet, but I could be wrong...  zuber pointed out an article with more details on the Python side.</p>\n\n<p><a href="http://www.capify.org/" rel="nofollow noreferrer">Capistrano</a> may help out on the Ruby side.</p>\n\n<p>Unfortunately, I haven\'t really worked with either Python or Ruby that much, so I can\'t help out on profilers or debuggers.</p>\n'}, {'answer_id': 97778, 'author': 'S.Lott', 'author_id': 10661, 'author_profile': 'https://Stackoverflow.com/users/10661', 'pm_score': 2, 'selected': False, 'text': '<p>The "good deployment" issue -- for Python -- doesn\'t have the Deep Significance that it has for Java.</p>\n\n<p>Python deployment for Django is basically "move the files".  You can run straight out of the subversion trunk directory if you want to.</p>\n\n<p>You can, without breaking much of a sweat, using the Python <a href="http://docs.python.org/dist/dist.html" rel="nofollow noreferrer">distutils</a> and build yourself a distribution kit that puts your Django apps into Python\'s site-packages.  I\'m not a big fan of it, but it\'s really easy to do.  </p>\n\n<p>Since my stuff runs in Linux, I have simple "install.py" scripts that move stuff out of the Subversion directories into <code>/opt/this</code> and <code>/opt/that</code> directories.  I use an explicit path settings in my Apache configuration to name those directories where the applications live.</p>\n\n<p>Patching can be done by editing the files in place.  (A bad policy.)  I prefer to edit in the SVN location and rerun my little install to be sure I actually have all the files under control.</p>\n'}, {'answer_id': 460360, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>Grails.</p>\n\n<p>Grails  just looks like Rails (Ruby),but it uses groovy which is simpler than java. It uses java technology and you can use any java lib without any trouble.</p>\n\n<p>I also choose Grails over simplicity and there are lots of java lib (such as jasper report, jawr etc) and I am glad that now they join with SpringSource which makes their base solid.</p>\n'}, {'answer_id': 1955727, 'author': 'hendrixski', 'author_id': 24920, 'author_profile': 'https://Stackoverflow.com/users/24920', 'pm_score': 6, 'selected': True, 'text': "<p>You asked for someone who used both Grails and Django. I've done work on both for big projects. Here's my Thoughts:</p>\n\n<p><strong>IDE's:</strong>\nDjango works really well in Eclipse, Grails works really well in IntelliJ Idea.</p>\n\n<p><strong>Debugging:</strong>\nPractically the same (assuming you use IntelliJ for Grails, and Eclipse for Python). Step debugging, inspecting variables, etc... never need a print statement for either. Sometimes django error messages can be useless but Grails error messages are usually pretty lengthy and hard to parse through.</p>\n\n<p><strong>Time to run a unit test:</strong>\ndjango: 2 seconds.\nGrails: 20 seconds (the tests themselves both run in a fraction of a second, it's the part about loading the framework to run them that takes the rest... as you can see, Grails is frustratingly slow to load).</p>\n\n<p><strong>Deployment:</strong>\nDjango: copy &amp; paste one file into an apache config, and to redeploy, just change the code and reload apache.\nGrails: create a .war file, deploy it on tomcat, rinse and repeat to redeploy.</p>\n\n<p><strong>Programming languages:</strong>\nGroovy is TOTALLY awesome. I love it, more so than Python. But I certainly have no complaints. </p>\n\n<p><strong>Plugins:</strong>\nGrails: lots of broken plugins (and can use every java lib ever).\nDjango: a few stable plugins, but enough to do most of what you need.</p>\n\n<p><strong>Database:</strong>\nDjango: schema migrations using South, and generally intuitive relations.\nGrails: no schema migrations, and by default it deletes the database on startup... WTF</p>\n\n<p><strong>Usage:</strong>\nDjango: startups (especially in the Gov 2.0 space), independent web dev shops.\nGrails: enterprise</p>\n\n<p>Hope that helps!</p>\n"}, {'answer_id': 1997668, 'author': 'Brian Hibbert', 'author_id': 242986, 'author_profile': 'https://Stackoverflow.com/users/242986', 'pm_score': 3, 'selected': False, 'text': "<p>The statement that <em>grails deletes the database on start-up</em> is completely wrong.  It's behavior on start-up is completely configurable and easy to configure.  I generally use create-drop when running an app in dev mode.  I use update when I run in test and production.</p>\n\n<p>I also love the bootstrap processing that lets me pre-configure test users, data, etc by environment in Grails.  </p>\n\n<p>I'd love to see someone who has really built and deployed some commercial projects comment on the pros / cons.  Be a really interesting read.</p>\n"}]
['https://Stackoverflow.com/questions/75798', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/13436/']