back
106 comments
I can understand the reaction on this community to the news, and I'm sure that there are elements of PR and recruitment strategy here, but I happen to know that the primary driver is pretty sound; job satisfaction for top employees.

Goldmans has its share of top programmers and, like any company, is keen to retain them. One of these people made contributing to Open Source a major goal for last year.

Well done to him, and well done to GS for supporting him. The company (rightly) gets a ton of bad press, but that doesn't mean it can't do good things as well.

Disclaimer: I'm an ex GS employee, but have nothing to gain.

When I interviewed at GS last year, I was explicitly told that I would not be able to go on working on open source (they had checked out both my blog and my Github). This despite none of the technologies in my main project being in use in the group I was interviewing with...
From their FAQ:

  Why is Goldman Sachs open-sourcing GS Collections?
- We believe that GS Collections offers a significant advantage over existing solutions. We hope others will benefit from it.

- We believe in the power of the technical community to help improve GS Collections.

- Technology is a huge part of what we do at Goldman Sachs. GS Collections exemplifies our commitment to technology.

- We use open source software in many of our operations. We have benefited from the work of others and we'd like to give something back.

  Does Goldman Sachs use GS Collections?
- Yes, we use GS Collections in many of our internal applications.
“We believe in the power of the technical community to help improve GS Collections.”

They aren't accepting code contributions right now, so that doesn't make much sense.

Why not? It's a large corporation with many branches and technical needs, some of which are harmless to open-source. Despite its reputation, I don't think they go through their day thinking "hmm... we could open-source this, or we could go kick a puppy instead! Muahahaha!"
Why choose?
Not to troll here, but in all honesty I thought GS was the kind of company which would prefer to spend money kicking puppies, than open sourcing a library they wrote. ;)

This will surely earn them some cred from the programming community.

I'm not entirely surprised. A few months ago (a year and a half! wow!) GS hired Ulrich Drepper, the longtime project lead of the GNU C library.

I also read another article (no way I can find it again now) saying how big investment banks are hiring more and more software engineers.

Disclaimer: I work in IT for a large investment bank which's gradually outsourcing all its IT department to south asian countries.

In the same boat as you are. The bank that I work for is outsourcing very heavily to India and East Europe.
so you have two reasons to leave?
Ahh, it's Henry Blodget fault. He argued that Goldman lost the FB IPO partly because the other underwrites were semi geeks investment bankers, http://www.businessinsider.com/morgan-stanley-goldman-sachs-...
Interesting article. There's something wrong with the interface for me (it doesn't pagedown properly), though.
There are a few other brands on there, including Walmart and Amazon:

https://github.com/walmartlabs

http://www.readwriteweb.com/archives/walmartlabs_kosmix.php

https://github.com/amazonwebservices

I can imagine Goldmans are using Github to acquire talent and new ideas. I am sure they have some complex problems and technology that needs fixing.

Stack Exchange had a discussion on this last year:

http://programmers.stackexchange.com/questions/61062/why-sho...

I don't think Amazon being on Github is really that surprising.

  ...
  import com.gs.collections.impl.block.factory.Comparators;
  import com.gs.collections.impl.block.factory.Functions;
  import com.gs.collections.impl.block.procedure.CollectionAddProcedure;
  import com.gs.collections.impl.collection.mutable.AbstractCollectionAdapter;
  ...
Gees, I feel sorry for people still stuck using Java.
Why? Because Java has good, built-in, worldwide namespacing that always works? Or because Java has IDEs that pull in imports automatically so developers don't have to think useless shit?

Or is it because you're fanboi who dislikes Java merely because it's Java and choose any opportunity, not matter how inappropriate, to disparege it.

Java is by no means perfect, but let's at least pick on it for the things it actually does poorly rather then just picking on it because it's no longer considered cool.

No Java devs actually type any of that. Java IDE's are very good at generating this sort of code...for this very reason. No one would still be using Java if they actually had to remember full package names.
You don't have to be so explicit:

  import com.gs.collections.impl.*;
Just out of curiosity, how are imports done in your language of choice?
Why? It's pretty good, all things considered.
So does your favourite language use modules to help organize large scale applications?

