デベロッパーリレーションズ

オープンソースコードの寿命はなぜ1年しかないのか?

2018-10-03
デベロッパーリレーションズ
ja

正直に言うと、古代ギリシャのシジフォスが2016年にオープンソースコードを書く開発者だったら、彼は家に帰ったような気分になるでしょう。有名なシジフォスの罰は神話から伝わっており、彼は巨大な石を山の上に押し上げることを強いられ、頂上に達した後、それが転がり落ちるのをただ見ているしかなく、永遠に繰り返されます。静かに、過去数年間、世界中の開発者も同様の罰を受けています。しかも巨石は絶えず大きくなっています。

アメリカ議会図書館は約2400万冊の様々なタイプの本を持っています。それは人類史上、人間の知識を記録した最大の宝庫です。

2009年、Githubが設立されました。現在、3500万以上のソフトウェアリポジトリまたは情報リポジトリを持ち、数十兆行のコードがあります。研究によると、この額は指数関数的に成長し、約14ヶ月ごとに倍増しています。オープンソースは間違いなく今日のプログラミング技術の最前線であり、人間の知識の最大で、最も強力で、最も先進的な宝庫です。

では、なぜ90%〜98%のオープンソースコードが、12ヶ月後に放棄されるのでしょうか?

詳細にコードを見る

まず、驚くべき数字を見てみましょう。今日書かれたコードは、来年の今日、90%以上が二度と使用されません。

それらは無効になり、時代遅れになり、時間の砂の中で忘れ去られます。2015年の調査で、Stack Overflowは、各開発者が仕事以外で週に平均約7時間プログラミングに費やすことを発見しました。GitHubの報告は、1200万人以上のユーザーがオープンソースプロジェクトで働いていると指摘しています。数百万人の賢い人々が数百万時間の仕事を費やし、その結果が人々に無視されています。

最も狂っている部分は、誰も「なぜ?」と尋ねていないようです。なぜ圧倒的多数のオープンソースコードが埋もれ、忘れ去られるのか?なぜ私たちは毎日何度も同じコードを書き続け、同時にそのコードはほぼ間違いなくオープンソースプラットフォームのどこかで、私たちが使用するのを待っているのか?

このようなことが起こる主な理由は、人々がリポジトリを単なる保存場所として扱っているからです。開発者はAngularJS、JQuery、Reactを知っていますが、10個以上のオープンソースパッケージを知っている人はほとんどいません。これが人を狂わせる部分です。人々がオープンソースパッケージ全体を知らず、使用しないため、誰もその中のコードを使用しません。2015年に書かれたパッケージは一人にとって全体が役に立たないかもしれませんが、必要な機能が含まれているかもしれません。最も有用な部分は常にパッケージ全体ではなく、時にはその中のコードの一部です。

例えば、誰かが配列内の要素をシャッフルするJavaScriptの機能、またはランダムな文字列を作成する異なる機能を探しているとします。これらの小さなコードスニペットは、オープンソースプラットフォームに数百個の同じものがあります。しかし、誰もそれらの存在を知らず、知っていたとしても、誰もそれらを見つける方法を知りません。したがって、これらの価値ある知識は、単に入手しにくいために捨てられたり忘れられたりします。本当に馬鹿げており、誰にとっても利益がありません。

すべてのコードを整理し、見つけやすくする

では、この混乱をどうやって解決するのでしょうか?この質問に答えるのは簡単ですが、実行するのは難しいです。3つのことを行う必要があります:

  1. 機能の面からすべてのオープンソースコードを整理し、詳細に分類する
  2. これらの異なるコードの実際の機能を表すモデルを構築する
  3. これらのコードスニペットを検索して見つける簡単で簡単な方法を作成する

これが私たちがCocyclesを構築した理由です。Cocyclesは上記のすべての条件を満たし、さらに改良を続けています。そのアルゴリズムは大量のオープンソースコードを処理し、各コードの機能を読み取って理解できます。そして、人々が単純な英語を使用してコードを検索できるようにします。

例えば、ユーザーは「シャッフル配列」または「ランダム文字列を作成」と入力するだけで、様々なオープンソースコードの実行、ドキュメント、使用例、その他の方法で表示されます。すべての依存関係とサブ機能を含む有用なスニペットを生成して提供することさえあります。

数年後、人工知能ソフトウェアはそれを使用して新しいコードを見つけて学習し、コードを絶えず改善し変更できるかもしれません。

転載请注明:デベロッパーリレーションズ »


Similar Posts

Content icon
Content