Linuxの30年。リーナス・トーバルズへのインタビュー。パート2





インタビューの最初の部分



分散バージョン管理システムGit



JA:Linuxは、オープンソースの世界に世界的に影響を与えるプロジェクトの最初のものにすぎません。 2005年には、非常に人気のある分散バージョン管理システムであるGitも作成しました。あなたはすぐにあなたは、オープンソースを作り、新たに鋳造Gitリポジトリへの独自のBitKeeperリポジトリからあなたのLinuxカーネルソースツリーを移動させ、その同じ年、あなたはにGitのサポートを転送 ジュニオ・ハマーノ 。これらのイベントの歴史は魅力的です。このプロジェクトをすぐに引き継ぐようになったきっかけと、Junioをどのようにして見つけて選んだのかを教えてください。 



LT:つまり、この質問への答えは2つの部分に分かれています。





まず、  新しいソース管理システムを作成したくありませんでした。 Linuxが作成されたのは、ハードウェアとソフトウェアの間の低レベルのインターフェイスに非常に興味があったためです。原則として、この作業は主題への愛情と個人的な興味から行われました。それどころか、Gitは必然的に作成されました。ソース管理に興味があったからではなく、当時利用可能なバージョン管理システムのほとんどが私に本当に嫌悪感を与え、私にとって最も耐えられ、同時に、Linux開発モデル(BitKeeper)で非常にうまく機能し、破産しました。



結論:私はLinuxに30年以上 取り組んでました(最初のリリースの記念日までにはまだ数か月あり ますが、30年以上前にLinuxになったものに取り組み始めました)。それをサポートしてきました。しかし、Git?長期的にどうやって維持するかすら考えていませんでした。私は間違いなくそれが好きです、そしてもちろんそれは利用可能な最高のソース管理システムだと思います、しかしあなたが私の意味を知っているなら、それは私の大きな愛と情熱ではありません。 



そのため、私は常にこのソース管理システムを維持してくれる人を見つけたいと思っていました。実際、私はそれをまったく書かないことを嬉しく思います。 



これがコンテキストです。



Junioに関しては、実際、彼はGitの開発に最初に参加した人の1人です。彼からの最初の変更は、私がGitの最初の(そして非常に粗雑な)バージョンを公開してから数日以内に私に届きました。したがって、JunioはGitのごく初期の頃から、このプロジェクトに関与してきました。



しかし、私が最初に会った人にプロジェクトを引き渡したとは思わないでください。私はGitを数か月間維持していますが、Junioにこのサポートを引き継ぐかどうかを尋ねるきっかけとなったのは、「美味しさ」の微妙な感覚です。確かに、私はそれをより正確に説明することはできません。プログラミングは技術的な問題を解決することに還元されますが、要点は どのようにあなたはそれらを解決します、そしてこれは時間とともに認識され始めるそれらの事柄の1つです:特定の人々は「良い味」を持っているので「正しい」解決策を選びます。   



プログラミングは基本的に優れたエンジニアリングであるため、プログラミングが芸術であると偽りたくありません。私はトーマス・エジソンの「1パーセントの才能と99パーセントの勤勉さ」というマントラを深く信じています。成功のほとんどすべてのポイントは、細部と日常業務にあります。しかし、それでも、「インスピレーション」とその「美味しさ」を示さなければならない場合があります。つまり、問題を解決するだけでなく、問題をきれいに、正確に、そしてもちろん、美しく解決する必要があります。 



ジュニオはそんな「美味しさ」を持っています。



Gitに関しては、これについて非常に明確に覚えています。Gitを開拓し、そのコアアイデアを設計している間、私はしばしばそれに対して圧倒的な認識を得ることがあります。これは15年以上前のことで、私は最初の1年間だけGitに没頭していました。 JunioはGitをサポートする模範であり、Gitが今日の姿であるのは彼のおかげです。  



ちなみに、この「美味しさ」とそれを持っている人を探すこと、そしてこれらの人を信頼する能力を備えたこのストーリー全体は、Gitだけでなく、Linuxの歴史全体にも当てはまります。 Gitとは異なり、Linuxは私が今でもサポートしている製品です。 私は積極的に関わっていますが、LinuxがGitと多くの点で似ているのは、プロジェクトに膨大な数の人々が関与していることです。 Linuxの最も注目すべき成果の1つは、文字通り何百ものアクティブな貢献者がLinuxをサポートしており、カーネルのさまざまな部分を担当するすべての貢献者が、「味覚」を定義するのが難しいことだと思います。   



