I know a bunch so I will take a crack at it.
I don't know.
There are countless programming languages around, with new ones getting invented each year.
Some are created at universities - like BASIC, which was invented at Dartmouth, and LOGO which was created by MIT under a grant from TI. Some are created by government agencies - like COBOL and Ada, which were both created by the US D.o.D. Some are created by big companies, like FORTRAN which IBM invented.
As you are probably getting starting to infer, some very credible organizations with some very skillful people working for them have created some very different computer languages.
The reason is that you can only answer the question "which is best" relative to some point of reference - which is "best for what?".
If you do not have a what, then you cannot pick which is the best for it. There is no languages that is best for "whatever". Sure, if you only know one programming language, then maybe that one is best to use in your case. If you know two, pick the lesser of two evils. But chances are many languages have some kind of problem they are best at solving.
You have to look at which language is best in context.
1. WHAT is the PROBLEM you are trying to solve?
2. WHAT DATA STRUCTURES most naturally represent the focal point of your problem, or a natural means of solving that problem.
3. HOW READABLE is the language (okay, this in and of itself to who is reading it, so helps if you will know that too).
Okay, so now we have simplified the problem. What you have is a multi-variable qualitative and quantitive formula you have to solve for each potential language, for your particular problem, given each possible set of resources at your disposal and working under whatever constraints you have imposed on you or chose to limit yourself to.
Here are some heuristics some people use:
1. Just pick what "everyone else" is using. For professional IT programmers that is often Java these days, was C++ a decade ago, was C a half decade before that, was Pascal a half decade before that, was probably some particular assembly language or COBOL a decade before that.
2. Just pick the one I know, or current team (if there is one) knows. Maybe LOGO if you are teaching elementary school kids. Maybe FORTRAN, C++, Pascal, or FORTH - if you are working from engineers who went to college during particular eras of the past 20 years.
3. Just pick one that will be fast enough; if speed requirements are crucial/difficult. That would have been assembly language a couple decades ago but thanks to Richard Stallman's efforts and the research of lots of academians, these days C/C++ are probably just as fast. Java is not far behind them in a number of cases. A BASIC or Logo interpreter could be too slow for some things. A ten year old Java JVM interpreter would be too slow for things you can use a modern Java Hotspot translator JVM for today.
4. Just pick the cheapest one; like the one that came with the computer, in bygone days at least (e.g. BASIC). However, that depends on what you have already got, or at least it used to. These days, there are hundreds or thousands of full-fledged, open source language interpreters and compilers out there - so they are all looking pretty cheap. A few decades ago, it was not like that. Now it is. So weighting of this factor has been greatly diminished.
5. Just pick the one with the best programming/support TOOLS. Well, these days they all have pretty good support tools. The IDEs and diagnostic tools for Java are quite awesome right now. LISP and SmallTalk had amazing tools a couple decades ago, if you could get your hands on them, but these days they probably have not kept pace in that area and there are so few LISP programmers out there relative to Java programmers. So, both these facts probably moot this discriminator.
It takes a little while to learn any programming language and a lot longer to develop mastery of it. Until you get at least pretty good at it, which most likely is not your first day, you will probably make mistakes using it from time to time due to misunderstandings. That is in addition to outright accidents like typos or misreading things like requirements and standards specifications.
So, if you are going to do the programming, and you are going to be starting your coding very soon, you should probably limit yourself to a language you already know. Otherwise, you will spend your time learning the programming language instead of getting the assignment done.
If you are doing the program for your own pleasure - like an open source project - and you can start and finish whenever, you might want to look at those other factors.
If you are an architect on a big project and the staff to do the programming (coding, debugging, maintaining) has not been hired yet, then you had better look at those other factors. And also consider how much programmers in each of those languages cost, how long it takes to find enough of them, how long that language is likely to be supported by the tools and computers you have to support it on and whether that will last as long as the lifetime of your product.
So again, there are complexities and more questions.
Personally, I prefer Java for most IT projects. It is a nice, general purpose language with lots of prechecking done for you at compile time. It greatly resembles the C and C++ languages I have used off and on, along with it, during the past twenty years. It also includes the object-oriented programming (OOP) features I like. Plus, now it supports templates which can save a little time that otherwise would be spent typing boilerplate code over and over. The tools for editing, debugging, and documenting it are quite awesome. The testing libraries and tools for it are great. In fact, it has so much open source software for it now, I heard it recently became the most common programming language for projects on SourceForge - displacing C or C++.
If I wanted to look up some info in an SQL database and that is all, I might code that directly in SQL and put it in a .sql file and give that to someone, or else write it as a stored procedure for whatever brand of SQL server was being used.
If I wanted to solve a spreadsheet, I would just use the spreadsheet, not write a Java program to read the data and do an end-run around it.
If I wanted to do some custom interactive programming that would just run in a browser, I would probably use Javascript for it. Though in some cases, I would use a Java applet and it would make more sense to do so. In certain cases, it might make sense to do both Javascript and Java applets in the web page.
If I need to talk to some OS code directly from the web page, and I have to write custom code to do it; I will probably end up writing C, C++, or Objective-C (which I don't know yet!) - depending on whether the browser will be running in Firefox, IE on MS-Windows, or Safari on the Macintosh. Platforms and environment sometimes choose the language for us.
That is an exploration of what goes on in an experienced architect's head when you ask "which language" is best. Basically, the first words out of his mouth after you ask that are: for what?
By the way, beware of letting vendors make your choice for you. Take note that the Microsoft document I cited in the Sources for this answer does not even mention Java as a possible choice, although they do mention C++ and therefore Java programming you write should be able to "plug in" to the .NET environment as necessary, through that.
So while you might want to code in Java so your program runs in many different platforms and environments, Microsoft might not want to tell you about this option. They might want your program to only run on their operating system or in their browser - which only runs on their own operating system now, poor little thing.
Vendors can be an excellent source of objective, helpful information - or they can be almost dishonest or misleading. There are some vendors that have a reputation for being one way, and others that have a reputation for being the other way. This is just one more curve that is thrown your way when you try to pick a programming language. Not everyone giving you information will be unbiased or even honest. Especially if they have a strong vested interest such as a profit-motive, which Microsoft certainly does.
Well, with this information you can certainly start some interesting conversations in the lunchroom with other programmers, can't you?!