Still lots of scientific stuff using Fortran. I don't know that C ever managed to equal the speed with which arrays can be processed.
VB and Java have a lot of overhead that can be dispensed with - GC & boundary checking being the most obvious. For many, if not most, efficient programming can be had in these languages, but it does require attention to detail.
One thing I've found is that speed is a tricky problem. Inefficiency and volume of code are not necessarily in direct correlation. You can have routines that are very inefficient but unless they are at the heart of the speed problems, they don't cause a significant degradation. Then again, you can have a routine that is fairly tight be the culprit because it is directly in the path of bottleneck.