DUICUO

何百万人ものユーザーを抱えるテクノロジー界の大物が、データベースを削除して逃げ出すほど貧乏だったなんて、どうしてあり得るのでしょう?

テクノロジーの世界に注目している人なら、最近このことについて聞いたことがあるはずです。

オープンソース プロジェクト faker.js および color.js の開発者である Marak 氏は、一夜にしてすべてのプロジェクトを消去し、悪意のあるコードを詰め込んだ。

Marak はあまり知られていませんが、これら 2 つのプロジェクトはオープンソース コミュニティで非常に人気があります。

Faker.jsは開発者が偽データを生成するのに役立ち、Color.jsはWebページのカラー化に役立ちます。これらを合わせると、NPM(コンポーネントライブラリウェブサイト)で毎週約2,700万回ダウンロードされています。

そのため、Marakの行動により多くのユーザーが突然作業不能になり、大きな混乱が生じました。ユーザーアプリケーションでは文字化けが発生しました。▼

もちろん、マラクがこれをしたのは、正午に2杯余分に飲んだからではありません。

むしろ、彼の仕事が様々な企業に無償で搾取され、経済的にも困窮していたことが、彼の心のバランスを崩す原因となっていた。

この物語には細かいところがたくさんあるので、簡単に説明します。

2020年10月、マラクさんは自分のアパートが火事になり、家財道具がすべて焼け落ちたとツイートした。通りすがりの人が何か手助けをしてくれることを願っていた。

リポストやいいねの数の少なさから判断すると、彼は大したお金を受け取っていないのではないかと思います。

その後、彼は内部情報筋から、多くの大企業が彼のプロジェクトを積極的に活用していることを知りました。

彼は作家としてお金を稼ぐことができなかっただけでなく、今ではホームレスにもなっている。

おそらく誰でも、そのような状況では少しイライラするでしょう。

そこでマラクは、今後は無料で提供したくないという声明を発表しました。

あなたたちフリーローダーは、私に6桁の契約を与えるか、コードのコピーをフォーク(複製に類似)して自分で研究してください。

しかし、彼に注目する人はあまり多くありませんでした。

その後、彼は生計を立てるために、Faker.js をベースにした Faker Cloud という Web ベースのアプリケーションを作成しました。

しかしすぐに、別の会社が Faker.js をベースにした同様のサービスを開発していることを知り、その会社にメールを送って Faker Cloud を買収すべきかどうかを尋ねました。

しかし、相手は形式的な返事をしただけで、それ以上の反応を示しませんでした。

結局、トップレベルのオープンソース プロジェクトを所有していたこの男は、貧しく、金を稼げず、常に搾取されていたため、リポジトリを削除することを選択しました。

この件に関してネットユーザーの間で意見が完全に一致しているわけではない。

彼はルールに従っていないと言う人もいる。「あなたはすでにオープンソースにしているので、たとえ他の人が無料であなたを利用したとしても、彼らは依然としてルールに従っているのです。」

しかし、「民衆のために薪を運ぶ人たちを風雪で凍死させてはならない」と考える人は多い。

つまり、これらの開発者はすべての人に利便性を提供しており、困難に直面したとき、彼らの仕事を活用する企業は何らかのサポートを提供する必要があるということです。

皆さんの意見を聞きたいのですが、事実だけを述べさせてください。データベースを削除するのは許容範囲ですが、彼の意図は間違っており、悪意のあるコードをプッシュすることはさらに間違っています。さらに、Faker.jsを無料で使用している企業は法的に間違っているわけではありません。

ここまで読んで、「まさかフリーローダーを公然と支持しているんじゃないの?」と焦りを感じている読者もいるかもしれません。もちろん違います。記事末尾の「いいね!」やシェア数を見れば、著者である私がフリーローダーを推奨したことは一度もないことがお分かりいただけるでしょう。

視点を説明する前に、まずはオープンソースについて学んでみましょう。

これをよりよく理解するために、コードをレシピとして考えてみましょう。

あなたは料理を作るのが上手で、そのレシピも書き留めています。

オープンソースとは、レシピを公開し、他の人が材料や成分を見てコピーできることを意味します。

もちろん、他の人も自分の好みに合わせてレシピに変更を加えることができます。

これこそがオープンソースの本質です。

ただし、オープンソース コミュニティを維持し、コードが悪用されるのを防ぐために、コードをリリースするときにオープンソース ライセンスを追加するのが一般的です。

オープンソースライセンスは数百種類あり、規模も様々であるため、非常に複雑になっています。現在主流となっているのは、MIT、GPL、BSD、Apacheです。

主な違いは、誰かがコードを変更した後にそのコードをクローズドソース(非公開に保持)できるかどうか、また同じオープンソース ライセンスに従う必要があるかどうかです。

画像出典:Ruan Yifengブログ ▼

たとえば、GPL ライセンスを選択した場合、誰かがあなたのレシピを変更した場合、それを公開する必要があり、隠すことはできません。

しかし、より緩やかなMITライセンスを選択すれば、他の人はレシピを改変した後に公開する必要がなくなり、それを「秘密のレシピ」として使って屋台を開き、お金を稼ぐことさえできます。データベース削除事件に関与したMarak氏は、MITライセンスを選択しました。

