Hacker News new | past | comments | ask | show | jobs | submit login
Goldman's traders use a proprietary programming language called "Slang" (cnbc.com)
77 points by jsm386 on Aug 6, 2010 | hide | past | favorite | 57 comments



A relevant thread from Wilmott Forums: http://www.wilmott.com/messageview.cfm?catid=16&threadid...

In particular, this quote from Dominic Connor is telling:

"...[snip]... As Zmei says [SLang] a GS only language, which even within GS is not exactly universally loved. I hear tales of tragically poor performance, and the inability to cope with modern programming. Think of it as a equivalent to C# 1.0, ie old fashioned.

I don't know how much it is seen as protecting IP, but it is not clear how GS can give it up within the next decade even if they tried. There is just so much of it there.

There are spots of Java, VBA, and C++ in GS, who often value C++ experience in new hires, even if they don't use it.

The GS IT bonus pool is better than most people's IT bonus pool, but it's several tiers down. Mobility is no worse at GS than many other firms, but that is not saying much of course. Slang does in this context work to your advantage. Many IT department technologies have no value in quant and/or front office roles, but since Slang is prevalent in all aspects of GS, this barrier is much smaller. But of course the politics in all banks is far more of a problem than the technology."

Dominic is a very well known Quant head hunter. Well informed and generally well liked within the community. I'd wager that they don't want to use Slang in the spinoff simply because they have a change to do a reset and don't want the baggage.


When I was interviewing at GS we talked about Python vs Slang and several of the interviewers mentioned the biggest problem with slang was the lack of toolkit (good debuggers, IDE, etc.).


It's also worth noting that the SEC thinks python is a good language for specing ABS.

http://kelloggfinance.wordpress.com/2010/04/08/the-sec-gets-...


I remember I see people using some sort of old fashioned Basic like IDE with blue screen and yellow fonts to work on it. Do not know if it has improved.


C# 1.0? That's really your example of an old fashioned language?


Is it really such a terrible example? It was basically Java, but then dumbed down a bit, as I recall.

C# later evolved into a competitive, modern language, but that first release was distinctly underwhelming. Take a look at the closest thing to a changelog I could find: http://en.wikipedia.org/wiki/Microsoft_.NET#.NET_Framework_1... And I particularly draw your attention to the list of changes in 2.0, which include but are not limited to: Generics, 64-bit support, partial classes, nullable types, anonymous methods, and iterators. Maybe nullable types shouldn't be on that list, but a language without any of those things is getting pretty old fashioned.

Sure, C# 1.0 is no COBOL, but there was little or nothing new about C#, and I'd hesitate to even call it modern for the time, even if it would have been hailed as a major triumph in 1975.


>>It was basically Java, but then dumbed down a bit, as I recall.

C# 1.0 had all the important features of Java 1.4 plus delegates, events, autoboxing, enumerations, operator overloading, indexers, foreach and a lot more.

IMHO 90% of enterprise developers today are using the features from C# 1.0/Java 1.2 + generics. It's not some Prolog/Lisp/Haskel clone, but far from old fashioned.


I read this article a while back, that said that Microsoft employs more millionaire secretary's that any other company in the world. They took stock options over Christmas bonuses. It was a good move. I remember there was this picture, of one of the groundskeepers next to his Ferrari. Blew my mind. you see shit like that, and it just plants seeds, makes you think its possible, even easy. And then you turn on the TV, and there's just more of it. The $87 Million lottery winner, that kid actor that just made 20 million o his last movie, that internet stock that shot through the roof, you could have made millions if you had just gotten in early, and that's exactly what I wanted to do: get in. I didn't want to be an innovator any more, i just wanted to make the quick and easy buck, i just wanted in. The Notorious BIG said it best: "Either you're slangin' crack-rock, or you've got a wicked jump-shot." Nobody wants to work for it anymore. There's no honor in taking that after school job at Mickey Dee's, honor's in the dollar, kid. So I went the white boy way of slanging crack-rock: I became a stock broker.

- Seth Davis, Boiler Room


Mike Rowe's TED talk from 2008 hits on some of the same points, as well as how much he thinks we under-value hard work. Agree with him or not, it's definitely worth taking a look at.

http://www.ted.com/talks/mike_rowe_celebrates_dirty_jobs.htm...


How is this at all relevant to GS porting their code to a standard programming language?


I meant it as a tongue-in-cheek reference. The mentality of the character in the movie boiler room gets involved with stock trading because he equates it to the young white male version of "slangin' crack rocks". I found it interesting that stock traders/programmers are literally "slang-in'".

