オープンソースとは何ですか?

2019年11月5日 0 投稿者: 富財

「オープンソース」という用語は、そのデザインが一般公開されているため、人々が変更および共有できるものを指します。

この用語は、コンピュータープログラムを作成するための特定のアプローチを指定するためのソフトウェア開発のコンテキストに由来します。しかし、今日では、「オープンソース」はより広い範囲の値、つまり「The open source way」と呼ばれるものを指します。オープンソースプロジェクト、製品、またはイニシアチブは、オープンエクスチェンジ、共同参加、ラピッドプロトタイピング、透明性、実力主義、およびコミュニティ指向の開発の原則を受け入れます。

オープンソースソフトウェアとは何ですか?

オープンソースソフトウェアは、誰でも検査、変更、および強化できるソースコードを備えたソフトウェアです。

「ソースコード」は、ほとんどのコンピューターユーザーには見られないソフトウェアの一部です。コンピュータープログラマーが操作して、ソフトウェアの一部(「プログラム」または「アプリケーション」)の動作を変更できるコードです。コンピュータープログラムのソースコードにアクセスできるプログラマーは、機能を追加したり、常に正しく動作しない部分を修正することにより、そのプログラムを改善できます。

オープンソースソフトウェアと他の種類のソフトウェアの違いは何ですか?

一部のソフトウェアには、それを作成した人、チーム、または組織だけが変更できるソースコードがあり、それに対する排他的な制御を維持しています。この種のソフトウェアを「プロプライエタリ」または「クローズドソース」ソフトウェアと呼びます。

プロプライエタリなソフトウェアの元の作者のみが、そのソフトウェアを合法的にコピー、検査、変更できます。また、独自のソフトウェアを使用するには、コンピューターのユーザーは、ソフトウェアの作成者が明示的に許可していないソフトウェアに対して何もしないことに同意する必要があります(通常、このソフトウェアを初めて実行するときに表示されるライセンスに署名することによって)。

例えばMicrosoft OfficeとAdobe Photoshopは、専用ソフトウェアなどです。

オープンソースソフトウェアは異なります。その作成者は、そのコードを表示、コピー、学習、変更、または共有したい他の人がソースコードを利用できるようにします。

例えばLibreOfficeとGNU Image Manipulation Programは、オープンソースソフトウェアなどです。

プロプライエタリソフトウェアと同様に、ユーザーはオープンソースソフトウェアを使用する際にライセンスの条件に同意する必要がありますが、オープンソースライセンスの法的条件はプロプライエタリライセンスのそれとは大きく異なります。

オープンソースライセンスは、人々がソフトウェアを使用、研究、修正、および配布する方法に影響します。一般に、オープンソースライセンスは、コンピューターユーザーに、任意の目的でオープンソースソフトウェアを使用する許可を与えます。一部のオープンソースライセンス(「コピーレフト」ライセンスと呼ばれることもある)では、修正されたオープンソースプログラムをリリースする人は、そのプログラムのソースコードも一緒にリリースする必要があります。さらに、一部のオープンソースライセンスでは、プログラムを変更して他のユーザーと共有する場合は、ライセンス料を請求することなく、そのプログラムのソースコードも共有する必要があります。

設計上、オープンソースソフトウェアライセンスは、他の人がソースコードを変更し、それらの変更を自分のプロジェクトに組み込むことを許可するため、コラボレーションと共有ができます。

彼らは、自分の仕事を共有するときに他の人に同じことをさせている限り、コンピュータープログラマーが好きなときにいつでもオープンソースソフトウェアにアクセスし、表示し、修正することができます。

オープンソースソフトウェアはコンピュータープログラマーにとってのみ重要ですか?

いいえ。オープンソーステクノロジーとオープンソース思考は、プログラマと非プログラマの両方に利益をもたらします。

初期の発明者たちは、LinuxオペレーティングシステムやApache Webサーバーアプリケーションなどのオープンソーステクノロジーにインターネット自体の多くを構築していたため、今日インターネットを使用している人は誰でもオープンソースソフトウェアの恩恵を受けています。

コンピューターユーザーがWebページを表示したり、メールをチェックしたり、友人とチャットしたり、オンラインで音楽をストリーミングしたり、マルチプレイヤービデオゲームをプレイしたりするたびに、コンピューター、携帯電話、またはゲームコンソールは、オープンソースソフトウェアを使用してコンピューターのグローバルネットワークに接続し、ルーティングして送信目の前にある「ローカル」デバイスへのデータ。この重要なすべての作業を行うコンピューターは、通常、ユーザーが実際には見ない、または物理的にアクセスできない遠くの場所にあります。これが、これらのコンピューターを「リモートコンピューター」と呼ぶ理由です。

