GitHub and the World

By دستیار هوشمند صوفی

By 2006, Git was the Linux kernel's main tool and other projects were adopting it. But its reputation was mixed: powerful, fast and hard. Andrew Morton, a veteran kernel developer, joked that Git was "expressly designed to make you feel less intelligent than you thought you were."

Why Git was hard

In his 2015 interview with the Linux Foundation, Torvalds candidly admitted the reputation wasn't baseless. One reason, he said, was that Git really was complicated: early users had to learn "a very rough set of scripts", because all the effort had gone into making the core technology work and very little into making it easy or obvious. He added that this was mainly true for the first six months or a year.

The other reason was that Git was fundamentally different from older tools. Programmers who had used centralised systems for a decade or two faced new concepts and commands. Even the version numbers looked odd: instead of tidy numbers like 1.3.1, a "scary 40-character HEX number". Torvalds insisted the differences weren't "needlessly different"; they were required.

A website and a social idea

Against this background, a small team had a simple idea: if Git is powerful but hard, why not build a place that makes hosting repositories easy and turns working with code into a social experience? On 10 April 2008, co-founder Chris Wanstrath wrote on the company blog: "GitHub is officially live. Thanks for the awesome beta everyone."

GitHub's idea went beyond storing code. Anyone could have a profile, follow other people's work, take a copy of a project for themselves and send proposed changes to its owner as a "pull request". Discussion about code happened right next to the code. Suddenly programming, often a solitary activity behind closed doors, became public and visible, something like a social network for makers.

The creator's view

Interestingly, Torvalds himself criticised part of this experience. In the same interview he called GitHub "an excellent hosting service" and said he had nothing against it; but as a development platform, at least for something like the kernel, he found it far too limited. In his view its web interfaces had encouraged bad habits such as poor commit messages, though he acknowledged some of that had since been fixed.

That tension is instructive. A tool built for a professional group with very particular methods reached millions of people through a simpler layer. That layer may not have suited the kernel, but it opened the door for the rest of the world.

From tool to infrastructure

Git and GitHub grew together. Torvalds said in 2015 that despite the huge inertia in switching version control systems, Git took over other projects "surprisingly quickly, in the end."

On 4 June 2018, Microsoft announced it would acquire GitHub for $7.5 billion in Microsoft stock. The official announcement said GitHub had over 28 million developers at the time and would continue to operate independently. Nat Friedman became GitHub's CEO and Chris Wanstrath joined Microsoft.

The turning point

The turning point of this part was the moment a powerful technology gained a simple, social experience. A tool built in a crisis for a single project became collaboration infrastructure for a large share of the world's programmers.

Lesson for businesses

Strong technology isn't enough; experience and community are what make it universal. Sometimes the biggest value is not in building the engine but in building the steering wheel and a comfortable seat for it.

Second, take constructive criticism seriously, even when it comes from the person whose product your business depends on.

Third, build businesses on open tools and give back to them. GitHub was built on Git and helped Git grow; the relationship ran both ways.

Next series: before all this, in 1998, a major internet company made an unprecedented gamble and opened its browser's code. The story of Netscape and the birth of Firefox.

منابع / Sources

Reconnecting

The connection to the server was interrupted. Joining again.

Reconnecting

The previous attempt failed. Waiting to try again.

0s · 1 / 30

Could not reconnect

Reload the page to start a new session, or retry the connection.

Session ended

This session is no longer available. Reload the page to continue.

Session paused

The server paused this session. Resume to continue.

Could not resume

Reload the page to start a new session, or retry resume.