I'm using Git because it makes me feel cool

04 Jan 2009
Posted by R. Tyler Ballance

Let's be honest for a second, anybody who knows me knows that I'm clearly an insecure person; I spend the majority of my time trying my best to appear cool. I've owned a lot of Macs in my life, not because they're solid machines with a fantastic operating system, but because I felt so damn smug and cool whenever I was doing anything on my Macs. I also developed Mac software for a while, not because it was my passion or Objective-C and Cocoa are practically God's gift to software, but because Mac developers are so cool, what with the black-rimmed glasses and fancy coffees. Hell, I remember when I finally traded my MacBook Pro for a Thinkpad running Linux; it had nothing to do with an ideological stance against Apple's treatment of developers or frustrations with Leopard, it was all about the new geek-chic that was Linux. Thus far, my life has basically been one big quest for more leet-points.

Then came Git.

When I started out in the software world, I was using CVS, which was a notch less cool than a slim IBM salesman's tie. The constant moaning and groaning of fellow developers using CVS, combined with the shame that I felt when I finally told my parents about my use of CVS was too much to bear. I had to switch.

I remember the first time I tried Subversion, I remember talking to Dave and saying "Meh, I'll stick with CVS!" Soon enough, just like the Macarena, Subversion swept the nation up. Subversion was the newest, coolest thing ever, developers rushed into the streets exclaiming "it sucks less than CVS! It sucks less than CVS!" I switched over to Subversion and all of a sudden I was cool again. One by one, open source projects I knew about switched over to Subversion, then Source Forge switched over to Subversion and in an instant, Subversion replaced CVS and became the mainstream version control system. Subversion had grown up, gotten married, a 401k and health insurance, how uncool.

After joining Slide, which used Subversion, I found myself burning up inside. Here I was at this hip start-up, really feeling cool, but still using the same version control system that uncool companies like, Yahoo! and Sun use. I would not stand for this. As 2007 became 2008 the writing was on the wall, Git was our new bicycle. It had been blessed by Saint Torvalds and clearly we needed to get in on the ground floor of the new cool before it became mainstream.

We needed to switch to Git immediately. Who cares if Git is extremely fast, it's not like time is money or something ridiculous like that. What do I care if Git handles branches and merge histories unlike CVS or Subversion? With its immense coolness-factor, I didn't even consider that Git will allow us to work in a decentralized workflow or a centralized workflow, nope, didn't even cross my mind. If one were to make a list of Pros and Cons of Git versus whichever other version control system, you could just put "Pro: Cool" at the top of the list, underlined, in bold, and the rest would be moot as far as I'm concerned.

Unlike Subversion or Perforce, Git doesn't have corporate backing, Git is distributed, like a guerilla-force sweeping through the jungle ready to pownce on an unsuspecting platoon; that's freakin' cool. Git rides a motorcycle, wears a leather jacket, makes women swoon and kicks ass and/or jukeboxes.

Git is the Fonz. Cool.

Don't make any false assumptions about my feelings towards Git, it's not like it's a clearly superior version control system or anything, I'm using it only because I want to be cool too.

If it works, don't fix it.

We've been using Subversion for 2 years, and experienced no difficulty at all. I believe that Git might be something better than Subversion, and switching to Git is not a big deal for us as we are only a small development team. However, I don't see any benefit of switching to Git.

Distributed? Decentralized? We don't need it in our environment.
Faster? I'm happy with our svnserve's speed already. How many times you update/commit per day anyway?

I think I already have the tool to get my job done nicely. Switching to Git for me is like changing my old good mobile to something like iPhone, while all I do with it is just to call someone.


Re: If it works, don't fix it.

SVN is slow. If you don't commit often, you are using VCS as backup which is not the point. You should commit for every distinct change you make to the codebase - not once per day to share your progress.


SVN last shred of cool

Actually Yahoo still primarily uses CVS, so SVN got that going for it.


Oddly enough: so true

The only thing that keeps me using Git is github. Without it, I'd either choose Bazaar or just stay on SVN (Trac keeps me using SVN over bzr). In the end as I've just pointed out, the toolset and workflow matters more than the efficiency or awesomeness of the implementation details. Merging isn't a "killer feature" if you only spend 5% of your time in git merging (not all projects need to deal with heavy merges, svn1.5 deals with simple merges quite well) but ~50% fixing commits because you forgot to `git add` a certain file. Git is certainly not such a great choice if it doesn't integrate into your IDE nearly as well as existing solutions (Eclipse+SVN, VS+Ankh, XCode, etc.). In the end, an efficient workflow will still save you more time and effort than some (really cool) technical optimizations.