ローカルデバイスで実行する可能性のあるタスクを実行するとき、人々はますますリモートコンピューターに依存します。たとえば、オンラインワープロ、メール管理、およびパーソナルコンピューターにインストールして実行しない画像編集ソフトウェアを使用する場合があります。代わりに、Webブラウザまたは携帯電話アプリケーションを使用して、リモートコンピューター上のこれらのプログラムに単純にアクセスします。これを行うと、彼らは「リモートコンピューティング」に従事します。

一部の人々は、リモートコンピューティングを「クラウドコンピューティング」と呼びます。これは、ローカルデバイスだけでなく、周囲の「雰囲気」を形成するリモートコンピュータのグローバルネットワークも組み込むアクティビティ(ファイルの保存、写真の共有、ビデオの視聴など)を伴うためです。

クラウドコンピューティングは、インターネットに接続されたデバイスの日常生活でますます重要になっています。Google Appsなどの一部のクラウドコンピューティングアプリケーションは独自仕様です。ownCloudやNextcloudなどのその他のものはオープンソースです。

クラウドコンピューティングアプリケーションは、スムーズかつ効率的に動作する追加のソフトウェアの「上」で実行されるため、「下」のクラウドコンピューティングアプリケーションを実行するソフトウェアは、それらのアプリケーションの「プラットフォーム」として機能することがよくあります。クラウドコンピューティングプラットフォームは、オープンソースまたはクローズソースです。OpenStackは、オープンソースのクラウドコンピューティングプラットフォームの一例です。

なぜ人々はオープンソースソフトウェアの使用を好むのですか?

次のようないくつかの理由から、プロプライエタリソフトウェアよりもオープンソースソフトウェアを好む人がいます。

コントロール。多くの人がオープンソースソフトウェアを好むのは、その種のソフトウェアをより詳細に制御できるからです。彼らは、コードを調べて、それが望まないことを何もしていないことを確認し、好きではない部分を変更することができます。プログラマではないユーザーも、他の誰かが考えるべき方法だけでなく、望む任意の目的でこのソフトウェアを使用できるため、オープンソースソフトウェアの恩恵も受けます。

トレーニング。他の人々は、優れたプログラマーになるのに役立つため、オープンソースソフトウェアが好きです。オープンソースコードは一般にアクセス可能であるため、学生はより良いソフトウェアを作成することを学びながら簡単に学習できます。生徒は自分のスキルを伸ばすときに、コメントや批評を募集して、他の人と自分の作品を共有することもできます。プログラムのソースコードの間違いを発見した場合、それらの間違いを他の人と共有して、同じ間違いを自分で行わないようにすることができます。

セキュリティ。プロプライエタリなソフトウェアよりも安全で安定していると考えるため、オープンソースのソフトウェアを好む人もいます。誰でもオープンソースソフトウェアを表示および変更できるため、誰かがプログラムの元の作者が見逃した可能性のあるエラーや欠落を見つけて修正する可能性があります。また、非常に多くのプログラマーが元の作者の許可を求めることなくオープンソースソフトウェアを操作できるため、プロプライエタリなソフトウェアよりも迅速にオープンソースソフトウェアを修正、更新、アップグレードできます。

安定。多くのユーザーは、重要な長期プロジェクトのために、プロプライエタリなソフトウェアよりもオープンソースのソフトウェアを好みます。プログラマーはオープンソースソフトウェアのソースコードを公に配布しているため、重要なタスクのためにそのソフトウェアに依存しているユーザーは、元の作成者が作業をやめてもツールが消えたり破損したりすることはありません。さらに、オープンソースソフトウェアは、オープンスタンダードに準拠して動作する傾向があります。

「オープンソース」とは、単に何かが無料であることを意味しないのですか?

いいえ。これは、「オープンソース」が何を意味するかについての一般的な誤解であり、概念の意味は経済的なものだけではありません。

オープンソースソフトウェアプログラマーは、自分が作成した、または貢献したオープンソースソフトウェアにお金を請求することができます。しかし、場合によっては、オープンソースライセンスでは、ソフトウェアを他のユーザーに販売するときにソースコードをリリースする必要があるため、一部のプログラマーは、ユーザーにソフトウェアサービスとサポート(ソフトウェア自体ではなく)にお金を請求する方が有利な場合があります。このように、彼らのソフトウェアは無料のままであり、彼らは他の人がそれをインストールし、使用し、トラブルシューティングするのを助けるお金を稼ぎます。

一部のオープンソースソフトウェアは無料ですが、オープンソースソフトウェアのプログラミングとトラブルシューティングのスキルは非常に価値があります。多くの雇用者は、特にオープンソースソフトウェアでの作業経験のあるプログラマーを雇おうとしています。