The mentality in the movie also leads one to question the value of what is being created in the world of stock trading. So, to me, the comment had multiple levels of irony and coincidence. But having to explain it makes it lose some of the luster.


The punchline is at the end:

> Nobody wants to work for it anymore. There's no honor in taking that after school job at Mickey Dee's, honor's in the dollar, kid. So I went the white boy way of slanging crack-rock: I became a stock broker.


Beware selection and survivor bias.


At initial stages, potential recruits are not even told that Goldman is the client.

Well, yeah. That's because if the recruiter tells you where the job is, you'll go directly to the client and keep the 30% of your salary that the recruiter gets to yourself.


Of course, at places like Goldman (in stark contrast to the Cloudera blog post the other week), coming in through a recruiter actually increases your chance of getting the job and a high salary. The recruiter can be the door-banger who pushes your paperwork through the organization and demands a high salary, while you get to be mild-mannered, not desperate for employment, and not a prima donna about money.


I assume the recruiter will take a percentage of the salary as their fee, so it's in their interest to do this.


most recruiters work for the company and the company pays the fee, sometimes a flat fee or a % of the yearly salary of the new employee


It's a problem, but more subtle than that, more systemic, because as others have said there is much value in recruiters too. But systemically it's become an international trade in a commodity (programmers). Obviously this is not confined to programmers, but it's a particular flavor of this very large and fluid international business climate.

I think it shifts much long term risk from businesses to the developer, and in addition provides little social and financial stability for the player with the least to start with, and their communities.

Of course, there advantages, not to disparage those, I have benefited from it, recruiters can be pretty damn good at what they do. I just think that the problems outweigh those.


I thought the employer pays that fee?


Sure, they do. But there's a fixed amount of money in the department budget, and the money they pay to the recruiter comes from somewhere.

(I was hired into finance by a recruiter. The recuriter took 50% of my income until I was hired as a full-time associate. I got a raise and the department probably saved a ton of money.)


Slang is a proprietory language developed by GS, it's been around for ~15 years I think. If I remember correctly they have a development/analysis environment called SecDB in which all coding is done with Slang. All their modelling, pricing and risking is done in SecDB across all asset classes so it's pretty widely embedded.


I've looked at Slang a bit. It's an interpreted dataflow language running on an in-memory database called SecDB. Untyped, Pascal-ish, single-threaded, and poor support for namespaces. Like a spreadsheet, it only needs to recompute the subgraph that has changed. It was probably innovative 25 years ago (I think it came out mid-80s), but today you could write Java code and use memoization aggressively to speed things up. Slang is not why GS traders are successful. AFAIK, GS succeeds because they listen to their risk people.


A former GS pricing quant describes Slang briefly in a footnote at the following URL. It doesn't go into much detail, but maybe adds a morsel to what's been mentioned:

http://adgrok.com/why-founding-a-three-person-startup-with-z...


"Like a spreadsheet, it only needs to recompute the subgraph that has changed."

Yes that's right - and that is a key feature for GS - they need to be able to revalue huge trading books ~ real time. (Most other banks estimate impact of intraday moves, and do a re-price overnight in batch)


Didn't GS have a losing second quarter? Perhaps this spin-off has more to do with how they perceive the next quarter is going too, and worries about business beyond that.


By embedding so much info company wide in SecDB aren't their risk people in a better position to make their case?

Still, that wouldn't matter if GS wasn't inclined to listen to them, but the whole Slang/SecDB system is indicative of a company culture that's serious about these sorts of things.


"That language plays a vital role in Goldman's prop trading, including it's computer driven high-frequency trading."

John Carney, Senior Editor, CNBC.com, needs to get himself an editor. :-)


There's a long history of using alternative in-house languages at Wall St. firms (and new ones are being developed at a few large firms I know).


Morgan Stanley and others were big users of APL, back in the day. Now that's a wacky language!


APL isn't all that weird once you spend a little time with it. It's "just" a dynamically typed collection-oriented language. I think people look at some screenshots, make a stupid joke since they aren't familiar with the notation, and move on rather than digging in. I highly recommend Dyalog's dialect for a comfortable IDE, OO support, .NET support for GUIs on Windows etc.

For MS' APL dialect, you can get the whole thing from: http://www.aplusdev.org/

My understanding is that they still have many many lines of code written in this language running. They also use a commercial intellectual successor of this language called q from kx systems. Many other firms do as well, but I won't name them since I don't know which ones are public about it.

