Firstly and probably most obviously, their business is based almost in its entirity around a single third party open source tool, without which they would have nothing at all, and yet their site is not open source. I know they have every right, legally, to do this, but to me it seems .. exploitative.
I wouldn't even care, really - that's what it's all about, after all - but they're just so arrogant about it. Wanstrath especially. Just go look at the very latest post on his blog. The last sentence - "Welcome to distributed version control." is just so smug and really rubs me up the wrong way.
Maybe I'm an idiot for thinking that way, it's very probable, but something just feels wrong.
Secondly, the whole point of distributed version control is that it is distributed. Github is the antithesis of this! And it has real-world consequences, too - it's slow as hell. It's not Facebook for programmers, it's Geocities for programmers, and I for one can't wait until all those Github users learn how to set up their own repositories.
Don't get me wrong, I don't hate Github. It's nice looking and works fairly well, apart from the speed. They certain picked the right wave to jump on and it was very right place, right time. And I love git.
But Github can't last that long, IMO. Trying to force a distributed version control system into a "hub" is not sustainable. Many people, including myself, would never host the fruit of their labours on some free "social" site. And the web interface is better than gitweb but hardly light years ahead of everyone else.
I think it's just a matter of time before we see a proper distributed git community - a "git mesh", if you will. Obviously there are some pieces missing before that can occur, but I think it's inevitable. These "hubs" never last. Just try to name one that has.
* Implement their own SQL server
* Implement their own programming language
* Implement their own web framework
* Implement their own 234 libraries for parsing, fetching, I/O, threading, etc etc etc.
However, I feel exactly the same way you do. But not regarding Github. They're what YouTube is for flash, they're basically Rackspace - a hosting company.
The company that pisses me off the most is Scribbd. Their entire product is an evil flashizator of OpenOffice's file converter. And an closed-source flashizator at that. Not only they're destroying the web with their laptop-burning binary browser crasher, but they're parasitizing on one of the most successful, most needed (and struggling) open source projects without contributing anything back.
I think the question is whether a new project adds something, innovates in some important way. Many web startups take from this ocean of prior work, put it together in a different way, fashion something new. That's great and I love it.
What does GitHub do? A web interface to a source control system. Plus free hosting, plus "teh social!". It's not the same as your usual web startup that took X elements from the primordial soup and built a new structure; it's a web interface to git and a backend for user and file storage.
None of this is wrong. We needed a new sourceforge, and it is undoubtedly fueling innovation. The social element has turned out to be a powerful inducement for people to work, to avoid losing face. The easy sharing is fantastic. The accounts structure, where open source projects are free, is a powerful driver for open source. On its face, everything is positive.
So why don't I like it? Well, actually, the fact that they're so reliant on git is really just my excuse for not liking them. The real reason is much harder to explain, but I'll give it a shot:
For the same reason I don't like people putting blogs and pictures on Facebook or Mixi or Blogger. For the same reason I don't like bands having pages on MySpace. For the same reason I don't like Flickr or SlideShare or even YouTube or, for that matter, NAT. All of these things seem positive. More people can blog and share pictures now. More people can post their cat videos. It's kind of easier to share slides, I guess. It's easier to set up a home network. But what have we given up?
There is a long term trend away from people doing things themselves, and towards a producer/consumer mentality. Away from P2P and towards corporate hosting. No matter how nice the company is, and GitHub are pretty nice guys I hear, I don't like the trend. You would think that out of all groups of people, programmers would be the most likely to be able to set up their own damn repos. You would think that if finding and viewing other coders' work, and coordinating commit rights etc, was such a big problem - and it obviously is - we could solve it in a way that wasn't giving up en masse and just using some private company's product.
It's about having a problem, and there being an easy but wrong solution, and a hard but long-term correct solution. If the problem was "how to enable a large group of people to easily establish, find, view, and collaborate on open source projects using git" then the solution should be to come up with some kind of distributed system. Everyone piling on to some flashy new product, which despite its positives (and their are many, as I said) leaves one party in complete control and one bottleneck, is the easy but wrong solution. What if GitHub loses its data, Magnolia style? "Oh that will never happen" is the reply. Wrong answer. The possibility, however unlikely, should not even exist.
Well this is turning into an essay, so I might leave it there, but I hope I could get across some of my admittedly rather extreme views on the matter. In summary: I don't hate GitHub, I just hate that we don't have anything better. Yet : )
Oh and yes I fucking hate Scribd too.
This is exploitative if you think that a) open source products are not helped by having a company to do their marketing for them and b) there is something vaguely dirty about making money within a 47 mile radius of one. Marketing is a core competency that most OSS products which lack corporate backing fail at, in spades. Whatever your criteria for success for git are (number of developers, number of users, increasing technological awesomeness), they're better off with a bigger community and they'll get a bigger community thanks to github.
Look at how much, e.g., Rails the OSS project gains from being promoted by people who know what they're doing (who subsidize their involvement with Rails by using it to power a fleet of closed-source apps). I think Rails might well be the first OSS programming framework where people actually sat down and discussed really elementary things like a) a marketing plan and b) a visual identity and c) a site that was designed to sell the product, hard, rather than just containing a download and a few desultory links to documentation.
Secondly, the whole point of distributed version control is that it is distributed
This is one of those funny engineer tunnel-vision moments. The whole point of git is that it is theoretically better than the alternatives, not that it upholds one holy grail on a bullet point list above all others. Persistence on a central server, management, backups, all that fun stuff is a great boon to folks who are too small scale to get the baked-in distribution backup effect (which would be about 90% of projects, at a bare minimum) and the collaboration ability doesn't hurt either. (If someone is working on a fork of your project halfway around the world and you are mutually ignorant of each other... sucks to be you, right?)
Many people, including myself, would never host the fruit of their labours on some free "social" site.
Yeah, and you're never going to buy a Hello Kitty backpack, either. That does not mean there is no market for Hello Kitty backpacks. (I apologize in advance if you are, in fact, a purchaser of Hello Kitty backpacks.) "I see no use for this, ergo it can't possibly be viable" is one of the categorical developer errors about business.
1,500 paying customers later I still get emails from developers saying "I saw your site, looks like it took a lot of work, but come on, nobody will ever buy it." This was once common enough that I wrote a form letter for it.
What makes you think they want marketing? Do you realize that most upstream developers are scratching their own itches, they don't give a shit about end-users, and that the lack of marketing asshats pushing them around is what distinguishes their hobby from their day job?
Take your marketing bullshit, shove it back up Mark Shuttleworth's ass, and leave us the hell alone. Please.
Your anger is grossly misplaced, and really lacks any use in this conversation.
git does benefit from network effect more than most software, but for a lot of itch-scratching open source projects, having the kind of end-users that are brought in by marketing is a negative. They require lots of help, which supports the introduction of middlemen, and drags on the developers until the community hits a critical mass.
Just having more users is not an absolute good, especially when they're the type of users you attract only with shiny marketing.
The network effect would indicate that the bigger the "tribe" around something the better. Not always, but for something that could benefit thousands, it's usually better if those thousands know about it rather than it being a closet technology / product / whatever.
having the kind of end-users that are brought in by marketing is a negative
Marketing seems to be a dirty word for you. In reality, it's a word much like "economics" in that even if you don't agree with it, you're experiencing it every day. You might think marketing is some evil, advertising-dominated thing, but really it's just the economics of attention.
Having a descriptive title on a Web site is "marketing" at some level, and that's how a lot of people will find you, through Google searches, etc.. yet I doubt most project maintainers consider this "marketing."
1. A stands to gain financially from B liking S;
2. A wants B to like S;
3. A chooses the things they say to B about S with the goal in mind of influencing B to like S — perhaps they emphasize positive aspects of S, downplay or don't mention negative aspects, suppress whatever personal doubts they may have about S, etc.
Now, of course, there are marketing people who would like to claim that any communication between any two people is an instance of "marketing", but that is at odds with they way the term is commonly used, and I think this is because those people are marketing marketing. Usually when something is described as "marketing", three or at least two of the above criteria are true, in the opinion of the speaker.
None of these three items are necessarily true of "having a descriptive title on a Web [sic] site".
Item 3 is often a result of item 2, which is often a result of item 1. Even in the rare case that these relationships don't hold, there's always the temptation to proceed from one to the next.
The thing I want to point out is that item 3 is very much at odds with basic norms of honest discourse, and when people do it, they make it harder for other people to discover the truth about things. When some of the participants in a conversation have an agenda of influencing others' opinions in favor of some issue, it undermines any confidence in conclusions you can draw from the conversation.
I think that's why so many people hate marketing: it creates a constant temptation to dishonesty, most marketers succumb to it at least a little, and that severely damages the quality of discourse in conversations that contain marketers.
Why not? Having a properly worded title could be the difference between having 100 people find your project or 1000 people find it. Those people are then the difference between you getting consulting gigs for whatever you invented or not.
With your criteria you could argue that Ruby on Rails (the original topic a few posts up) could not possibly be "marketed" as the developers did not "gain financially" from people using it, but in an indirect way they certainly did - conferences, prestige (non-financial), consulting gigs, book deals, and so forth.
Take the word "financially" out of your criteria, however, to cover these open source cases and nearly all communications is marketing. After all, when I first met my now-wife, I stood to gain if she liked me, I wanted her to like me, and I certainly played up on my good points.
The thing I want to point out is that item 3 is very much at odds with basic norms of honest discourse
Honest discourse, perhaps, but most day to day discourse is not honest. On the whole, people will play up positive aspects of things they like and downplay negative aspects that work against them or things they have a high opinion of.
I'd say that the majority of conversation has that quality. But most people don't hate conversation, even though it is typically riddled with manipulation and selective truths (usually in a quite non-malicious way.. few husbands are really going to tell the wife their butt does look big in those jeans..).
Peter Cooper responded:
Why not? Having a properly worded title could...
There is a difference between what could be the case and what is necessarily the case. It is certainly true that having a descriptive title on a web page could be marketing. My claim was that it was not necessarily marketing, and in fact need not satisfy any of those criteria.
Peter Cooper wrote:
With your criteria you could argue that Ruby on Rails (the original topic a few posts up) could not possibly be "marketed"...
You could argue that if you were an idiot. But you would still be wrong.
Peter Cooper wrote further:
Take the word "financially" out ... and nearly all communications is marketing.... most day to day discourse is not honest...the majority of conversation has that quality.
Actually, a substantial fraction of human communications are not, in fact, attempts to dishonestly manipulate someone else's opinions for the personal gain of the speaker. I understand that you may not be aware of this, but I assure you that it is true.
By the way, I love Github.
There I was thinking this was a reasonable discussion and it gets dragged down to a childish "yah boo well you're just wrong" level. Fine, you "win" :)
they saw a market nobody was catering to, and despite being based around a free tool, they're not just exploiting the community. they provide a lot of free git hosting for a lot of projects, and you have to give them some credit for that.
and as far as i'm aware, most of their site is based upon a ruby re-implementation of the git tools that can manipulate the git meta files. that was written by someone involved with the site and is open source, so they are also contributing back to the git/ruby community that way.
I know that's a popular piece of advice given around here (though HN has an interesting mix of "stuffy" academia and "Wild West" hacker culture), and I felt the same way when I was younger. I thought I knew all the CS I needed to know to develop the stuff I'd want to develop. But I want to say that I am so overwhelmingly happy I have done CS at the college level. I knew so little back then (and still). It scares me that I almost neglected the path of inquiry that is /the/ single most interesting intellectual topic in my life.
So, young hackers out there, keep an open mind and a long-term view when you are following his advice to "do whatever you want." That's exactly what he meant by that, I think.
After all, N. Wirth wrote a book titled:
Data Structures + Algorithms = Programs
there is something so enchanting reading about github, 37signals, etc.. they are filled with passion, do not talk about money (as an objective) and most of all inspire others to follow their heart and pursue their love
It struck me that they were all uber confident - they seemed that they knew what they were going to do and, as needed, they adjusted their course. I was walking out of this talk and mentioned this as smalltalk to guy next to me and he said he had known one of the GitHub guys for years - and in the several years that he has known him - he has always been calm confident and relaxed.
They were very inspiring.