If so, how do they look like?

Any java guru think this is good stuff? Just curious. I moved on form java years ago.
Took a quick look, GS Collection seems to be a similar library like Google Guava; a nice functional library helper to perform operation against Java collection.
Not to take away from the act of open sourcing it, but I think Google's guava library is a lot more polished. But I expect Google has spent a heck of a lot more manhours on their library.
We currently do all development in an internal Subversion repository and are not prepared to take external contributions.

It's a PR and recruiting tool.

How is that statement good PR or good for recruiting?
Heh. Morgan Stanley open sourced Aplus a long time ago.
Have you ever used it or any other APL? I'm currently getting familiar with K, which is the language Whitney and the company he founded (Kx Systems) after he left Morgan Stanley made, but from an open source implementation called Kona by Kevin Lawler and Scott Vokes: https://github.com/kevinlawler/kona
Reminds me of the completely Open Source financial analytics company Open Gamma (http://www.opengamma.com). They also have a GitHub account with (in their own words) functional java code https://github.com/OpenGamma.

This Java paradigm of "private final static" all over the place and its ugliness is one of the prime reasons Rich Hickey considered creating Clojure.

It has some nice features: parallel iteration and lazy iteration (return an iterator that is only evaluated when the values are needed)
Software is eating the world. But I really shouldn't be surprised as I am at this one, since trading is well-known to be the most algorithmic math-geek industry at present.
It's Guava, essentially.
This does not seem to be new. According to their profile they have had an account since Dec 16, 2011. This might be the first time they have open sourced anything though.
I'd be really impressed if they open sourced SecDB/Slang.
No APL code? I'm disappointed!
Why simulate Lambda? Couldn't they just have waited on Java 8? Or maybe just used JRuby, if Java was a requirement? Still- it's great that they shared this.
I don't think languages, large organisations, and backwards compatibility work in the way that you imagine.
Java 8 is still probably a minimum of a year or 2 off. After that, it will go through another year or two of testing before any big corporation will dare even bother touching it. After that, it might start being used for new apps, but it will be another 2-3 years before it has widespread adoption.

On the flipside, what they've done isn't exactly groundbreaking, and could be used with Java 6.

They don't want lambda just because they want lambda. They want function collections with filters and transformations, and you can't have that without lambda. When Java 8 lambda syntax arrives, it will be compatible with this and Guava.

They also likely have no interest in using JRuby because it isn't statically type safe and therefore adds another category of things that can go wrong at run time that is completely unnecessary to test for when using Java with Generics.

I fucking hate goldman sachs.

Note because of politics. Not because of any financial action they've done.

Because they hired that despicable fuck Ulrich Drepper. Seriously, the amount of nice, young people who were forever turned away from GNU/open source with a bad taste in their mouths because of that scumbag dipshit.

I don't care if he was right % percentage of the time. The point of a project is to welcome users, and if you can't do that, why the fuck are you maintaining it?

I mean fuck, how many projects switched their libc implementation because of that fuck? Fuck. Fuck that guy.

The worst part? I didn't even get something rejected by him. I've just read enough of the communications with that guy to have his name seared into my brain next to the part that produces bile.

Tennyson once defended Thomas Carlyle and Jane Welsh's notoriously tempestuous marriage by noting that "By any other arrangement, four people would have been unhappy instead of two".
You sound like a considerate, thoughtful person as well.
Everytime I get a glimpse deep into the programming world, I get more scared. I thought this was good ole computer science/programming, built on logic and math not politics. Anyway, it's hard to judge a guy's character from what he writes. Terseness and bluntness in my opinion seems rude, but sometimes is all a guy has left. An exhausted man doesn't want to waste characters typing out frivolities.

As far as Drepper, I have no idea what he's like. I think he should act with respect towards others. He has written substantial things to help others out though: http://lwn.net/Articles/250967/

Who is he, and where can I read more about why he's a despicable fuck?
Based on your comment, I'd say you're letting him win.

Doesn't the world have enough issues without jumping on the "fuck Ulrich Drepper" bandwagon? Keep a mental note that you'd rather avoid him in your career and personal life, then move on. You're heading for an ulcer.