Absolutely awesome. I've been rewriting most of my financial analytics code in Scala & its a genuine pleasure to see code sizes reduce 5-6 times & being a lot more expressive at the same time, not to mention speed improvements.
Just yesterday I had an interview for a developer position with a hedge fund where the partners used M$ Excel, M$ SQL Server, M$ VBA macros and a bunch of Bloomberg terminals for the datafeed. I had prepared a presentation that advocated Scala as the primary toolset, Hadoop on the backend & a couple of DCOM hooks ( JIntegra ) that got data in & out of the Bloomberg & the rest of M$ world without getting all tangled up in M$ land.
Must say I didn't get very far. "Seems too cutting edge, no commercial support, we only have few 1000 rows so why not just use a SQL Server, what about front-end solutions for this newfangled language, does Scala do reporting, does Scala talk to Bloomberg, do other IB's use Scala, we'll use Scala when an IB starts using Scala " were some of the concerns I got.
They haven't said no, but I have a feeling they'll end up hiring a dotNet veteran who'll happily code VBA macros till the end of time instead of taking a chance on a platform that'll genuinely change the nature of s/w development as we know it.
Its amazing to see people happily betting the farm on CDS defaults of XYZ company, where they stand to lose a couple hundred million dollars if the bet goes wrong. But the same folks won't bet on a promising new technology because its too new & has no commercial support, preferring instead to stick with 30 year old M$ tech due to comfort level. The chance of a loss here is several orders of magnitude lesser, yet they don't get it.
I've been rewriting most of my financial analytics code in Scala & its a genuine pleasure to see code sizes reduce 5-6 times...
What did you write your analytics code in before?! Most quants use R, Matlab, q/kdb+, OCaml, Python, etc. I can't imagine an analyst would ever use a language like Java or C++ for research.
M$ Excel, M$ SQL Server, M$ VBA macros
Also known as: what most of Wall Street uses. Are you sure you want a career in this industry?
what about front-end solutions for this newfangled language, does Scala do reporting, does Scala talk to Bloomberg, do other IB's use Scala
All of which are legitimate concerns. Did you bother to address any of those?
As the others have mentioned, banks aren't looking for "fast" or even "productive"; they're looking for "reliable". Wall Street doesn't chase technology the same way Silicon Valley does. Remember the FourSquare outage (MongoDB) or the numerous issues with Twitter back in the day (Ruby on Rails)? Banks need to have better uptime than that.
We used to talk longingly about using strongly typed languages when I was at an IB. We mostly used perl for munging data and SAS for actual heavy lifting. It would have been great to have the compiler yell at me for adding a return to a dollar value or whatever.
Were you at ETL? The prop group I was in at Morgan used q/kdb+, which was great for a lot of things but did cause some trip-ups that static typing would have prevented. My group eventually shut down and I left the firm, but I had heard Morgan was looking into F# to use company-wide. (I used Ada in a previous life, so I know full-well the benefits of strong typing.)
Dude, chill. I have worked on Wall St for over a decade at this point . There is a huge, HUGE diversity. Some use toolsets they are comfortable with, others with what they get interested in ( after it crosses a certain stability threshold ofcourse ). BTW R itself gained mainstream acceptance in 2009+. I can imagine you saying in 2008 no quant in their right minds would use R, its just too new. It was new then, but it's defacto now. That was true of OCaml which Jane St uses almost everywhere now but didn't do so just a few years back. Ofcourse there are quants using C++ for all their risk analytics - 50% of my classmates got hired on that very credential! As to Java, I have personally written trading software for IBs in Java way back in 2002 that used pricing modules for all the instruments also written in Java. Guess how mainstream Java was back then ?
Finally, there are actually fairly decent risk analytics DSLs in Scala out there.
Other than reporting ( you really can't compete with SAP/Crystal Reports on that front), solutions in Scala address the rest of your legitimate concerns using DCOM hooks to pre-existing C libraries & DLLs. Why reinvent the wheel ?
I don't see why you are getting so worked up about my "inexperienced rant". I simply described a real-life situation I encountered which I felt was funny viz. highly risk-taking alpha personalities getting hugely risk-averse when it comes to something quite innocent like language adoption.
The reason I criticized your post (and I'm not the only one)
is that I don't want a young'un to read this and believe that's the right way to be thinking about career or business decisions.
You interviewed somewhere that isn't for you. So try someplace else. Whining on the Internet about "teh M$" doesn't make you look like a brazen intellectual.
Argh! If I'm in the midwest now can't I have worked in NYC before I moved here (which is what happened btw, now that you are so curious about my antecedents). And M has taken so many $ from me in the form of numerous OS updates & backups that I can justifiably call them M$ :) Should one be an intellectual to play around with scala ? Jeez.
Alright, truce. I thought I had remembered a Scala career question on Quant Stack Exchange (I'm a moderator there). So there are a couple finance shops that use it:
They are getting paid to take the risk on financial instruments, because they're experts at it. They have no need to take any risks on their technology infrastructure.
They "think" they are experts at it. Yeah. If they were experts at predicting which ones would fail, they would simply buy shitloads of puts on xyz & wait it out instead of hedging themselves in case xyz doesn't default.
Also, you give them too much credit when you use words like "technology infrastructure". I've been to many of them & the extent of their infrastructure is RAID & the extent of their technology is writing a for loop in VBA.
I somewhat agree with you, but you have to admit when you see 'M$' you instantly gleam an assumption of what the person thinks. In that respect its high context, and like I said you have to admit that. Especially so if it illicits a strong emotional reaction to rebut it's use in you no?
Say you decide to code up a bunch of risk analytics in Scala. Say Scala doesn't do it for you 2 years from now. You really haven't lost anything - just hire a bunch of VBA jockeys & they'll migrate you back to Excelland in a reasonable span. This isn't complicated device driver code where module A invokes module B with assembly address C...More like convexity on the 10 year swap is different from 2 5 year swaps & that difference can be exploited with a bigsize bet on payoff X and a ratio hedge in case bad things happen. Whether you do all of the linalg/stat/regression scenario analysis in Excel or call a Mathematica routine from Scala should be irrelevant, you get the same answers. So I simply think the risk-reward ratio is out of whack. You're willing to take huge risks on stochastic variables 10 years out into ther future but unwilling to touch a programming language/platform because its too new, even when there's a clear-cut migration path. Seems silly. Don't see how that attitude translates to being cynical about finance.
Comments
Absolutely awesome. I've been rewriting most of my financial analytics code in Scala & its a genuine pleasure to see code sizes reduce 5-6 times & being a lot more expressive at the same time, not to mention speed improvements.
Just yesterday I had an interview for a developer position with a hedge fund where the partners used M$ Excel, M$ SQL Server, M$ VBA macros and a bunch of Bloomberg terminals for the datafeed. I had prepared a presentation that advocated Scala as the primary toolset, Hadoop on the backend & a couple of DCOM hooks ( JIntegra ) that got data in & out of the Bloomberg & the rest of M$ world without getting all tangled up in M$ land.
Must say I didn't get very far. "Seems too cutting edge, no commercial support, we only have few 1000 rows so why not just use a SQL Server, what about front-end solutions for this newfangled language, does Scala do reporting, does Scala talk to Bloomberg, do other IB's use Scala, we'll use Scala when an IB starts using Scala " were some of the concerns I got.
They haven't said no, but I have a feeling they'll end up hiring a dotNet veteran who'll happily code VBA macros till the end of time instead of taking a chance on a platform that'll genuinely change the nature of s/w development as we know it.
Its amazing to see people happily betting the farm on CDS defaults of XYZ company, where they stand to lose a couple hundred million dollars if the bet goes wrong. But the same folks won't bet on a promising new technology because its too new & has no commercial support, preferring instead to stick with 30 year old M$ tech due to comfort level. The chance of a loss here is several orders of magnitude lesser, yet they don't get it.
Your rant screams inexperience.
I've been rewriting most of my financial analytics code in Scala & its a genuine pleasure to see code sizes reduce 5-6 times...
What did you write your analytics code in before?! Most quants use R, Matlab, q/kdb+, OCaml, Python, etc. I can't imagine an analyst would ever use a language like Java or C++ for research.
M$ Excel, M$ SQL Server, M$ VBA macros
Also known as: what most of Wall Street uses. Are you sure you want a career in this industry?
what about front-end solutions for this newfangled language, does Scala do reporting, does Scala talk to Bloomberg, do other IB's use Scala
All of which are legitimate concerns. Did you bother to address any of those?
As the others have mentioned, banks aren't looking for "fast" or even "productive"; they're looking for "reliable". Wall Street doesn't chase technology the same way Silicon Valley does. Remember the FourSquare outage (MongoDB) or the numerous issues with Twitter back in the day (Ruby on Rails)? Banks need to have better uptime than that.
> Your rant screams inexperience.
So does the "M$" spelling...
We used to talk longingly about using strongly typed languages when I was at an IB. We mostly used perl for munging data and SAS for actual heavy lifting. It would have been great to have the compiler yell at me for adding a return to a dollar value or whatever.
Were you at ETL? The prop group I was in at Morgan used q/kdb+, which was great for a lot of things but did cause some trip-ups that static typing would have prevented. My group eventually shut down and I left the firm, but I had heard Morgan was looking into F# to use company-wide. (I used Ada in a previous life, so I know full-well the benefits of strong typing.)
Yup. Heard they were doing the F# thing too, but can't see them getting away from unix...
Dude, chill. I have worked on Wall St for over a decade at this point . There is a huge, HUGE diversity. Some use toolsets they are comfortable with, others with what they get interested in ( after it crosses a certain stability threshold ofcourse ). BTW R itself gained mainstream acceptance in 2009+. I can imagine you saying in 2008 no quant in their right minds would use R, its just too new. It was new then, but it's defacto now. That was true of OCaml which Jane St uses almost everywhere now but didn't do so just a few years back. Ofcourse there are quants using C++ for all their risk analytics - 50% of my classmates got hired on that very credential! As to Java, I have personally written trading software for IBs in Java way back in 2002 that used pricing modules for all the instruments also written in Java. Guess how mainstream Java was back then ? Finally, there are actually fairly decent risk analytics DSLs in Scala out there.
Other than reporting ( you really can't compete with SAP/Crystal Reports on that front), solutions in Scala address the rest of your legitimate concerns using DCOM hooks to pre-existing C libraries & DLLs. Why reinvent the wheel ?
I don't see why you are getting so worked up about my "inexperienced rant". I simply described a real-life situation I encountered which I felt was funny viz. highly risk-taking alpha personalities getting hugely risk-averse when it comes to something quite innocent like language adoption.
I have worked on Wall St for over a decade at this point.
And yet you say in this post that you're in the midwest:
http://news.ycombinator.com/item?id=2507002
The reason I criticized your post (and I'm not the only one) is that I don't want a young'un to read this and believe that's the right way to be thinking about career or business decisions.
You interviewed somewhere that isn't for you. So try someplace else. Whining on the Internet about "teh M$" doesn't make you look like a brazen intellectual.
Argh! If I'm in the midwest now can't I have worked in NYC before I moved here (which is what happened btw, now that you are so curious about my antecedents). And M has taken so many $ from me in the form of numerous OS updates & backups that I can justifiably call them M$ :) Should one be an intellectual to play around with scala ? Jeez.
Alright, truce. I thought I had remembered a Scala career question on Quant Stack Exchange (I'm a moderator there). So there are a couple finance shops that use it:
http://quant.stackexchange.com/q/298/35
They are getting paid to take the risk on financial instruments, because they're experts at it. They have no need to take any risks on their technology infrastructure.
They "think" they are experts at it. Yeah. If they were experts at predicting which ones would fail, they would simply buy shitloads of puts on xyz & wait it out instead of hedging themselves in case xyz doesn't default. Also, you give them too much credit when you use words like "technology infrastructure". I've been to many of them & the extent of their infrastructure is RAID & the extent of their technology is writing a for loop in VBA.
Both RAID and VBA For loops are time-tested, well understood, stable technology.
As somebody that programmed VB for 4 years. I say move away from it if you ever ever want to work productivly. The language is shit.
Oh I know :) Luckily, I only had to maintain a little MS Access frontend, the type of thing that everyone does once in their lifetime.
Yeah right. We should freeze all CS s/w h/w R&D now that time-tested stable for loops & RAIDs have been invented. That'll teach them!
Can we drop the childish M$? It's not clever.
I somewhat agree with you, but you have to admit when you see 'M$' you instantly gleam an assumption of what the person thinks. In that respect its high context, and like I said you have to admit that. Especially so if it illicits a strong emotional reaction to rebut it's use in you no?
Did you use "M$" in your presentation?
[deleted]
Say you decide to code up a bunch of risk analytics in Scala. Say Scala doesn't do it for you 2 years from now. You really haven't lost anything - just hire a bunch of VBA jockeys & they'll migrate you back to Excelland in a reasonable span. This isn't complicated device driver code where module A invokes module B with assembly address C...More like convexity on the 10 year swap is different from 2 5 year swaps & that difference can be exploited with a bigsize bet on payoff X and a ratio hedge in case bad things happen. Whether you do all of the linalg/stat/regression scenario analysis in Excel or call a Mathematica routine from Scala should be irrelevant, you get the same answers. So I simply think the risk-reward ratio is out of whack. You're willing to take huge risks on stochastic variables 10 years out into ther future but unwilling to touch a programming language/platform because its too new, even when there's a clear-cut migration path. Seems silly. Don't see how that attitude translates to being cynical about finance.
You are very naive about the costs of migrating or rolling back, especially in the bank industry.
"No commercial support" is addressed now, right?