Linus Torvalds on Git
In 2007 Linus Torvalds gave a talk about git at Google. His presentation style was very spontaneous and half of the session was spent answering questions from the audience. People who've known me over the years will know I have a certain appreciation for this type of interactive presentation.
This is the kind of talk that nobody would dare to give in post 2019. The language is direct, funny and genuine. You can clearly notice his bias for certain things, like good code and his annoyance towards slow systems. Openly criticising other products based on facts and years of usage or even dissing Google developer, while standing on stage AT GOOGLE, in front of google developers. What a Legend.
Evan You, Creator of VueJS, hints at the potential fallout of speaking freely.
Source : original tweet
before you conclude that the quotes were insensitive or rude, this is 2007 and jokes were allowed back then. These quote might indeed seem rude out of context, which is why I recommend watching the entire talk on youtube
Talking about how he hates CVS with a passion
For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source control management system than CVS is.
SVN also gets bulldozed upon
if there are any SVN users, Subversion, users in the audience, you might want to leave.
my hatred of CVS has meant that I see Subversion as being the most pointless project ever started
Merging in Subversion is a complete disaster. The Subversion people kind of acknowledge this and they have a plan and their plan sucks, too.
It is incredible how stupid these people are.
So for example, let's go back to one of the things where I think the designers of Subversion were complete morons.
Strong opinions. That's me, right?
There's a few of them in the room today, I suspect.
You're stupid. (Crowd laughs)
Nobody is interest in branching. Branches are completely useless unless you merge them.
Some nice words about Bitkeeper
BitKeeper was not only the first source control system that I ever felt was worth using at all, it was also the source control system that taught me why there's a point to them and how you actually can do things.
Linus teaches you how to use git
There is this thing called google.com.
You may have seen it.
It has this thing you can type things into.
You type Git and then you press the I'm Feeling Lucky button, and you will actually get the home page.
The home page has tutorials, it has the user manual, they're all in HTML.
If you actually want to learn to use Git, that's where you should start, not at this talk.
Linus jokes about people disagreeing with his talk
You can disagree with me as much as you want, but during this talk, by definition anybody who disagrees is stupid and ugly.
I have strong opinions about CVS users, if you actually like using CVS, you shouldn't be here. You should be in some mental institution somewhere else.
He talks about Open Source.
As far as I'm concerned I do open source because I think it's the only right way to do software. But at the same time, I'll use the best tool for the job.
Branches in git.
In fact, in Git, we like branches so much that a lot of people just have five or ten or fifteen of them.
He asks the audience :
What do you use here?
Linus jokes about programmers writing new features
..nobody actually creates perfect code the first time around, except me, but there's only one of me.
About Distributed Systems & Trust.
The way merging is done is the way real security is done, by a network of trust. If you have ever done any security work and it did not involve the concept of network of trust, it wasn't security work. It was masturbation.
The way I work, I don't trust everybody. In fact, I am a very cynical and untrusting person. I think most of you are completely incompetent. The whole point of being distributed is I don't have to trust you.
Trust means (...) you have to accept other people's decisions.
If you have determined that somebody else is smarter than you, go for it. You can't lose, right?
Remember, distribution means nobody is special.
When I merged from somebody, I trust them. But on the other hand, hey, they might have stopped using their medication.
Geeks & Friends
We don't know 100 people.
We have five, seven, ten close, personal friends.
Well, we're geeks, so we have two.
Git is better.
Git is much easier to use than CVS, really.
It's easier to use than anything else.
Just get over it.
Trust me, when you're used to taking 1/10 of a second (for git diff), 30 seconds sounds pretty bad.
Git, by default, gives you one branch that is called master. It's short and sweet and to the point. It's the master branch.
If you can do something really fast really well, people start using it differently.
Git tracks your content. It never, ever tracks a single file. You cannot track a file in Git. What you can do is you can track a project that has a single file.
Talks about KDE
I like KDE but trust me, they put every single component in one repository. Not very smart.
One of the comments on the youtube page struck me:
as a young person I always kinda assumed that git was always there... hard to believe it's only 10 years old...
Think about that.
Tooling is so much better today that it was decades ago, there are so many thing we take for granted, perhaps simply because we don't know the struggles of our ancestors, what drove them, or what motivated them to the point that they paused working on products, and started working on tooling, to be able to work on the products better.
Tooling, today, in tech keeps on evolving, from webpack to kubernetes. In a way making it harder to keep up, but at the same time pushing the boundaries of our craft further day by day.
Technology is amazing. Open source is beautiful.