I have coded a lot in Java, some in C/C++, Javascript, Python, PHP, etc,
and I must say that Mathematica is for sure my preferred language for prototyping and testing out things. (I do research in discrete mathematics).
Say what you want about Stephen Wolfram (I agree he has a lot of controversial views),
but Mathematica is extremely well-designed. All functions are named very carefully, so one does not have to guess. A lot of the stuff is indeed in the default namespace, but since the names are indeed long and descriptive, this is not an issue.
Another thing which is nice, is the built-in documentation, which is incomparable with any other language. Every single function has lots of examples, which is a great feature when learning a new language.
Mathematica is just very consistent - this is a requirement if every single function should be in the default namespace. Another consequence is that all functions, objects etc. must be compatible with everything else. It is very easy for libraries/frameworks to force the mindset of the creator onto the user, and the philosophy might disagree with the general idea of the language. Having the 'everything is public' mindset, really does help keeping things consistent.
I suggest actually looking at some Mathematica code and read a bit about the main ideas, and disregard the personal opinions of its creator.