JA:誰かにサポートを委任した後、この決定が間違っていることに気付いたことがありますか? 



LT:私たちのサポート作業の構造は、問題を引き起こすほど白黒または柔軟性に欠けることはありませんでした。実際、サポート手順を完全に文書化しようとする可能性はほとんどありません。はい、MAINTAINERSファイルがありますが、それはあなたができるように作成されました   適切な人を見つけることは、実際にはある種の独占的な所有の兆候ではありません。



したがって、「何を所有しているのか」という構造全体は、ほとんどがプラスチックであり、方向付けを目的としています。これは、「この人はアクティブで、仕事をうまくやっている」という意味であり、「おっと、私たちはその人にプロジェクトを委託しましたが、彼はそれを受け入れてすべてを台無しにした」。



あるサブシステムをサポートしているという意味でも状況は可塑的ですが、別のシステムから何かを取得する必要があるため、これらの境界は透過的です。通常、そのようなことは最初に 人々と活発に 議論され、それから行われるのですが、要点はそのような慣習があり、「このファイルにしか触れられない」というような厳格なルールはないということです。 



実際、ここではパート1で提起されたライセンスのトピックを再検討し、Gitが設計されている原則の1つである「誰もが独自のツリーを持っており、技術的には特別なツリーはない」ことを強調します。 



他の多くのプロジェクトがCVSやSVNのようなツールを使用しているので、基本的に一部の人々 特別になり、そのステータスに伴う「所有」を利用します。 BSDの世界では、この現象は「コミットビット」と呼ばれます。これはビットであり、その所有者は中央リポジトリ(または少なくともその一部)にコードをコミットする権利を持っています。



私は常にこのモデルを嫌っていました。なぜなら、それは必然的に政治に影響を及ぼし、開発者コミュニティで「クリーク」を生成し、一部の人々は特権を与えられ、デフォルトで信頼されているからです。問題は、彼らが「デフォルトで信頼している」ということではなく、コインの裏側にあります。彼ら誰かや 他の人を 信頼しておらず、定義上、彼らは1つを通過する必要がある部外者であることが判明します。仕事を成し遂げるための「警備員」の。



繰り返しますが、これはGitには当てはまりません。誰もが平等です。誰もがブランチのクローンを作成し、独自の開発を開始できます。うまくいけば、マージすると、ブランチはメインブランチに戻ることができます。うまくいけば、サポートを任せられます。それらのツリーのコードをマージする責任を持ち始めた人。彼らが責任を負っています;)。



したがって、「ちょっとした確認」などの特別な特権を人々に与える必要はありません。また、コミットポリシーが発生せず、「デフォルトで信頼する」必要がないことも意味します。誰かが悪い仕事をしたことが判明した場合、またはより頻繁に、その人は単にプロジェクトへの興味を失い、仕事がより面白かったと感じた場合-彼らの仕事はマージ時にメインブランチに入らず、彼らは下で混乱することはありません新しい、新鮮なアイデアを提供できる他の人の足。



JA:Gitの新機能に感銘を受け、ワークフローに組み込んだことはありますか?あなたの意見では、Gitにまだ欠けている機能に名前を付けることができますか? 



LT:もちろん、まず第一に、満足した機能への願いだったので、新しい機能について考える必要はほとんどありませんでした。



Gitは何年にもわたって確実に改善されており、これらの改善のいくつかは私のワークフローにも反映されています。たとえば、Gitは常に非常に高速でした。結局のところ、それは私がやろうとした設計目標の1つでしたが、多くの作業は元々、いくつかの基本的なヘルパープログラムを中心に編成されたシェルスクリプトで行われました。何年にもわたって、これらのシェルスクリプトのほとんどはなくなりました。つまり、AndrewMortonのパッチキットを最初よりも速く適用できるということです。パフォーマンステストの最初のベンチマークの1つとして使用したパッチの操作速度であったため、これは非常に励みになります。



ですから、私にとって、Gitは常に優れていましたが、時間の経過とともに改善されました。



重要 改善点は、「通常のユーザー」がGitを操作するのがどれだけ快適になったかに関連しています。人々がGitでタスクフローがどのように機能するかを理解し、それに慣れたという事実が主な理由です(これは 、人々が以前に慣れていたCVSや他のアナログとは  大きく異なります)が、Git自体ははるかに快適になっています使用する。






Macleodのクラウドサーバー 高速で安全です。



上記のリンクを使用するか、バナーをクリックして登録すると、任意の構成のサーバーをレンタルした最初の月が10%割引になります。






All Articles