*Can produce a standalone executable
Most languages can do this in some form or another. In the case of languages like Python, your executable is actually a portable interpreter plus the source code. This isn't always terribly efficient, however.
Now, the question is, what exactly do you really mean by "standalone"?Does Wallmarket count (requires .NET and the VB powerpacks)? Any application that uses a library in the host OS? Or only programs that can run without an underlying operating system? 'Standalone' could mean a lot of things.
*Speed
Depends on the context and the sort of program! Different kinds of applications face different sorts of bottlenecks. Different environments, methodologies and languages offer different tools for opening them up.
*Memory usage
Theoretically, C++ can be very RAM-efficient. But in practice, humans working in C++ are prone to creating memory leaks (where unused memory doesn't get de-allocated). This eats up RAM quickly. For that reason, a language with garbage collection might mean better footprints for those who don't want / can't afford to hunt through pointers and the like.
*Popularity/commonness/ease of finding coders
...Again, it depends. Some languages better suit certain sorts of problems. If you're writing an object-orientated application hosted on a webserver, you'll find a lot of devs who expect to write a Java app and run it in Tomcat. If you're writing a number-crunching algorithm for a laboratory, you'll find lots of FORTRAN diehards. For mission-critical military systems, you could be working in ADA. Embedded machines in industrial processes? It's likely to be direct ASM.
It varies.
*Ease of finding and fixing bugs
As I keep saying, it varies. Different sorts of problems pose different sorts of bugs.
*Tendency to produce bugs
Hmm. Memory management in C++ can be troublesome if you're not careful. But there's no language that can compensate for carelessness.
*Ease of use
Define 'ease' and 'use'! And don't confuse 'ease of use' with 'ease of learning'. Some people seem to find object orientation a bit troublesome at first glance, but it actually makes modelling certain problems a lot simpler. Others fear pointer arithmetic, but again, once you understand it, it makes working with odd data structures pretty straightforward.
*Ease at which one writes good code (does it make it easy, or at least not difficult, to be a good programmer?)
Python enforces quite a few good conventions. Java stops you having to worry about memory. But the question is: wouldn't you rather have the freedom to fail (and learn from it)?
*Availability of resources and libraries and whatnot
C++, hands down. That's probably the only straight answer you'll get from me in this entire post.
*Quality of resources and libraries and whatnot
C++ has some great resources.
*Ease at which you can find the appropriate resource or library (or ease at which you can make your own)
I've only really written my own libraries in C++ and Python; both made the process very simple.
* [Implicitly] Which language should I learn?
C++.
With C++, you can learn about manual memory management, object orientation, procedural programming, and use the wealth of libraries to develop applications that work in a dizzying array of contexts. You'll be able to easily produce static and linked executables well optimized for a variety of platforms. You'll find moving to Java straightforward and you'll gain a lot of freedom as a developer. Granted, that includes the freedom to fail - but as I said above, that might actually be a good thing.