"The apps you see written in other languages besides C# and Java are just generally tiny little micro apps barely worthy of being called an actual "application." They have small heap sizes, few allocated objects for the memory manager to deal with, and many are short-lived tools that will start and finish very quickly."
Hmmm, that sounds like better memory management to me. Good programmers have been writing small modular programs which do not live forever and work well together to create larger systems for decades. There are many reasons for this and easier/better memory management is on the list.
Java programmers/system designers seem to be the only programmers in the world who do not take advantage of this model. Maybe because with java, no one ever wants to leave the JVM, doing a fork from java is considered a horrible mistake (and will take many servers down)? This NIH java disease is the reason that many java apps have horrible memory problems (a program already exists to do that, well, it's not in java... rewrite) Without using pipes and forking, it is hard to create large robust modular programs in any language. Only java programmers would even dream of it.
So, it is not java so much that is the problem, but the mindset when using it: I cannot fork, that would not be portable...(and uncool?) Not to mention the slow JVM startup times.