My program is RAM hungry...ish, but with its easily accessible garbage collection (GC) information, I can really get the most out of a 512MB VPS. Just have the GC logs written to RAM disk and have it rotate and you'll be amazed at what kind of useful stats you can generate.
You can see how I'm using it here:
http://screenshots.gitsense.com/jvm-monitoring.html
The 10 minute ratio stat lets me know how much time was spent doing garbage collection within the last 10 minutes.
To be fair, .NET also offers a similar level of support.
The only difference is that you have to pay for it, by getting Visual Studio Premium or third party tooling like dotTrace which plug into the CLR monitoring API.
For many people, the fact that they get such tools without paying a dime is a selling point for the JVM vs .NET.
On my type of work, the tools are chosen by the customers, not me. So usually .NET in Windows only shops, JVM languages in heterogeneous shops, and a little sprinkle of C++ via JNI/Interop if really required.
http://beta.gitsense.com/index-dev.html
Note the test drive feature isn't working yet. I'm hoping to have this working in a couple of days. The try it now feature should be working and for that I create a 512MB digital ocean VPS instance for each trial request.
It's important to note my software doesn't use any web framework ... other than what I have built myself. This is probably one of the reasons why my program has a smaller memory requirement.
Everything is pretty much one layer above the servlet/rest layer. And the only time my program becomes memory hungry is when I do the initial indexing but once that's done, 512MB is more than enough to keep it happy.
If you know Java, I would personally use it for your side project since python will be unable to match it performance wise.
Edit:
I also forgot to mention that my product uses 3 JVMs. One for the webserver, one for my worker process, and one for the indexer.
I find that Java and the JVM is just something that you don't talk about, which is why it's never going to be fashionable. Useful yes. Fashionable, I'm not sure.
And, "code fashionista"?
Hah, give me a break.
Python actually predates Java. I can't tell you how many times in the period 2005-2009 people derided me for using a "scripting" language for real work. All the "real programmers" used C++ or Java, of course!
Then, in 2009-2013, everyone suddenly realizes, oh, perhaps we don't need 200 classes per 1,000 lines of code and perhaps we don't need an IDE to that vomits boilerplate all day long and perhaps static types aren't such an important thing and perhaps generics are overrated and perhaps programmer time truly is much more expensive than machine time, ...
and, now I'm a "code fashionista" for still using Python for production projects, 6 years later? The "scripting" language that's so non-serious that it's used by thousands of production large-scale systems and scientists the world over?
Yes, that one -- the "fashionable" language. The one that isn't fussy and just gets work done.
Also, "everyone" is just most people in web startups, which are a very small minority of software developers with very specific needs. They usually work in small teams, so languages designed to help with large project management are not a requirement, but a very fast turnaround is. So, sure, Python is better suited than Java if those are your requirements. This is still just a tangent to the JVM discussion.