この契約では、他の企業が Faker.js を使用して収益を得ることができないとは規定されておらず、また Faker.js を使用した後に Marak に支払いをしなければならないとも規定されていません。

つまり、法的に言えば、彼が何かを無料で手に入れることには何の問題もありません。では、なぜマラクの考えは間違っているのでしょうか?

まず第一に、プロジェクトがオープンソース化されると、自分の創作物を他の人と共有することになり、誰にとっても物事が簡単になります。

第二に、プロジェクトがオープンソース化されると、自然と多くの人が参加するようになります。そして、協力して改善と最適化に取り組むことで、技術の進歩が加速します。

したがって、オープンソースの本質は、すべての人に利便性を提供し、技術の発展を促進することです。

しかし、Marakはどうだったでしょうか?彼はMITライセンスを選択したのですから、他人が自分の作品から「利益を得る」ことを覚悟しておくべきでした。ところが、他人が彼のプロジェクトで利益を得ているのに、自分は利益を得ていないという理由で、彼は激怒してデータベースを削除し、悪意のあるコードまで挿入してしまいました。

これはおそらくオープンソースの精神に反するでしょう。もしすべてのオープンソースのメンテナーがMarakのような人だったら、すべてが混乱するのではないでしょうか?Marakが本当に金儲けをしたいなら、実際には方法はいくらでもあります。

これら 2 つの人気のあるオープンソース プロジェクトがあれば、良い仕事を見つけるのに苦労することはないと思います。

あるいは、Red Hat のように、製品の無料バージョンを提供し、ユーザーが技術的な問題に遭遇したときには有料サポートを提供するという方法もあります。

全てがうまくいかず、諦めたくなった場合は、以前と同じように、あらゆるプラットフォームにスポンサーコードを投稿することもできます。ただ、誰かがあなたを助けてくれるのは、義務ではなく、好意なのです。

もちろん、この記事の目的は Marak を批判することではなく、むしろこの事件がオープンソース コミュニティの現状を反映しているからです。

Marak氏のように、ほとんどの開発者はオープンソースプロジェクトへの投資からほとんど、あるいは全く利益を得ていません。Tideliftというアメリカの企業は、オープンソースプロジェクトの管理を支援する製品を提供しており、多くの優秀な開発者と定期的に交流しています。

昨年、彼らは400人を対象に「オープンソースメンテナーの現状」と題した調査を実施しました。その結果、オープンソースメンテナーの46%が、オープンソースプロジェクトからの収入が1セント未満であることが明らかになりました。

10,000 ドルで 1 年間の食費、宿泊費、交通費を賄えると仮定すると、開発者のわずか 13% (7% + 1% + 5%) しか要件を満たすことができません。

言い換えれば、オープンソースで生計を立てられる開発者は10人に1人しかいないということです。現実はおそらくさらに悪いでしょう。

この記事を執筆中、7年間プログラマーとして働いている友人にインタビューしました。彼はオープンソースは良いもので、インターネットの発展に有益だと言っていました。しかし、「オープンソースとは、ただ情熱を燃やして、それでお金を稼ぐことなのか」と尋ねると、「ビジネスモデルがよく分からない」と答えました。

実際、ほとんどの開発者は彼と同じで、ビジネスマインドが欠如しており、オープンソースを始めた当初は金儲けのことなどほとんど考えていなかった。オープンソース化によって得られる物質的な利益といえば、履歴書に載せて適当な仕事を探すか、せいぜいQRコードを貼って小遣い稼ぎをするくらいしか思いつかない(収入は完全に他人のやる気次第だが)。

彼らの考えは非常に純粋で、技術開発を促進することです。もちろん、私たちは皆普通の人間ですし、お金が嫌いな人はいないでしょう?オープンソースでより多くの収益を生み出せれば、彼らは間違いなく喜ぶでしょう。

しかし、たとえ利益が出なくても、彼らはそれほど気にしないでしょう。オープンソースを選んだ時点で、彼らは愛ゆえにそれを貫く決意を固めていたのです。彼らは今後も、更新すべきものは更新し、修正すべきものは修正し続けるでしょう。

少し前に発生したlog4J2の脆弱性インシデントについては、誰もがご存知でしょう。インシデント発生後、一部の人々は責任転嫁に走り、一部の人々は脆弱性の影響を懸念しましたが、log4J2のメンテナーのことを気にかける人はほとんどいませんでした。

信じられないかもしれませんが、Log4J2のような大規模なオープンソースプロジェクトは、わずか3、4人のプログラマーが余暇を使って管理・保守しています。脆弱性が発見されると、彼らはすぐに修正に着手しました。彼らは何か見返りを求めたのでしょうか?

報われない仕事ではありますが、彼らは諦めずに頑張っています。彼らのようなオープンソースのメンテナーは他にもたくさんいます。私たちには彼らを支援しなければならない義務はありませんが、それでも皆様には、可能な限り彼らに注目し、サポートしていただければ幸いです。

彼らはツールと知識を共有し、他の人々に利便性をもたらし、技術の進歩を加速させました。彼らはインターネットの発展に大きく貢献し、真に意義深いことを成し遂げていたのです。

彼らがオープンソースを選んだ理由と、それを継続させた理由を本当に知りたいのであれば、おそらく Tidelift のアンケートで答えが得られるでしょう。

開発者の 71% が「世界に良い影響を与える」を選択しました。