|
スウェーデンのプログラマー、ダニエルは、世界で最も人気のあるソフトウェアである cURL の開発に 28 年を費やしました。 cURL は、データの転送を容易にするライブラリ (liburl) とコマンドライン ツールを提供します。 最もよく知られている HTTP および HTTPS をはじめ、FTP、FTPS、Gopher IMAP、Kerberos、LDAP、MQTT、POP3、RTSP、SCP、SMTP、SMB など、ほぼすべてのトランスポート プロトコルをサポートしています。 データ伝送の分野では、できないことは何もなく、想像できないことだけがあると言えます。 この特性のため、次のようなデバイスやソフトウェアに広くインストールされています。 Linux、Windows、iOS、Android、macOS などの主流のオペレーティング システム。 Nintendo Switch、Xbox、Sony PS5などのゲーム機。 写真 既存の IoT デバイスのほとんどには、スマートキッチンや医療機器、プリンター、スマートウォッチ、スマートカーが含まれます。 写真 ダニエル自身は、curl と liburl が世界中で 200 億台以上のデバイスにインストールされていると推定しています。 写真 しかし、世界で最も人気のあるソフトウェアを開発した後、ダニエルは殺害予告を受けました。 写真 どうしたの? 2024年、FOSDEMカンファレンスでダニエルはcURLの開発を振り返り、目立たない小さなツールを28年間かけていかにして世界で最も普及したソフトウェアへと変貌させたかを語りました。その道のりにおける苦難、献身、そして粘り強さは、読む価値のあるものです。 1. 小さなプロジェクトから始めるcURL も、無名の小さなプロジェクトから始まりました。 写真 ダニエルは当初、ウェブサイトから為替レートデータを自動的にダウンロードしたいと考えていました。他の多くの人と同じように、彼はまずhttpget onlineというオープンソースプロジェクトを見つけ、熱心に使い始めました。 彼は、ほとんどの人と違って、後に httpget のメンテナーとなり、Gopher と FTP のサポートを追加して、その機能をさらに拡張し始めました。 この時点で、httpget と呼ぶのはもはや適切ではなくなったため、Daniel は cURL と名前を変更しました。 1998 年当時、このソフトウェアのダウンロード数は 300 回しかなかったのですが、ダニエルさんは友人の数より多く、とてもすごいことだと思いました。 写真 ダニエルは野心家ではありませんでした。2年で300人のユーザーを獲得できるなら、20年後には3,000人のユーザーを獲得できるだろうと考えていました。 (これは私が初めてWeChatの公開アカウントで書き始めた頃を思い出させます。1年以内にフォロワーが1万人いれば十分だと思っていましたが、たった1年で10万人に達するとは思っていませんでした。) 2. 粘り強さと努力すぐに成功するプロジェクトはほとんどありません。世界にはオープンソースソフトウェアや優れたアイデアが不足しているわけではありません。市場には類似のソフトウェアプログラムが何千とあります。あなたは何が特別なのでしょうか?成功できるほど特別な理由は何でしょうか? 写真 cURLが大きな成功を収めた後、多くの人がダニエルに何をしたのか尋ねました。ダニエルはこう答えました。「より多くの時間を費やしました。」 誰もがそれぞれの家族や生活を持っています。オープンソースソフトウェアに費やす時間が増えれば、他のことに費やす時間は必然的に減ってしまいます。 たとえば、ダニエルはコンピュータゲームをまったくプレイしません。節約した時間はすべて cURL に費やしています。 cURL が有名になる前は、Daniel だけが静かに cURL を開発していました。暗闇の中を一人で歩くようなもので、孤独は避けられませんでした。 写真 「人気を高める」ため、彼は他のユーザーになりすまして自分のプロジェクトにプルリクエストを送り、他のユーザーからのコメントを期待しました。しかし、ほとんどの場合、誰も注意を払わなかったため、ダニエルは黙ってリクエストをマージし、先に進むしかありませんでした。 (これは、馬化騰が美しい女性のふりをして人々とチャットしていたQQの初期の頃と少し似ています。) オープンソース ソフトウェア開発には魔法の弾丸はありません。孤独に耐えて懸命に働くことだけです。 3. 安全と責任すべてのソフトウェアには脆弱性があり、特に200億回もインストールされているソフトウェアには脆弱性が存在します。セキュリティ上の脆弱性は、ユーザーに非常に深刻な影響を及ぼす可能性があります。 ダニエル氏は、深刻な脆弱性が明らかになったときは夜も眠れなかったが、自分にできることは何もなかったと語った。それは自分のソフトウェアであり、責任を取らなければならなかったのだ。 写真 誰でも間違いを犯しますが、その間違いにどう対処するかが最も重要です。ダニエルができることは、次のとおりです。 (1)読みやすいコードを書く (2)良いドキュメントを書く (3)多数のテストを実施する (4)様々なツールを使用してコードを分析します。 (5)ファジーテスト (6)バグバウンティ:バグ発見者に実際のお金で報酬を与えます。 4 人でコードを書くよりも難しいです。写真 コードの記述は簡単で、自由に変更、デバッグ、異なるアルゴリズムでの書き換えが可能です。 しかし、人とのやり取りは非常に難しい作業であり、オープンソースで働く期間が長くなるほど、直面する課題も大きくなります。 大きな森にはあらゆる種類の鳥が生息しています。 彼らは、あなたが間違ったプログラミング言語を選択した(どの言語でも間違っている可能性がある)、間違ったテクノロジーを選択した(古すぎる、愚かすぎる、悪すぎる)、そして、あなたが彼らの問題を解決できない(たとえ cURL が彼らの問題のために設計されていなかったり、彼らが cURL を効果的に使用する方法を知らないとしても)と言うでしょう。 気に入らないことや不快なことがあれば、攻撃的な態度で挑戦します。 友好的な職場環境を維持するために、ダニエルは返答する際には注意し、落ち着いた口調で友好的かつ丁寧な態度を保つように努めました。 返信するときは、深呼吸をしてください。それでも不安な気持ちになるなら、今は返信しないでください。 オープンソースとはそういうものです。すべてが正常である限り、誰も賞賛の言葉を口にしません。 小さなエラー、特にかなりばかげたバグが発生した瞬間、人々は狂ったように文句を言い始めます。 オープンソース プロジェクトのメンテナーとして、相当の批判に耐えられるだけの強さが必要です。 大多数の人はユーザーであり、貢献者ではありません。cURLは200億回インストールされていますが、貢献者はわずか1,240人です。さらに、多くの貢献者はコメントのスペルミスを修正して送信するだけで、二度と戻ってきません。 しかし、驚くようなこともありました。開発者の中には、cURLのアーキテクチャとコードを完全に正確に理解した上で、驚くべきパッチを突然提出してきた人もいました。本当に素晴らしいことです。 面白い/怖い5つのことダニエルは著作権ページに自分のメールアドレスを残しました: 写真 驚くべきことに、cURL は様々なデバイスやソフトウェアで使用されているため、ユーザーはこれらのデバイスやソフトウェアで問題が発生すると、必死に解決策を探します。cURL の著作権情報を見つけ、ダニエルのメールアドレスを見て、すぐにそれをライフラインのように扱い、様々な奇妙な事態を引き起こします。 写真 写真 写真 人々を面白がらせ、同時に苛立たせているこれらの cURL リクエストを見て、Daniel は次のようにコメントしました。「すごいですね。cURL が Instagram、Spotify、BMW、Corolla で使われるとは想像もしていませんでした...」 cURLは非常に便利なため、ハッカーに悪用される可能性があります。被害者の中には、cURLの痕跡を見つけてダニエルのような無実の人々を脅迫する人もいます。 最もクレイジーだったのは、実際に誰かが彼を殺そうとしたときだ。 写真 この人物はハッキングされて数百万ドル規模のプロジェクトを失ったため、ダニエルに怒りをぶつけたのです。 ダニエルは本当の脅威を感じ、警察を呼ぶしか選択肢がなかった。 数か月後、その男性は自分の間違いに気づき、ダニエルに謝罪の手紙を送った。 6. まとめダニエルは自分を天才だとは思っていません。彼は単にインターネットデータ転送ツールを開発したいだけです。 彼は cURL に多大な時間を費やし、その機能の改良、コミュニティの構築、ユーザーの誘致に取り組んできました。彼の長年の努力が現在の成功につながっています。 写真 どうすれば 28 年間もプロジェクトに「一生懸命取り組む」ことができるのかと不思議に思うのは当然です。 答えは非常に簡単で、ダニエルが繰り返し強調しているように、「楽しむこと」です。 Linuxの創始者はこうも言っています。「ただの楽しみのために」 はい、すべては興味から生まれたものです。 参考文献ダニエルのスピーチ: https://archive.fosdem.org/2024/schedule/event/fosdem-2024-1931-you-too-could-have-made-curl-/ |