top | item 12534736

(no title)

jkkramer | 9 years ago

It's interesting to contrast how Google and Facebook both approach open source for the web.

Google tends to release code and promote it without really using it much internally first. Documentation is prolific but confusingly organized and often fragmented among several versions simultaneously (cough, Google Analytics).

Facebook, on the other hand, actually seems to use their code before releasing and promoting it. Look at how they handled GraphQL: spec and reference implementation released a year ago, clearly labeled as a "Technology Preview". A lot of design work went into it before that, informed by the problems of internal product teams. Only a few days ago was it promoted as ready for production. The spec hardly changed it the last year. Documentation is good, and they work with the community to improve DX.

Why the difference? Hard to say, but my feeling is that there's a more direct link between Facebook's product-driven open source work and their bottom line. There are other startups constantly nipping at their heels, so they need to be on their game product-wise. Better code -> better products -> profits.

Google is largely impervious in the search and ad space, which is their cash cow. It almost doesn't matter how good or bad their other products are. The company is not at risk. Their open source work reflects that.

discuss

order

jbigelow76|9 years ago

Google tends to release code and promote it without really using it much internally first.

According to Brad Green, the Engineering Director over Angular, Google AdWords, Google Fiber, and some internal tools are all built with NG2. AdWords is kind of big deal to Google.

Edit: source for AdWords reference, http://angularjs.blogspot.com/2015/11/how-google-uses-angula...

robryan|9 years ago

They recently rebuilt google merchant center in angular.

argonaut|9 years ago

Except for the tons of counterexamples at Google...

Bazel, Tensorflow, protobufs, GWT (a web/JavaScript project!), dozens of utility libraries, etc.

You are forgetting that Google is a huge company, much bigger than Facebook. It's more a collection of disparate entities than a monolithic giant. Each open source project is run differently.

jkkramer|9 years ago

It's my experience with their web-oriented and JavaScript projects. They definitely put out lots of high quality open source work in other domains.

jt2190|9 years ago

    > Google tends to release code and promote it without 
    > really using it much internally first.
Is this actually true? My understanding (from watching many AngularJS presentations) is that Angular was developed with input from many teams at Google.

(edit: Angular was first used on an internal app at Googel: https://www.youtube.com/watch?v=r1A1VR0ibIQ&feature=youtu.be...)

RussianCow|9 years ago

"with input" != actually using it. There are very few public-facing Google apps/sites that use Angular, whereas a large chunk of the Facebook frontend uses React and their other libraries like Relay. That said, I have no idea if/how Google uses Angular internally, so it might get more use than we see from the outside.

automatwon|9 years ago

The company is not at risk. Their open source work reflects that.

Angular came out 2.5 years before React. Facebook had a predecessor to flesh out what does and doesn't work. Google started the autonomous car, and now other companies are following suit. Google starts the race, but they might not be in first place at the end. Ultimately, consumers win.

Better code -> better products -> profits.

What about Golang? Considering this conclusion is out of scope from the premise 'open source for the web', anyways.

Is it the documentation that is the essence of 'better code'? If not, then what? Left to my own devices, I will summon functional programming constructs such as Monads or Catamorphisms in personal projects. Keyword: personal projects. I think it's elegant, but someone unfamiliar with these constructs might abhor it. Analogously, what's the best programming language?

Do the arrows imply: if better code then better products, and if better products then more profits? If that's the logical structure, I can easily think of examples of companies enjoying great profits but bad code / bad products. Moreover, the direction of causality could also be profits -> better products -> better code. In reality, it's most likely to be a complex / dynamical relationship involving many other variables.

Google is largely impervious in the search and ad space, which is their cash cow. It almost doesn't matter how good or bad their other products are.

What other products from Facebook did you have in mind? I genuinely cannot think of anything other than the social network, Instagram, and Facebook messenger. Facebook is largely impervious in the social networking and ad space. Does it matter how good or bad their other products are?

danso|9 years ago

This reminds me of the excellent episode of Changelog in which Facebook's head of open source discussed the logistics of managing React so that the public version is exactly the same as the version used by Facebook itself: https://changelog.com/211/

Really drove home the concept that open-source requires significant thinking and discipline when a library becomes heavily used.

Bahamut|9 years ago

That's not any different from how Google uses Angular - Google runs off of HEAD on master, in 1 & 2