|
著者: Qianshan 校正者:Mo Qi 近年、中国ではオープンソースの人気が高まり、目覚ましい勢いを見せています。政府は戦略的にオープンソースを支援しており、第14次五カ年計画や2035年ビジョンに初めてオープンソースを盛り込みました。企業分野では、ファーウェイやアリババといった大手企業が主要プロジェクトをオープンソース化しています。開発者に関しては、GitHubの2021年年次報告書によると、中国の開発者ユーザー数は755万人で、世界第2位となっています。 しかし、壮大な物語が個人の経験に取って代わることは決してありません。オープンソースが個々のプログラマーにとってメリットとなるのかデメリットとなるのかは、議論の余地のある問題です。 プログラマーたちはオープンソースを推進し続けています。しかし、最終的に利益を得るのは本当に彼らなのでしょうか?オープンソースの主力は間違いなく膨大な数のプログラマーですが、世間一般で言えば、彼らは本当にその恩恵を受けているのでしょうか?おそらく明確な答えを出せる人はほとんどいないでしょう。 まず、オープンソースに関わる開発者のうち、企業から要請されたものを除けば、自発的に参加している人はごくわずかです。「2021-2022 中国オープンソース開発者調査報告書」によると、回答者のうちオープンソースプロジェクトへの自発的な参加を表明したのはわずか18%でした。注目すべきは、この報告書にはオープンソースからの開発者の収益に関する調査データも掲載されており、68%が「いいえ」、17%が「ほとんどない」と回答しています。 利益という動機がなければ、情熱を持って活動するのは本当に難しいことが分かりました。あるプログラマーは率直にこう言いました。「中国では大企業しかオープンソースに取り組む余裕がなく、中小企業や個人にはそのエネルギーがありません。」コードをオープンソース化しても収益が得られないだけでなく、他者を支援し、彼らの問題を無料で解決しなければなりません。つまり、継続するのは実に難しいのです。 Log4j2のセキュリティインシデントを受けて、Log4j2のメンテナーの一人であるVolkan Yazıcı氏はTwitterで次のように不満を述べました。「Log4j2のメンテナーはほんのわずかです。彼らはボランティアで、無給で働いています。誰も彼らに報酬を支払わず、問題を修正するためのコードを提出する人もいません。問題が発生すると、リポジトリ内の大勢の人々から叱責されるのです。」 オープンソースの作者であるMarak Squires氏がリポジトリを削除して逃亡した時、現在それを使用している多くの開発者に甚大な打撃を与えたにもかかわらず、他の多くの人々は理解でき、「許される」と感じたのもまさにこのためです。企業が無料のリソースを悪用しながらコミュニティに一切還元しないオープンソースソフトウェアの搾取は、オープンソースプロジェクトのメンテナーにとって常に悩みの種でした。オープンソースプロジェクトから得られる利益はメンテナーとは全く関係がなく、問題が発生すると責任を直接転嫁し、オープンソースの作者を完全に「スケープゴート」にする人もいます。 さらに、企業のニーズでオープンソースに参加している人でも、メリットよりも問題に直面することがあります。まず、ユーザーの増加を真の目標としてオープンソース化している企業があります。この目的に駆り立てられるため、このようなプロジェクトはコアコントリビューター以外の人にとって参入障壁が高くなっています。コア開発者が辞めたり、会社のKPIが変更されたりすると、プロジェクトは事実上破綻してしまいます。次に、フルタイムのオープンソースコントリビューターとしてのパフォーマンスをどのように証明するのでしょうか?オープンソースがKPIの一部になると、必然的にプレッシャーがかかります。大企業の元従業員が、マネージャーが昇進のために意味のないオープンソースプロジェクトに会社のリソースを浪費したと暴露したという噂さえあります。一部の中間管理職は、盲目的に自分のパフォーマンスのKPIを設定し、プログラマーに大きな苦痛を与えています。KPI中心のアプローチでは、開発者は必然的にオープンソースプロジェクトへの熱意を失いますが、これは明らかに孤立したケースではありません。 オープンソースにはメリットがあるのでしょうか?もちろんあります。しかし…上記の文章では、努力が無駄になった多くの状況について触れてきました。では、オープンソースはプログラマーにとってメリットがあるのでしょうか?もちろん、多くのケースでメリットがあります。 まず第一に、知識の共有が実現します。テクノロジーの世界は広大で、一人では到底対応できません。優先順位を決定し、協力し、双方にとって有益な結果を生み出す方法を理解することは、より多くの価値を生み出すために不可欠です。あるネットユーザーは次のように述べています。 「オープンソースとは、一人のプログラマーが家を建て、すべてのプログラマーが無料でそこに住めるということではありません。むしろ、多くのプログラマーが、自分たちにもそういう家が必要だと気づくことです。そして、一人一人がレンガを積み、みんなでそれを使い、後の世代がその家を改築し、修理し、使い続けることができるのです。」 このモデルの利点は一言で言えば、「多くの人の手を借りれば作業が楽になる」ということです。また、車輪の再発明に伴う無駄を大幅に削減でき、車輪の品質は無数の人々の厳しい審査を受けることになります。 第二に、効率性の向上と市場の拡大です。プログラマーがオープンソースを選択することで、技術は徐々に製品化されていきました。「すぐに使える」というアプローチは、間違いなく効率性の向上、アプリケーションの急速な開発、そして市場需要の拡大につながりました。業界の市場規模が短期間で急速に拡大したことで、必然的に雇用需要が高まり、プログラマーにより多くの機会がもたらされました。 最後に、個人の場合、可能性はさらに広がります。例えば、履歴書の充実につながります。特定のオープンソースプロジェクトの人気は、作者のコミュニティにおける知名度と認知度を急速に高めることがあり、これは一部の企業にとって非常に貴重な資産となります。もう一つの例は、多額の金銭的報酬です。2020年には、Caleb Porzioというプログラマーが、GitHubへの寄付を通じて年間10万ドルを稼ぐ方法を公開しました。 しかし、物事には二面性があります。オープンソースによって多くの人が「すぐに使える」ものに慣れ、効率性が向上する一方で、コストも削減されました。マクロ的な視点で見ると、利用可能なツールの増加は、プロのプログラマーになるためのハードルを下げただけでなく、ある側面ではプログラマー本来の作業の一部を代替することさえあります。 もちろん、「すぐに使える」ほど単純ではなく、具体的なシナリオを考慮する必要があると考える人もいるかもしれません。しかし、ビジネス要件を満たすためにコードを修正するだけであれば、オープンソースコードを使用する方が、他の方法と比較して、学習コスト、時間コスト、デバッグコストが大幅に削減され、より直接的な結果が得られます。 さらに、テクノロジーは絶えず進化しており、オープンソースはこのプロセスを加速させています。これにより、プログラマーはより多くの技術的選択肢を持つ一方で、学習へのプレッシャーも高まっています。一方で、業界全体の成長が加速するにつれ、参入障壁が低下し、求職者も増加しました。その結果、既にこの分野で活躍している人々は、より強い適者生存の意識を強く感じるようになりました。 「ますます軽薄になる」というのは、多くのプログラマーにとって避けられない運命であるようだ。 私たちには詩と遠い場所が必要ですが、パンと水も必要です。オープンソースはもともと「自由」を中核理念として、独占を打破するために生まれました。そのささやかな始まりから広く普及するまで、オープンソースの歴史は興味深いものです。世界中の人々が、様々な理由でオープンソースの道を歩み始めました。 オープンソースはより高次の精神的欲求であると考える人もいます。「自分が他の人を助け、彼らに価値を生み出せると分かったとき、私は豊かさを感じ、自分の不足を恐れなくなります。なぜなら、他の人から肯定的なフィードバックを受けられるようになり、それが私自身を豊かにするからです。」 オープンソースは、継承と感謝の精神から生まれたものだと考える人もいます。「私は駆け出しの頃、多くの家族から慈善事業に携わって育ちました。ですから、成功したら、必ず自分のやり方で環境に貢献するつもりです。オープンソースの恩恵を受けたのであれば、道徳的にその恩恵を次の世代に伝えるべきです。」 しかし、多くのオープンソースプロジェクトの参加者やメンテナーが、効果的なフィードバックやサポートを受けられないまま、多大な時間と労力を費やし、最終的にプロジェクトを持続不可能にしてしまったことは否定できません。しかし、オープンソースプロジェクトの提供者も生き残る必要があります。 私たちは詩や遠い場所について語ることができます。なぜなら、そこに私たちの魂が宿るからです。しかし、私たちはパンと水も必要とします。なぜなら、それが現実に私たちが頼っているものだからです。 どうすれば両者のバランスをとれるでしょうか?参考になればと思い、いくつか提案させていただきます。 まず、オープンソースライセンスを慎重に選びましょう。オープンソース化を決意したのであれば、悪意のある営利組織がコミュニティへの貢献なしに一方的に利益を得ることをまず防ぐ必要があります。ここでオープンソースライセンスが重要になります。しかし、オープンソースライセンスは数多く存在するため、適切なライセンスを選ぶのは容易ではありません。ウクライナのプログラマー、ポール・バグウェル氏は、このことを説明する分析図を作成しました。著名な中国のプログラマー、ルアン・イーフェン氏は、将来の世代にとって定番となるであろう中国語版を作成しました。 第二に、オープンソースガバナンスを優先することが重要です。オープンソースガバナンスには、オープンソース関連リスクのガバナンス、オープンソースコミュニティのガバナンス、そしてオープンソースプロジェクトのガバナンスが含まれます。オープンソースソサエティの共同創設者であり、Apacheソフトウェア財団のメンバーでもあるLiu Tiandong氏は、公開インタビューで、国内のオープンソースプロジェクトはガバナンスよりも技術を優先する傾向があると述べましたが、彼自身の見解では、ガバナンスは技術よりも優先されるべきです。彼は「Apacheはコミュニティがコードよりも重要だと考えている」という見解を引用し、個人のヒーローは真のヒーローではないことを強調しました。「コードが平凡であっても問題ありません。全員がプロジェクトをより良くするために貢献し、努力を惜しまない限り、それが優れたオープンソースコミュニティの基盤となるのです。」 第三に、オープンソースをより持続可能なものにするためのメカニズムを構築する。Googleの暗号学者であり、Go言語のセキュリティ責任者でもあるフィリッポ・ヴァルソルダ氏は、オープンソースプロジェクトのメンテナーとソフトウェアを利用する企業の間で、有償サポートを確保し、オープンソースをより持続可能なものにするために、より専門的なコミュニケーションをとるべきだと訴えている。彼の主張は、大企業はプロジェクトがサプライチェーンのセキュリティと品質基準を満たすことを求めているため、利用するオープンソースプロジェクトに対して支払い義務を負うべきだというものだ。彼は、企業がオープンソースソフトウェア開発者と契約関係を築き、市場水準の給与を支払い、プロジェクトの品質保証と脆弱性への対処を義務付けるべきだと提言している。同時に、プロジェクトメンテナーは、プロジェクトの長期的な健全性を優先し、企業の要件を満たすために、プロジェクトを継続的に監視する自由を持つべきだ。 最後に、オープンソース プロジェクトのすべての開発者、メンテナー、ユーザーが目標を達成し、オープンソースから何かを得られることを願っています。 |