Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Do companies have better code than the open source community?
13 points by zackmorris on Dec 27, 2013 | hide | past | favorite | 8 comments
Looking at github lately, I'm struck by how much decent code is made by individuals. I've taken it on faith that they know what they are doing, and have created libraries that are close to some nebulous notion of purity or elegance. Generally the code does something in a straightforward manner, like I could extrapolate where the unfinished parts are going (an indicator that it's close to optimum).

Contrast that with corporate code, where it seems more rigorous, more institutional. It's often entrenched in company culture and whatever process the higher ups have deemed important. I've written much of it off as overhyped, over-trusted and over-utilized. Some things work remarkably well for containing the chaos of an ever-changing market and workforce. But others seem archaic and I can't believe that companies depend on the logic equivalents of toaster ovens (that unwieldiness must be a warning sign).

Could my intuition be wrong? Imagine an idea you have, and that instead of having to write every line, you can outsource it. And that process is hierarchical, so you can reach as high as you want to. What kind of power would that give you? What could you learn that would be out of reach to those with fewer resources? If one person can write good code, what happens when hundreds or thousands of people work for years with million-dollar budgets? Could Google or Amazon have code that runs circles around ours, like if map reduce is the low-lying fruit of the big data world, not even worth protecting? Are we locked outside the pearly gates, dealing with tools that can never give us the leverage that companies enjoy? Is an MIT or GPL license a sign that code wasn't good enough to make the cut?

Or maybe the darwinian evolution of the open source world runs circles around the intelligent design of corporate think tanks. Is there any evidence one way or the other?



In general, no. Corporate code "in the wild" is typically a pile of shit. I've worked at several companies and between mismanaged projects, team conflicts, time/requirements constraints stuff just gets messy, hacked and crazy really fast.

Open source projects, particularly smaller 1-3 person projects on github typically have more consensus, dedication, vision, etc and come out better. I think there's a lot to learn from that process and how business code could be managed better. I'll save that for my book.

The general shittiness of code makes me wonder at times about stuff around me. Stuff like the machines in a hospital keeping people alive, traffic lights, etc. It's kind of scary when you see examples of how badly some people think through problems.


I don't know about code "quality", which is a rather nebulous notion that no one seems able to accurately define, but in terms of functionality there may be a tendency to underestimate what well-financed teams in industry can accomplish.

Consider 4 examples.

1) The first is the only one of which I have personal knowledge. I used to work for a large corporation which developed address reading software for the US Postal Service. The project had generated about $1B for the company at the time I was there and comparable costs savings for the customer. I don't believe OCR software that is widely commercially available approaches the performance of that system.

2) IBM Watson. Here we have an example of a well educated, well financed corporate team producing a software system capable of beating the best human players at Jeopardy. I think prior to this demonstration few would have believed such a thing possible.

3) Google Self Driving Car. Again look at how much progress on an extremely difficult problem has been made by a company team in a short amount of time.

4) Recent NSA revelations: The technical capabilities revealed by Edward Snowden exceed even the somewhat mythical beliefs about the NSA's capabilities that were prevalent in the tech community prior to these revelations.


While these are examples of great software in terms of functionality, they don't necessarily contain 'good code'.

I suspect that the quality of the product is strongly related to the quality of the code underlying it, but then it could be argued that Windows is a good product, and yet I've read several stories about the code not being particularly good quality in many areas. Conversely, much open source software I've seen has wonderful code, but the products of that are horrible.


Your examples are the rare gems among the poo. Occasionally some big projects turn out well while millions of others didn't.


MapR is the best example I know of where a closed-source solution is beating open-source.

For example, MapR's Hadoop distribution outperforms its open-source counterparts:

* MapR breaks the Hadoop TeraSort world record using Google Compute Engine (https://plus.google.com/+GoogleDevelopers/posts/NURRXZ985XV)

* Video: https://www.youtube.com/watch?v=9iQzMoy41_k

Also MapR-FS and its new M7 Tables are HDFS and HBase rewrites that remove the complexity of running HBase while improving performance:

* M7 Overview: http://www.mapr.com/products/mapr-editions/m7-edition

* Datasheet: http://www.mapr.com/Download-document/21-MapR-M7-Datasheet

* Benchmark: http://www.mapr.com/Download-document/52-MapR-M7-Performance....

* Docs: http://doc.mapr.com/display/MapR/M7+-+Native+Storage+for+Map....

* AWS Service: http://aws.amazon.com/elasticmapreduce/mapr/

One reason behind MapR's competitive advantage is because it was co-founded by M.C. Srivas from the Google search team (http://www.wired.com/wiredenterprise/2011/12/ex-google-man/) so they have special knowledge on how the real GFS/MapReduce/BigTable stack is designed.


For a proper analysis you would need to compare a large distributed subset of proprietary, closed source code to an equal amount of distributed open source code. Which for many reasons (hint: proprietary) cannot be done. So no, there is no evidence other than biased people who worked at company x or y with good/bad in-house code.


I think you are right, and that was the same uncomfortable conclusion I came to. Maybe the gist of the question is whether developing software privately is better than developing it publicly. It seems that the amount of money earned is proportional to secrecy.

However, I've rarely shared code in my life and live month to month, so it's not a hard and fast rule. I guess my deepest hope is that someday the entirety of open source software and technology will provide such a large benefit that it can work like income at a personal level. The intangible benefits of participating in open source don't help much against the tangible expenses in one's life!


No.




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

Search: