Comparing programming languages is like comparing athletes... Tiger woods is a heck of a golfer but probably wouldn't survive 5 minutes on the field in the NFL, though I'm quite certain that there are NFL football players that could get a great score in golf though maybe not as good as Tiger's. Languages are powerful at what they were designed for.
For example ASM languages can be extremely fast and give you ultimate power and is basically required for the development of an operating system, but can only run on a single processor type. C was designed to be a systems level language so it is fast and gives you quite a bit of low level control , though C must be compiled for each system separately, is prone to programmer error and is almost impossible to maintain on a large scale. C++ being an extension of C has all of its good features as well as other things that give it a whole lot of power such as templates and multiple inheritance. C++'s power comes with a price though. Not only does it have C's weaknesses the complexity of the language makes creating a compiler for the language a nightmare. The upper ones on top of that that are Just in Time compiled or interpreted(C#, VB#, Java etc) come with a whole lot of features that make them awesome for application and web development. Garbage collection as well as the ability to quickly build UI's with WYSIWYG... So really in the end Michael Phelps would whoop Jimmie Johnson in the pool, but would also probably lose to Jimmie by several laps.
I know C, java, delphi and have worked with assembly. C is good for embedded programming. Assembly is powerful too, but the development time can be too slow. Although I program in java more than I used to, I'm not particularly fond of it. I prefer using Delphi. It's very easy to use and it makes programming large scale apps simple. I've never used Delphi to write drivers or anything in the way that I have used C before.
I'd still like to learn C++ and C#, but I'm sure they will go quickly with my current knowledge of C and java.
Further, I know php. I can't compare it to any other server side web-dev language, but so far I am very content with it. It comes very naturally if you already know C or java. There are also lots of support on the internet available for it, and it is a fast growing language. I believe it is very flexible!
The most powerful? Depends what you're looking for.
If it be speed, assembly and pure binary are easily the fastest, but the hardest to learn. As for simpleness, stuff like BASIC, Pascal and GML are what I have found easiest. As for the number of things a language can do, there's a lot of different languages that could easily qualify for this.
So the most powerful really depends on what you call powerful. I mean, if you think powefullness is to do with ease of use, you wouldn't say binary.
Personally, whilst the most powerful for me would be C/C++, I'd program with Delphi, VB.NET or Game Maker.
None of those three are powerful in any way aside from ease of use.
But Game Maker makes it easy to, well make games, and it kinda counts as programming. VB.NET is simple, is easy to quickly create things with, but I wouldn't use it for much more than prototyping. Any half decent programs would be in Pascal/Delphi.
Wait, this has nothing to do with the most powerful language
I would say the C family, mainly because it supports most OS's, supports commandline (for windows), can help in alot of situations (for example: Mass clicking) and it also is used to make most software for Daemons like FileZilla's FTPd or unrealIRCd. So that's why it's the most powerful in my eyes
I would have to say C++. It can be used for low level programming like C, and it can do higher level programming more like Java. It can also link with many languages. It can interface with C, Objective-C,C#,Visual Basic.NET,ASP.NET,The D Programming Language, and Java all at once if you want to make it do so.
Hmm, I use C for low level programming. It might not always be as fast an efficient code as you can write with assembly, but the coding and development process is many times faster. For most practical uses C code is only neglibly slower, and therefor it's much better to use C than assembly. However, assembly is really useful for the cases where you need every bit of processing speed you can get! But then you must also be good at it!
There is no One True Way. The reason there are so many serious languages (and here I deliberately ignore the entire world of esoteric programming languages) is because they each serve their own purpose.
There may be times when you have extreme performance and memory constraints, such as when working with embedded systems, and in those cases you'd want to be as close to the metal as possible. For that, you have Assembly Language (or direct machine code if you don't want to play with mnemonics) and C. (A good optimizing C compiler, by the way, can often produce tighter machine code than you can in assembly.) Most of the time, though, the skull-sweat involved with manually allocating and deallocating memory and resources, managing pointers and pointers to pointers, and watching bounds and buffers is counterproductive to the whole exercise -- it's best to leave that stuff to proven bottlenecks in large code chunks, since optimization is often a source of what's usually referred to as write-only code.
For the most part, you'll get more done more quickly and more robustly in a higher-level language. Productivity goes way up with the expressiveness of a language. I wouldn't want to do a whole lot of anything ordinary in APL, but if I found myself having to do a lot of matrix math for any reason, there isn't a better choice -- the language speaks sets and matrices natively.
When it comes right down to it, though, we usually end up programming in the language we have to use. Sometimes that means using PHP or a .NET language because that's what's available on the web server. As often as not, we'll wind up working in .NET or Java because that's what the corporate infrastructure runs on, or that's what the smart phone runs. Again, that doesn't make the language good, it just makes it the language you have to use.
There's not a lot you can't do with most languages; to some extent they're interchangeable. It's only when we really have a choice (solo projects or startups we're in charge of) that we really have a choice, and then that choice should be based on what's best for the scale and intent of the project, not on some unreasonable belief that any language is "the best". There is no "best". There is only "the most appropriate".
C and C++ hands down. I really like PHP but it isn't the best just pretty friggin' close to perfect because there is always a way to do what I want with it. It's versatile for web applications. C and C++ is the best for applications in general.