An algorithm is considered efficient if its resource consumption (or computational cost) is at or below some acceptable level. Roughly speaking, 'acceptable' means: it will run in a reasonable amount of time on an available computer. Since the 1950s computers have seen dramatic increases in both the available computational power and in the available amount of memory, so current acceptable levels would have been unacceptable even 10 years ago.
Computer manufacturers frequently bring out new models, often with higher performance. Software costs can be quite high, so in some cases the simplest and cheapest way of getting higher performance might be to just buy a faster computer, provided it is compatible with an existing computer.
There are many ways in which the resources used by an algorithm can be measured: the two most common measures are speed and memory usage; other measures could include transmission speed, temporary disk usage, long-term disk usage, power consumption, total cost of ownership, response time to external stimuli, etc. Many of these measures depend on the size of the input to the algorithm (i.e. the amount of data to be processed); they might also depend on the way in which the data is arranged (e.g. some sorting algorithms perform poorly on data which is already sorted, or which is sorted in reverse order).
As a C++ programmer, in my opinion, C++ is by far the fastest language ever existed.
Open Source : C++ is open Source . C++ libraries can be ported to almost all the platforms.
Speed: C++ is directly converted in hardware specific binary , when compiled it is converted to direct instructions of CPU or Hardware Specific Object Code.
Power : If something works on very low level, and gives you higher access to CPU and your Process and Resource Manager, you can get higher control and also more raw power than somebody else has imposed upon you. C++ can work at that low level.