I'm pretty sure that the firms I know creating new languages are not public about it, but there are at least 3 very very large ones doing so. Aiming for a functional flavor, large-scale parallelism, streaming, low-latency processing of large data sets, high-quality compilation and leveraging new hardware are common themes.


For what its worth, a+ was mostly used in the fixed income decision. Over in equities, I never touched it - most of my work was in perl and SAS.


True - joel kaplan's group in FID was the source iirc.


didn't stop every fucking aurora machine from bitching about missing kaplgallant though. heh.


Well just in case you wanna cry into your beer over that font - you can get it here for old times sake.

http://www.aplusdev.org/Download/x11fonts.tar.gz


nooooooooooooooooooooo


Yep, I used to work with a bloke from IP Sharp (http://en.wikipedia.org/wiki/I._P._Sharp_Associates#APL_Impl...), he showed me some cool stuff. I have another friend who does q and kdb+ stuff.


I currently work with a bunch of Sharpies, including Dave Markwick (mentioned in that article). Dave still writes APL from time to time.


It will be interesting to find out what the 'more standard' language that they decide on will be. With the resurgence of new Lisp-like languages, F# (which is already in wide use at Credit Suisse), and other functional types getting a little more mainstream, I wonder if something like that will be chosen over Java, C++ or C#.


I thought Slang was a static subset Smalltalk used to implement virtual machines, like PreScheme (Scheme48) and Restricted Python (PyPy).


Also, the JED editor has an extension language of that name. It was my editor of choice during the late 90s, and I also used Slang as a scripting language in my youthful attempts at adventure games.

http://www.jedsoft.org/jed/


"Snake" in Dutch ... how appropriate.


"Hose" in Swedish, which I also found amusing. :)

Also, S-lang is the name of at least one well-known programming language, it's used to script the jed editor among other things. See http://www.jedsoft.org/slang/.


In Dutch, "hose" is another meaning of slang as well.


and Slang is used for bootstrapping squeak (smalltalk).


The "Why" is missing in this article. Anyone care to comment?


What I would like to know is why didn't they simply license it to them?


Most likely because they cannot afford to risk that someone will steal the intellectual property of their slow and bug-ridden language implementation.


Well, there's one big advantage to the whole Slang system and that is that it's integrated throughout the company and the system can be used for relatively quick "what if?" and "where do we stand?" queries. Instead of the data being embedded in a zillion (often incorrect) spreadsheets and small databases or whatever that have to be manually scraped, reported and consolidated, it all happens automatically. It may not be "fast" but it's a lot faster than manual methods.

ADDED: see this comment: http://news.ycombinator.com/item?id=1581604


From what i know that was the original intention behind Slang and SecDB. Standardization of use across different departments and in some ways a way to subvert the politics.


A license without people who know how to make it tick isn't worth much. Maybe the hard-core Slang/SecDB technical support and development staff just aren't numerous enough to split into two viable groups?


Unrelated to the story (looking at the stock price) Why would GS be worth $154 a share when they're paying dividends of $.35 a share?

Of course I guess the last time Apple paid a dividend was 1995, and they're trading at $259 a share.


When you buy a share you are buying a piece of a business and the future cash flows that it generates.

Looking at a figure like dividends is kind of meaningless. You specifically want to look at the cash flow that is available to owners. That cash flow can be used for different things (buybacks, reinvesting in the business, dividends, etc).


If a company can reinvest profits and grow their marketshare or move into new markets, it's usually in the shareholders interest for them to do so. That reinvestment may eliminate or shrink a dividend payment.

Many large companies are unable to achieve significant growth numbers and in those cases it's usually int he shareholders interest to issue a dividend.


"The problem is that Goldman's traders use a special computer language called "Slang" that was developed for internal use only."

^^^ What in God's name are traders doing going anywhere near a programming language? Surely this is some mistake.


Believe it or not, this is quite common in the industry. I developed some software for one of the Big 5 banks in Canada and I saw first hand traders learning to program using C++, Java, whatever they can get their hands on because they need to test out models, perform calculations that Excel can't do readily - although VBA is a trader's best friend.

Recently, they've been using R more and more. And as you'd imagine, their code is horrendous but hey, it works.

What I learned is that the entire financial industry relies on Excel and really bad programming. It's really scary to think that 37Signals has better software and software practices than a bank.


Historically there has been some truly awful code, no doubt, and much still being written.

There is a growing breed of trader though who can code well. Coding well in a variety of languages is becoming a basic skill along with advanced math & stats for certain types of trading jobs.


I'm with you, I just started for a finance-y company and was rather shocked to see various non-developer\IT people tabbing over to MS SQL Management Studio every few minutes, running queries and updating tables!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: