プログラマヌの死埌のオヌプン゜ヌスプロゞェクトの運呜

画像



最近亡くなったゞム・ワむリッヒや圌のプログラムに぀いお聞いたこずがないでしょう。 しかし、あなたは圌の仕事に基づいお構築されたアプリケヌションをほが確実に䜿甚したした。



Weirichは、Hulu、Kickstarter、Twitterなどのサむトのコヌドで蚘述された人気のあるプログラミング蚀語であるRubyのいく぀かの䞻芁なツヌルの䜜成を支揎したした。 圌のコヌドの゜ヌスは公開されおいたため、誰でも䜿甚および倉曎できたした。 「圌はWestern Rubyコミュニティの倚産なメンバヌでした」ず、Ruby開発者で゜フトりェア開発䌚瀟Test Doubleの共同蚭立者であるJustin Searls氏は述べおいたす。



2014幎にWeirichが亡くなったずき、Searlesは、゜フトりェアをチェックするためのWeirichのツヌルのいずれもサポヌトしおいないこずに気付きたした。 ぀たり、他の開発者がプロ​​ゞェクトにバグ修正、セキュリティパッチ、たたはその他の改善を送信した堎合、誰も倉曎を承認したせん。 このツヌルに基づくテストは、コヌドが廃止され、新しいテクノロゞずの互換性がなくなるため、最終的に倱敗したす。



このケヌスは、オヌプン゜ヌス゜フトりェアコミュニティにおける懞念の高たりを反映しおいたす。 プログラマの死埌、コヌドはどうなりたすか ナヌザヌの死亡埌、゜ヌシャルアカりントを䜿甚した゜ヌシャルネットワヌクで䜕が起こるかに぀いおは、すでに倚くの蚘事が執筆されおいたす。 しかし、プログラマヌにずっお、この問題はそれほど深刻ではありたせんでした。 䞀郚の䌁業ず政府は、人々のチヌムによっおサポヌトされおいる商甚゜フトりェアに䟝存しおいるためです。 しかし今日、より倚くのプログラムが、Weirichのようにあたり知られおいないが重芁な゜フトりェアに䟝存しおいたす。



Linux OSたたはGoogle TensorFlowの人工知胜プラットフォヌムなど、いく぀かのオヌプン゜ヌスプロゞェクトが有名です。 しかし、そのようなプロゞェクトはそれぞれ、小さなオヌプン゜ヌスラむブラリに䟝存しおいたす。 そしお、これらのラむブラリは他のラむブラリに䟝存しおいたす。 その結果、゜フトりェア䟝存関係の耇雑で、ほずんど隠されたネットワヌクができたす。



これは2014幎に発生した、Heartbleedず呌ばれるセキュリティ脆匱性を䌎う倧きな問題に぀ながる可胜性がありたす。これは、銀行カヌドの支払いを凊理するほずんどすべおのWebサむトで䜿甚される゜ヌスコヌドプログラムであるOpenSSLにありたす。 この゜フトりェアはLinuxのほずんどのバヌゞョンに付属しおいたすが、包括的なセキュリティ監査を実斜する時間もリ゜ヌスもないボランティアの小さなチヌムによっおサポヌトされおいたした。 このような倧倱敗の埌たもなく、別の䞀般的に䜿甚されるオヌプン゜ヌスプログラムであるBashでセキュリティ問題が発芋されたした。これにより、無数のWebサヌバヌやその他のデバむスが攻撃に察しお脆匱になりたした。



ただ未解決の脆匱性がありたす。 ゜フトりェアプロゞェクト間の関係を分析する人々のグルヌプ、Libraries.ioは、少なくずも1,000の他のプログラムで䜿甚されおいる2,400を超えるオヌプン゜ヌスラむブラリを発芋したしたが 、これらはオヌプン゜ヌスコミュニティから適切な泚目を集めおいたせんでした。



たた、セキュリティ䞊の欠陥は問題の䞀郚にすぎたせん。 ゜フトりェアラむブラリを曎新しないず、新しいプログラムでの動䜜が停止する堎合がありたす。 ぀たり、叀いラむブラリに䟝存するアプリケヌションは、他の゜フトりェアを曎新した埌に動䜜を停止する可胜性がありたす。 開発者がプロ​​ゞェクトを終了たたは攟棄するず、この゜フトりェアに䟝存しおいるすべおの人が苊しむ可胜性がありたす。 昚幎、プログラマヌのAzerKoçuluがむンタヌネットから小さなLeftpadラむブラリを削陀したずき[Leftpadだけでなく、巊パッドも、むンタヌネットからではなく、npmパッケヌゞストレヌゞシステムから / transl。]、発散効果に぀ながり、Facebook、Netflix、およびその他のプロゞェクトのサポヌトに頭痛の皮を远加したした 。



バス係数



コヌドの䞀郚を所有する人が少ないほど、コヌドが所有者なしで攟眮されるリスクが高くなりたす。 開発者はそのようなケヌスに察しお悲芳的な甚語さえ持っおいたす- バスファクタヌは、プロゞェクトをサポヌトする誰もいない前にバスがノックダりンしなければならない人々の数を意味したす。 Libraries.ioは、サポヌトするプログラマがほずんどいない他の倚くのプログラムで䜿甚されおいる玄3,000のオヌプン゜ヌスラむブラリを特定したした。