I should probably reiterate that I don't think Git sucks, in case no one got it yet, but I don't believe Git's "not sucking" is reason alone to switch. What matters is whether you work more efficiently with git, svn, bzr, mercurial or whatever-- I can still work as efficiently with svn.

Oddly enough, I wrote a post last year which sounded a lot like your satire, so it actually went over my head for the first read.


Life is hard, I've had to

Life is hard, I've had to learn so many things and learning is hard. When new things come along that cause me to think outside of my narrow mindset I must discredit them and shit on them. Then I won't seem like such a dumb asshole for not wanting to learn them.


I'm Probably Just Echoing The Post

git is a great DVCS. But don't discount the older, non-distributed version control systems. Sure, SVN and CVS may have their weak spots, but I contend that they don't matter much. What I'm trying to say is, essentially, use whatever tool helps you get the job done as efficiently as possible.

If git helps you get the job done, great. But don't evangelize. You use git, and I use CVS, and we're both happy and productive and life is wonderful. But when I say I use CVS and you (not you, you; the collective 'you') scoff it tells me that you're on the bandwagon because it's a bandwagon, and not because it's the god-damn Lexus of bandwagons.

It's the Ruby-on-Rails argument, played out 1,000 times. Or it's the Java argument. Or the Haskell argument. Or the Scala argument. Or the Sega Genesis vs Super-Nintendo argument. What it is, essentially, is people trying to make themselves feel good about the choices they've made, to the exclusion of the alternative.

I guess what I'm trying to say is: be efficient. Do what you need to do to get the job done. And by all means, feel free to educate me in a non-condescending manner and tell me the pros of your approach... but always be prepared to see the other side.


Re: I'm Probably Just Echoing The Post

I've previously written a factual overview of what led to our decisions for switching to Git in the first place in my post titled: Why we chose Git, a rebuttal. This post was more a satirical response to the interesting bandwagon-backlash I've noticed against Git.

I agree with the majority of your post, except for the "don't evangelize", I think what makes us (the collective we) as software engineers such an interesting bunch is our ritualistic challenging of our own ideas. When you say "I use CVS", that's all well and good, but I'm more than likely to challenge you and ask "what makes CVS so compelling for your work?" (honestly, I try to scoff as little as possible, except for those SourceSafe users). You say "I'm happy using CVS", to which I'd retort "ignorance is bliss". Loosely, VHS is nice, but you don't know what you're missing until you try HD (hint: Git is HD ;))

I agree flaming and the likes are unwelcome, but I don't think an explanation of why you use X is not uncalled for.


One problem being...

SVN now supports merge tracking.
Your satire falls short.


ORLY?

You are stupid and pathetic.
Have you ever used it?


I have and it rocks. Shouldnt

I have and it rocks. Shouldnt you be looking for a job right now?


Git

Git is DaBomb dude, plain and simple!

JT
www.web-privacy.pro.tc


Since starting at Slide a

Since starting at Slide a month ago, I've gone from here to here. Thanks for taking the cool option.


yes i have and...

if i wanted to lose my tags the instant i reverted to them, i'd keep using Mercurial. instead I use Bazaar ... http://bazaar-vcs.org/


dear god,

why are there so many useless blogs like this?

say something, anything that isn't stupid.... PLEASE!


Re: Mercurial

I've looked at Mercurial, but chances are you're reading the post out of a larger context to what I've written about. Check out Why we chose Git, a rebuttal.

From all I've seen, Hg is a solid DVCS, it just doesn't seem to have the momentum that Git does to where I would feel uncertain about taking a bold stance and moving a ~50+ engineer company to Hg.

Of course, resuming my satirical tone, Hg? Psh, totally not as cool as Git ;)


Wouldn't having fewer users

Wouldn't having fewer users mean it's *more* cool?


Haskell

Start programing in Haskell and stay cool forever ;)

Sincerely,
Gour


Haskell? Haskell is so

Haskell?
Haskell is so September 17th 2008. Erlang is the new cool - for the last month anyway. Next week, it will be something else.

You can't win, you can barely even keep up. Quit stressing yourself, learn new languages for fun, but in the meantime, get good with what you already use.


Erlang hasn't been the cool

Erlang hasn't been the cool for a year or two.


Agreed. Erlang was cool in

Agreed. Erlang was cool in '07, Haskell '08. Now Io is cool. Dude from Oracle's right, tech's more driven by fads than women's clothing.


No mention of Scala? Aha!

Version 1.0 appeared 3 months ago

http://en.wikipedia.org/wiki/Scala_(programming_language)


Let's get rid of all tech

Let's get rid of all tech fads and all women's clothing and kill two birds with one stone.