February 15th, 2009, 1:52 pm
The most used language in the world is BASIC VB is the most common programming tool, but depening on how you do the numbers it is one of the C++ family of languages, and in practice C/C++ is sort of nearly one language.Basics otrher than the VB family are now uncommon, and VB itself is in serious relative declien since the dreadful mistakes made with VB.NETJava comes first or second depending upon whether you count C and C++ as distinct languages.Strong typing is indeed a benefit of C++, C# and Java, but "benefit" in this context requires that you know what it is you want.Sometimes it is convenient to have collections of things that are of different types, and C++ can make this unnecesarily complex.But by warning you that putting the result of dividing two floating point numbers into an integer you may be buying trouble, strong typing is good.I am always worried by people who say "language X is better than Y"To me that is like saying "a hammer is better than a screwdriver".You can of course use each for all the purposes of the other, but it will be clumsy and more effort.You should pick the language that expresses best your understanding of the problem, and what you want the computer to do about it.Functional languages like Haskell or F# often express mathematical ideas more eloquently than procedural languages of the C++, C#, Java, VB/Fortran style.C++ gives you finer control over what happens, at the price that you must control more things.That's not good or bad, just a point on the power vs easy curveI've driven Excel through every form of documented MS interface, and one undocumented one, and still go for VBA first because they work well together.VB.NET and Excel I hate, a lot.Also, a grave but common defect in the programming technique of most quants, is that they "think" in one language.That's very limiting, you would not call someone a competent or useful quant if all he knew was PDEs, not matter how well he knew that body of maths.The procedural languages are shit whenever you want to express things of the form "for all X...".Yes, they can do it, mostly, but it is less cleanly expressed, and occasionally vastly less efficient, even with their advantage of machine code compilation.Thus I encourage people to learn more than one language, even if they are only going to be Excel VBA jockeys or C++ geeks.When I write VBA, I''m thinking in a mix of other more complex languages, and that is the way you should be thinking.