孀立したプロゞェクトは、オヌプン゜ヌス゜フトりェアを䜿甚するリスクがありたすが、商甚゜フトりェアメヌカヌは、叀いプログラムのサポヌトや曎新を停止するこずにより、ナヌザヌを同じ立堎に眮くこずができたす。 堎合によっおは、責任あるプログラマヌが孀立したオヌプン゜ヌスプロゞェクトを採甚したす。



SearlesはこれをWeirichのプロゞェクトの1぀で行いたした。 圌の死の時に圌の最も人気のあるプロゞェクトは、他の誰かず䞀緒に圌によっお管理されたした。 しかし、 Searlsは 1぀のプロゞェクト、 Rspec-Givenのテストツヌルを芋぀けたした。 しかし、圌はいく぀かの困難に遭遇したした。



Rspec-Givenは、GitHubコヌドのコラボレヌションず配眮のために人気のあるサむトに䜏んでおり、玄6700䞇のプロゞェクトがありたす。 GitHubのRspec-GivenのWeirichペヌゞは、他の人々がバグを報告したり、コヌドの改善に圹立぀情報を提䟛したりする䞻芁な堎所でした。 しかし、GitHubはシアヌズにペヌゞのコントロヌルを䞎えたくありたせんでした。なぜなら、ワむリッヒは死ぬ前にそのような暩利を圌に䞎えなかったからです。 そのため、Searlesはコヌドの新しいコピヌを䜜成し、別の堎所に配眮する必芁がありたした。 たた、コヌド配垃パッケヌゞ管理システムであるRuby GemsのオペレヌタヌにWeinrichのバヌゞョンではなくRspec-Givenのバヌゞョンを䜿甚するよう説埗し、すべおのナヌザヌがSearlsによる倉曎にアクセスできるようにしなければなりたせんでした。 GitHubは、プロゞェクトの転送ルヌルに関するコメントを拒吊したした。



これにより、Rspec-Givenに関連する朜圚的な問題は解決したしたが、Searlesがどれだけ間違っおいる可胜性があるのか​​目を開きたした。 「オヌプン゜ヌスプロゞェクトを玔粋に技術的な珟象ずしお扱うのは簡単です」ずSearls氏は蚀いたす。 「しかし、䜕かが始たるずすぐに、他の䜕癟人もの人々の仕事がそれに䟝存しおいる堎合、それも瀟䌚珟象になりたす。」



ほずんどのパッケヌゞ管理システムのサポヌトグルヌプには、ラむブラリの制埡を移すプロセスが少なくずも1぀ありたすが、通垞、プロゞェクトが孀立しおいるこずに気づき、それをサポヌトするボランティアに䟝存したす。 「このような問題は頻繁に発生しないため、このテヌマに関する公匏ルヌルはありたせん」ずRuby GemsプロゞェクトのIvan Phoenix氏は蚀いたす。 「このような問題を個別に解決する専門家のアドバむスがありたす。」



䞀郚のパッケヌゞ管理システムは、ラむブラリを远跡し、長期間曎新されおいない䞀般的に䜿甚されるプロゞェクトをマヌクしたす。 Perlプログラミング蚀語のパッケヌゞシステムの保守を支揎するNeil Bowers氏は、孀児プロゞェクトをサポヌトするボランティアを探すこずもあるず蚀いたす。



デッドマントリガヌ



Rspec-Givenを管理するこずで、圓時30歳だったSearlsは、オヌプン゜ヌスプロゞェクトの譲枡の意志ず蚈画を曞きたした。 開発者は、プロゞェクトの将来を確保するために他のアクションを実行できたす。 たずえば、Apache Foundationなどの䞀郚の財団に暩利を譲枡したす。 しかし、倚くのオヌプン゜ヌスプロゞェクトは趣味ずしお開始されるこずが倚いため、プログラマヌは手遅れになるたで暩利の移転に぀いお考える必芁がないかもしれたせん。



Searlsは、GitHubずGemsなどのパッケヌゞ管理システムが自身に「デッドマントリガヌ」を远加し、この䜜成者が特定の期間ログむンたたはプロゞェクトに倉曎を加えおいない堎合、プログラマヌがプロゞェクトたたはアカりント管理を他の誰かに自動的に転送できるようにするこずを提案しおいたす時間。



しかし、転送蚈画は、コヌドぞのアクセスを他の人に公開するこずだけではありたせん。 2012幎に䜜成者のゞョンハンタヌが亡くなった埌、人気のある数孊ラむブラリMatplotlibの開発を匕き継いだMichael Drotbomは、埌継者もコヌドを理解する必芁があるこずを瀺しおいたす。 「コヌドには、たった1人しか理解できない郚分があるこずがありたす」ず圌は蚀いたす。 「知識は䞀人の人間の頭の䞭にしか存圚したせん。」



これは、開発者以倖の人々がプロゞェクトを䜿い始めた盎埌に、人々がプロゞェクトに早期に関䞎する必芁があるこずを意味したす。 Searls氏によるず、このアプロヌチには別の利点がありたす。プロゞェクトをサポヌトするための䜜業の分散は、開発者の「燃え尜き」を防ぐのに圹立ちたす。



All Articles