views:

685

answers:

7
+2  Q: 

Groovy or Django

I have never created a high traffic site so I have no idea what the best long term plan is. There is no room for a dedicated server in the budget. I'm currently using VPS hosting for my current site. I was going to stick with VPS and migrate grails. I looked at Django and python hosting plans (which look cheaper than VPS plans) from fatcow.com for example. Which is a better investment, grails through VPS hosting or django through a standard python hosting plan? Which would have better performance in short and in long term?

The front end of the application is javafx, and the backend will be a REST interface.

+1  A: 

Have you looked at Google AppEngine? You can run Django there, and it's a good cheap way to start.

marcc
calling it as a subset of Django is more accurate. You can only use django templates and url dispatcher, the rest, models, additional applications such as auth, admin is not available.
M. Utku ALTINKAYA
There's a plugin for appengine and Grails as well. http://www.grails.org/plugin/app-engine
seth
I looked at Google AppEngine and I decided to go with a hosting plan. I do not mind paying more if the site starts growing. I wanted to know which of the two environments was better.
Serenity
Ok, fair enough. Just wanted to throw AppEngine out there. (I'm using Django on an EC2 box, not AppEngine myself, so I don't disagree with your decision)
marcc
A: 

I haven't seen any performance comparisons between CPython and Jython, but I do know that Django runs on the latest version of Jython now. This also allows you the flexibility of being able to rewrite parts of your app later (remember, no premature optimization) in Java or, say, Scala, if you need the speed.

Xiong Chiamiov
Grails or Jython would still fall under the JVM and VPS hosting. The JVM appears to use a lot of memory.
Serenity
A: 

You may want to consider the memory footprint consumed by the app server in the VPS environment. If your VPS is really small (256 mb) then you might run out of memory if you are running the app server + db server.

Ken Liu
The VPS hosting plan I'm using doesn't set a limit on the DB server memory usage. It limits the amount of memory the JVM can access. The more you want the more you pay.
Serenity
great! still, you want to determine how much memory you will need for your jvm and then budget accordingly.
Ken Liu
+1  A: 

I would stick with Django. Django and Grails are quite similar, but I prefer Python over Groovy. Python's development cycle is just less tedious than Groovy's. The Python console is e.g. started immediately, while the Groovy console can take over a second to load. That's just a small issue, but waiting a second many times gets frustrating in the end.

lbp
but groovy consumes less energy :)
M. Utku ALTINKAYA
+2  A: 

There is a Grails App Engine plugin that does not use hibernate.

http://www.grails.org/plugin/app-engine

Personally, I think the choice comes down to which language you like the most. If you are a Java/JSP developer, you'll probably like Grails better. However, if you are already quite proficient in Python then that is the better choice.

Here are some resources that might help you evaluate Grails.

http://grails.org/Success+Stories
http://www.pubbs.net/grails/200908/12877

Python is already well established and mature. There are plenty of resources and it is certainly a good choice, if you are a Python fan.

thanks for the links
Serenity
+2  A: 

I went through the same process as you too before deciding to use django. I am a Java programmer during the day and I want to have a pet project that I can make during my spare time. So I got myself a VPS with the cheapest plan available. I installed Java webserver and deploy a Grails app, but it turns out that it needs a bigger memory. Then I realized that Java webapp needs a large memory to get running. So I went to look for a non-Java framework. I didn't have much criteria at that time other than it can run smooth on my current VPS plan.

I took a look at django and I was amazed that:

  1. It is so simple and easy to get started. It only creates small numbers of file (compared to Grails)
  2. It has many built-in feature that Grails doesn't have:
    • RSS feed framework
    • Commenting system
    • The admin system (you gonna love it, it's like scaffolding only better)
    • And many other webby features that takes time to create
  3. It needs less memory to get started, but it can also scale really well

Other than that you're just going to compare Groovy and Python. If you're a Java programmer you're going to love Groovy syntax as it is really close to Java. But python is a good language too (despite that many people don't like it's syntax).

If you want to use JavaFX as the front-end, then you can use django just to return JSON data or XML data, and you can do this easily because it has a built-in serializer to do this.

So all in all the criteria drills down to what you need and what you already know.

jpartogi
A: 

Groovy's future is debatable. Its creator, James Strachan, has said:

I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy.

-- http://macstrac.blogspot.com/2009/04/scala-as-long-term-replacement-for.html

My 2 cents: go with Python & Django. Skip Scala. Seriously consider Lisp.

rickmode