So, I have built and deployed a Grails app onto cloudfoundry.
And as I play around with examining instances & memory I start to wonder;
If my app's footprint is larger because of the technology I chose to develop it in, will it start costing me money sooner rather than later? Surely it must?
If that is the case, am I better off developing in an alternative language? if so which has the smaller footprint (python, ruby, node.js)?
Of course, costs should not determine which language I use, I should select language/framework on merits and personal preference.
But it is still a question I'd would really like to know the answer to.
Rarely is memory footprint a concern when it comes to selecting a framework. If we were so concerned we'd be using hand-rolled assembly code with everything aggressively compressed into memory like some demoscene coder. This is obviously not the case.
Even Rails, which tends to be fairly heavy duty, will only use ~100MB per instance. With 512MB instances going for approximately $20 a month, the net cost of each instance ends up being on the order of $5 when accounting for OS overhead.
How many programmer hours does it take to end up costing you more than simply buying a system with greater capacity? Probably a lot unless your time is free.
Remember you can always lease your own hardware for a fraction of the cost of using a managed provider, where systems with 64GB of memory can be had for under $500/mo. In the end that barely pays for even a small share of a programmer per month.
I'd pay attention to how much a given developer can get done with the framework you choose. Some frameworks will work better for you, allowing you to execute better. Sometimes paying for extra memory is a way to offset sinking more time into development and optimization, things that are usually premature until you're dealing with server bills in the tens of thousands a month.
Memory footprint will certainly reflect on your PaaS expenses. But to tell you what to use is hard without knowing more about the project. Node.js per se is great, but it's not perfect for every case. Python is very friendly for development, and has ok memory usage, but again - it all depends on what you're doing.