The mentality that there can be only one programming language is as illogical as believing there should be only one flavor of ice cream or only one style of automobile! There’s a reason they make both sports cars and family cars. Different programming languages occupy different niches in the programming world like different kinds of cars occupy different niches in the car world.
The C++ language is the child of the C language, which is known for small compile size and blazing execution speeds. Which explains why it was used for scene analysis and route planning in the Mars Rover autonomous driving system. Computer scientists have unexpectedly had more difficulty making computers understand visual information at the speed and richness that mere humans can (go figure, something to do with a third of the human brain being used to process what we see)! Which means that the visual interpretation function of the Rovers software would eat huge CPU cycles. It therefore needed that which is lean and mean. Enter C++, the son of C. To get back to my automotive metaphor, C++ would be like the high performance sports car of the automotive market – low weight, high power, maybe a 2 seater only.
But Java is never just a 2 seater only! Java is like the bus, which can transport many people happily at once. Java shines when a project is going to require many developers – It makes it easy to compartmentalize developers off from each other, to manage changes coming from many directions simultaneously, to make substantial future functional changes, and to document, document, document! But, like the bus, the performance of Java around the tight curves and up the hills is not to be compared to a sports car. Technically, while Java is also the son of C because of the language syntax, C++ is a more pure son because of the continued focus on speed. In order to compartmentalize different developers, Java had to introduce more code layers for the program to pop through, thereby eating considerable extra CPU cycles. Therefore Java will never be the speed demon of computer languages, but it has its place as the bus has its place.
To continue my automobile metaphor, the Visual Basic language would be an automobile that does everything possible for the driver so that he doesn’t have to do it himself. Of course there would be cruise control, cruise control is standard with VB. Navigation is done with a gps + computer system that blinks your dot on a street grid just like Dick Tracey. That way the VB user always knows where he’s going and never gets lost and loses time because of being lost. All of which saves programmer time and programmer time is expensive so the development cost of the programs functionality is greatly lessened. However, because of all of those VB layers that are necessary to do all of that work for the programmer, the program is going to have a fat memory size and a slow running speed (compared to C++). But that doesn’t matter if you are a business network with mostly underutilized CPU cycles and RAM memory. Which is probably true of most business networks. In that case the programmer hours you save by using VB will be offset by no significant loss at all. The slower speed will not be noticeable by the end user and the extra memory used will be taken out of that which was excess capacity to start with. We might say “VB is good for business, but bad for Mars”.
Because php was the first language built specifically for the web, it is hands down the best language for building web applications. It takes much less code to create equivalent applications using php than Java and the code will run far faster . PHP comes with a huge range of functions related to programming in a web environment. It plays well with a lot of databases, and it supports all the major web security standards. PHP has built in facilities so that it plays well with HTML, integrates web FORMS and URL variable passing, allows real-time creation of graphics to be displayed in web pages, and far, far too many other features related to web development to list. So PHP is the best language for programming on the web. Unless of course if your web project is going to require a large team of programmers. In which case you might be tempted to trade the efficiencies of php for Java’s ability to lock down any loose programming canon that might be on your team.
The point is that there will never be only one programming language in the computer programming language world. Different computer languages appeal to different niches like different cars appeal to their different niche markets. There will never be only one style car, there will never be only one color car, some cars will always be more automated than other cars, and etc. With the greatly increased richness of the home computer and the business computer environment over the last 10 years, the number of niches available for different computer languages has increased not decreased. There are languages devoted to multimedia display (smil), languages devoted to browser animation (flash), and I haven’t even mentioned CNC, the programming language devoted to controlling machine tools. How about if I compared CNC to C++ and asked you which was the better language? Talk about comparing apples to oranges! Which is better, an apple or an orange, or does it depend on what mood you are in or on whether you want to create a windows interface or to create a metal part?