Assembly or direct machine code. Everything has to eventually be converted into something the processor understands. Either that or any code run with root.<p>A little less flippantly: what you mean by "powerful" really does make a difference. Specialist languages, like R or Erlang, are more expressive in their fields. While other generalist languages like C/C++, Java, or Python cover a broad spectrum of use cases. It really depends on what you're doing, and what you're comfortable programming in. Usually learning one of each of the basic forms of languages will give you a good understanding of what will fit with what you want to accomplish. The language is just a tool. Don't get stuck thinking that a sledgehammer is better than a pair of needlenose pliers.