Don’t laugh, but my favorite is FORTRAN. It’s simple and many engineering aps are still written in it.
Simplicity could mean a couple of things. For some people FORTRAN has what they need, and nothing extra to confuse things. It’s like a remote that only has the buttons that I need. It could also mean something else: additional complexity and power that is hidden from the user. The analogy would be that an automatic transmission is simpler than a manual one – from the perspective of a user, not from the perspective of a car-manufacturer. If one wishes to use some of the libraries that are available for FORTRAN, it could be more powerful than other languages.
Libraries! But, that’s not part of the language. One could write similar libraries in another language and get the same power and simplicity. True; but the same is often the case with (say) the ability to handle various programming tasks. VB.NET is good at “getting things done” more because of the whole environment: the language, the class libraries and the IDE. The language is really a small part of the equation.
I would put Java in the same league, with the following difference. With VB.net, the bulk of what one needs comes from a single company that puts it together in a useful way. In the Java world, you have to assemble stuff from all over (and adherent’s will say that lets them choose “best of breed” tools). This means that in many realistic contexts one has to spend quite a while deciding on what combination of things is best, and assembling them together. High set up time. After that, its a breeze.
Recently, I played around with some PHP. Without the right set of tools, it can be a pain. However, with a good IDE, it can be a breeze. When one considers how much ready made code is available for it, it can be very “powerful”.
Also, CF, when iouswuoibev, “it demands more of my mental faculties”, he’s talking about the fun part, not the productivity part. It’s more fun doing things the hard way.
I use Java. For the work I do, I’d be happy using any other modern language that supports abstract data-types and sufficient mechanisms that allow “information hiding”. For me, the key is the whole infrastructure of libraries and tools around the language itself.
The best book I have ever read on the topic of programming language design is "Principles of Programming Languages" by Bruce J. MacLennan. [Wow! It is selling used for under $1 on Amazon. I think I bought mine a year or so ago for almost $20 used.]