• Please join us via Zoom to learn how the Options course is helpful to graduate studies and interviewing for quant finance internships and full-time roles.
    May 16th, 2022 - Information Session - Intuition-Based Options Primer for Financial Engineering Certificate

7 programming languages on the rise

DominiConnor

Quant Headhunter
I note that Java is not one of them...

CUDA is an obvious one for quants, and I perecieve that Python is going to be increasingly useful, but remember Infoworld is looking at the general IT industry so don't believe for a second that C & C++ skills are not going to be important.
 

Lyosha

Psychic in Training
javascript?!? I guess only by default... that language is a royal pain to work with...
 
Is JavaScript relevant to FE ? I'm thinking if I should put it into my resume. What about SQL, I read somewhere saying quants nowadays are using SQL, what do they use that for ?
 
I work with JS day in and day out in my current position. The language has really come along over the years (and ECMA script in general, look at AS), and the frame works out there such as JQuery are really useful.
With HTML 5 and the next Gen of browsers on the way, I can see JS playing an even bigger role (go check out some demos of the cool stuff you can do if you are interested).

Not sure how it would work with Financial programming though? I guess if you are building web based GUI's it could be useful.

I've downloaded the R environment as I have a stats class this Fall and hope it will be a good tool to use alongside the course material!
 
For all the time I spent coding in R during my master's, I have yet to see anyone care about it, besides Google. But Google canned me despite me passing both phone interviews, and I haven't been able to get back in the running since.

R is fantastically friendly, though. Plus, it's free ^-^.
 
COBOL, are you kidding me?

This is one of the most outdated language that I have ever come across.

I know a person who studied cobol in his engineering about 10 years back and even at that time everyone in India considered this language to be obsolete.

There were hardly any professors that universities in India could find who knew how to teach cobol.

Please correct me if I am wrong. :-k

Does cobol have any significance at all?
 
CUDA is not exactly a language, but a way to distribute computation amongst the multi GPGPU cores. It has library for C/C++/Matlab as far as I know.
Probably that's why it is listed there but not counted as a language.
 

Daniel Duffy

C++ author, trainer
Cobol is used for systems involving

paying your salary
administering your pension plans
medical databases
etc.

Apart from these I don't think new stuff is being in Cobol; a lot of front-end is Java.

Many years ago I was a certified JSP Cobol developer. Cobol is one of the most successful languages of all time, like Fortran. Rear-admiral Grace Hopper has left a lasting legacy.

Python seems to be gaining in popularity for scientific/numerical work.
 

DominiConnor

Quant Headhunter
Cobol is also used for air traffic control, yes really.

R is widely used in banks, but no-one "cares" about it because if you can do this sort of work, it is assumed that you can pick it up on the way.


Kartik may have missed the point.

The list of languages was those for which the supply and demand is moving in favour of people with that skill. That's a different question to whether the language is "good".

The Cobol market reflects the fact that very few people put in the effort to learn it, but that there is a still a colossal amount of it in use. That code is really important, and would cost a vast amount to replace, indeed discovering all the business logic and reasons why it is the way it is would be hugely difficult. The chance of the replacement working as well is very small because the old system has been tried and tested at great length.
That's not unique to Cobol, applies to Fortran, and has happened to VB faster than many expected.
It will happen to Java, and the m0ost important thing to realise about that is that it will happen within your career and suxch is the pacew of change, the thing that replaces Java which now currently does not exist or has a user base <0.01% of programmers will also go that way within your career.
Maybe even the successor to that...

Thus Merrill Lynch has a very important fixed income system based upon Cobol, and JP Morgan is critically dependent upon a system written in SmallTalk 80, (the clue is in the name). I know people who've been working on the same C/C++ program for 20 years in a very large bank.

As a simplified example for why you leave it alone:
Some bond yields are worked through 360 day years, but someone who didn't know that might see it, and think it a typing error, changing it to 365
That's close enough to produce reasonable results, but far away enough to cost real money, and finding the bug later could take man months.

Of course people here know about the 360 day count issue, but are you really sure that all instances of 360 refer to bond day counts , in a program with hundreds of thousands of lines of code ?
You feeling lucky punk ?

Also, just to make it more fun, different languages calculate the same expression differently. Some will give different results for expressions as simple as

x = a* b /c

Also if b and c are integers but a is floating point, they may choose to give different results even if they apply the same rules of precedence. But not always

JavaScript is a gravely misunderstood language, not really being a form of Java for a start, and it can express things that are really hard to express in any compiled language.

Some languages allow "computed goto"
In VB, C, C++ Java et al you write

goto label:

label : DoStuff

Which is what was chosen for C and so function pointers were set up to give a 'safer' version of jump tables, necessary for operating system implementation.

A goto is of course a jump to a different piece of code which lives at some address, hence the function pointers in C,C++, and VB

But some languages allow you to go to the result of any expression that returns an integer, thus

goto a*b+1

is perfectly valid (done it myself)

One language was more friendly, and allowed you to use floating point values so that
goto Sqrt(x)
worked
But of course that meant you sometimes tried to jump to 7.99999
So to be helpful, it would goto the nearest line of code.
Think about that for a while, if it doesn't hurt your head then you will never be a real programmer.

There is the infamous "wormhole bug" discovered by my gang at IBM's labs, where some malformed function declarations in C could cause you to return to a different function than the one that called you.
Turned out to be in some working code, (OK, nearly working). You port that code to C++ or C# and it will behave correctly, but the program won't work.
I could talk about this sort of stuff for days, and it's not even what I do for a living.

Fortunately the wormhole bug can be watched through a standard debugger, without having to use an In Circuit Emulator, or other hardware assistance, but many interesting behaviours disappear under the debugger. A good % of all programs in use today will not work if they aren't compiled for debugging support, trying to porduce a release version will result in a program that won't run, for no obvious reason.

A big % of the asset value of any firm is the software that runs it, you screw with it at your peril.
 
Thanks for the clarification guys, I just got to know that my sis studied cobol in her computer engineering too. She said she had a lot of difficulty using cobol. She says it is the worst language ever.

I found one interesting quote also about cobol on the internet.

"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." - Edsger W. Dijkstra

He's the guy responsible for the shortest path algorithm (also known as Dijkstra's algorithm), which we all know.
 
I studied COBOL for two years between '97 - '99. There was a lot of COBOL guys around then doing work on the Y2K issue (and another date issue to do with 9999). So it was useful to learn the language from an academic perspective at the time.

I didn't see the language in use until around '07 at a Bank in London, where is was being used in the pay roll system.
 

Daniel Duffy

C++ author, trainer
"He's the guy responsible for the shortest path algorithm (also known as Dijkstra's algorithm), which we all know. "<!-- / message -->

And much, much more

http://www.cs.utexas.edu/users/EWD/


If you read Dutch, here is an original article on graphs by ED "Korste bomen uit een graph"

http://www.cs.utexas.edu/users/EWD/MCReps/ZW1960-001.PDF


Everyone talks about OOP but ED was the founder of STRUCTURED PROGRAMMING

http://www.youtube.com/watch?v=72RA6Dc7rMQ&feature=related


//

The anecdote goes that Edsger Dijkstra got the idea when sitting along the canal in an Amsterdam cafe on a summer's day during his time at Mathematisch Centrum.
 

DominiConnor

Quant Headhunter
Dijkstra was talking about programming, I'm a headhunter, so I talk about making money from it, which are often very different things.
 
Top