オープンソース(Open Source)とは、誰でも自由に改良・再配布ができるよう無償で公開されているソースコードのことです。
WordPressやFirefoxなど私達の身近なサービスもオープンソースであり、世界中のエンジニアによって日々改良が加えられています。
この記事では、オープンソースの定義や利用メリット、利用時の注意点、主なオープンソースソフトウェアについてわかりやすく紹介します。
この記事の目次
オープンソースとは
ソース(Source)とは、ソースコードのことを指し、システムやアプリ開発のためにプログラミングされたコード(プログラム)です。
オープンソースとはそのソースがオープン(Open:公開)されている状態のことで、ソースコードがインターネット上などで公開されている状態です。
改造・配布がOKなソースコードという意味でも使われる
オープンソースは、誰でも自由に改良・再配布ができるようになっているソースコードという意味でも使われています。
通常、ソースコードは企業や開発者にとって技術や研究の結果が詰まった大切な資産です。
そのため、企業秘密として外部公開されることはなく、また公開されている場合であってもそのコードを利用・転用して別のソフトウェアを開発するためには利用料を支払う必要があります。
そういったオープンソースを利用することで、エンジニアはプログラムの中身を見て勉強したり、そのプログラムを改良したり、自身のプログラムに組み込んだりすることができるのです。
ライセンスの種類によって決まりもある
プログラミングのスキルアップや開発期間の短縮など、メリットが多いオープンソースですが、全てのオープンソースを完全に自由に利用してもよい、というわけではありません。
オープンソースにはライセンスの種類によって決まりもあり、利用者はそのルールを守る必要があります。
ライセンス契約については「オープンソースを利用するデメリット」で詳しく解説します。
API・フリーウェアとの違い
無料で利用できるプログラムという点で、APIやフリーウェアを思い浮かべた方もおられるかもしれませんが、オープンソースとこれらには次のような違いがあります。
APIとの違い
API(Application Programming Interface)とは、あるソフトウェアの一部を公開することで外部の別のソフトウェアと連携できるようにすることです。
例えば、企業の従業員を管理している人事管理システムと、各従業員の勤務時間を記録する勤怠管理システムをAPIによって連携させる、といった使われ方をします。
つまり、APIは異なるソフトウェアを連携させるためのものであり、改良や転用なども行えるオープンソースとは全く別物なのです。
フリーウェアとの違い
フリーウェアとは、多くの人に使ってもらうことを目的として無料で配布されているソフトウェアです。
パソコンなどにインストールして使う業務効率化ツールやアプリなどがフリーウェアにあたります。フリーソフト、フリーソフトウェアとも呼ばれます。
ただし、オープンソースの中には、ソースコードが公開されているフリーウェアもあります。
フリーウェアは無料の試用期間の後に利用料金が発生したり、広告が表示されるものなど、開発・提供元が商業目的で配布しているものも存在します。
オープンソースを利用するメリット
ソフトウェア開発の際には、オープンソースを活用することによって技術のキャッチアップや開発プロセスの短縮などのメリットがあります。
オープンソースを利用するメリットについて詳しく見ていきましょう。
自由にカスタムできる
上述した通り、ソースコードとは企業や開発者にとって自身の技術力が結集された資産であるため、企業秘密として公開されていないことが一般的です。
これに対して、ソースコードが公開され、さらに見るだけでなくそのコードに書き足したり、別のシステムに組み込んだりと自由にカスタマイズできる点がオープンソースの一番のメリットです。
無料で利用できる
利用の際にいくつかのルールはあるものの、無料で利用できる点もメリットです。
これにより世界中のエンジニアがそのソースにアクセスし、そこから技術を学んだり、オープンソースを元に新しいソフトウェアを開発したりすることが出来ます。
バグを発見・解決できる
オープンソースとして世に公開することで、世界中の多くの人の目に触れることになります。
それによって公開側(本来の開発者)が気づかなかったシステムのバグ(不具合)が別のエンジニアによって指摘・解消され、ソフトウェアの品質が向上することが期待されます。
セルフブランディングとして使える
オープンソースを自ら新規開発・保守したり、既存のオープンソースやサービスをメンテナンスをしたりすることで、エンジニアとしての価値を高められる可能性があります。
これらのオープンソースに関する活動を「OSS活動」と呼び、世界にはこの活動のためのコミュニティが数多く設立されています。
OSS活動を通して自身の技術力を磨いたり、サービスの品質向上に貢献することで実績を積み上げたりと「エンジニアとして何が出来るのか」というセルフブランディングの手段としても活用すできます。
客観的な評価がわかる
オープンソースの開発やコミュニティ活動を通して世界中のたくさんのエンジニアと関わりを持つことが出来ます。
その中にはある技術に特に詳しいエンジニアや業界経験の長い凄腕エンジニアなどもおり、彼らとの関わりの中で自身のエンジニアとしての客観的な評価・価値を知ることが出来ます。
リモートワークやフリーランスエンジニアなど、自宅で一人仕事をすることも多いエンジニアにとって、他のエンジニアと関わる機会は非常に貴重であり、有意義なものです。
他のエンジニアからアドバイスを受けたり、また自身がアドバイスをしたり、助け合いながら自身の価値を高めていくことが出来ます。
仕事の依頼がくる可能性もある
さまざまなエンジニアとコネクションを通じて仕事の依頼が来ることもあります。
例えば勉強会への登壇、書籍執筆や監修、システム開発の依頼など、実際にOSS活動を通して仕事を得ているエンジニアは数多くいます。
エンジニアとしての価値を高めたいけれど、どうすればよいか悩んでいる方は、自身の好きなサービスやよく利用しているサービスに貢献する気持ちで、まずはコミュニティ活動を始めてみるとよいでしょう。
オープンソースを利用するデメリットと注意点
技術力の向上やブランディングなどのメリットのあるオープンソースですが、利用の際にはいくつかのデメリットと注意点を把握しておく必要があります。
以下で詳しく見ていきましょう。
マニュアルが用意されているとは限らない
オープンソースは他の開発者が自由に改良などを行えることがメリットの一つと解説しましたが、それはいつどのような変更が加えられるかわからない、とも言い換えることができます。
商品として販売されている有償のソフトウェアが、利用者向けにマニュアルなどを整備しているのに対して、オープンソースはマニュアルがなく、利用者が自身で使いながら学ぶ必要がある点がデメリットの一つです。
バグが修正されないままの場合もある
不特定多数のエンジニアによって開発がされているオープンソースソフトウェアは、誰かが加えた変更によって、それまで問題なく動作していた箇所が突然バグによって正常に実行されなくなる可能性もあります。
このような場合、有償ソフトウェアと違って開発元にバグ修正の義務がないオープンソースは、バグがいつまでも修正されずそのままの状態で使わないといけないこともあります。
なお、世界的に利用者の多いオープンソースの場合、その影響を考慮して開発者がバグ修正をすることもあります。
開発元のサポートは基本的にない
バグ修正と同様、そのソフトウェアに関して何か問題が起きた場合についても開発元にそれをサポートする義務は基本的にありません。
有償ソフトウェアのように開発元がその動作を保証しているわけではないため、起きた問題は自分で解決するか、他の誰かが解決策を見つけてくれるのを待つか、といったことになります。
ライセンス契約に気をつける
冒頭で触れた通り、オープンソースを利用する際にはそのオープンソースに付随するライセンス契約に注意する必要があります。
ライセンス契約とは「ソース利用時のルール」のようなもので、その内容はライセンスによって異なります。
代表的なライセンスについて、その内容を一部紹介します。なお、これらの情報は更新される可能性があるため別途最新情報をチェックするようにしてください。
GPL
・カスタマイズして再配布する際には著作権表示が必要
・再配布する際には、同様のライセンス形式とする
BSD License
・カスタマイズして再配布する際には著作権表示が必要(このルールが守られれてば再配布は自由)
MPL
・カスタマイズして再配布する際には著作権表示が必要
・ソースコードを改変して再配布する際には、その部分はMPLのライセンス形式とする
オープンソースソフトウェアの種類について
オープンソースソフトウェア(OSS:オープンソースとしてのソフトウェアのこと)は、ソフトウェアだけでなく、OSやデータベース、サーバー、開発支援ツールなどさまざまな領域で提供されています。
最近ではクラウドコンピューティングやビッグデータ分野のOSS開発も積極的に進められています。主なOSSの提供領域は以下の通りです。
・OS(Linux、Ubunts、Androidなど)
・アプリケーション(Firefox、Thunderbird、LibreOfficeなど)
・データベース(Apache、MySQLなど)
・サーバー(AppWeb、Lightedなど)
・CMS(WordPress、EC-CUBE、PukiWiki)
・開発支援(Eclipse、Ruby on Railsなど)
・プログラム言語(PHP、Ruby、Pythonなど)
・セキュリティ(Apache SpamAssasin、IPCoo Firewallなど)
・ビッグデータ収集・解析(Logstash、Fluent、Apache Hadoopなど)
代表的なオープンソース
私達が日常的に利用しているアプリケーションやソフトウェアが、実はオープンソースソフトウェアとして提供されているものであることもあります。
代表的なオープンソースソフトウェアを紹介します。
WordPress
プログラミングの知識がなくてもブログやWebサイトの構築ができるとして、世界中で利用されているWordpressもオープンソースソフトウェアです。
「シンプルで直感的な操作性」「高いユーザビリティ」「Web標準設計準拠」「拡張性」などが評価され、コンテンツ管理システム(Contents Management System)部門では世界シェアトップを誇っています。
2003年の誕生以降、世界中のエンジニアによって改良が加えられ、高い安定性が確保されているシステムです。
Blog Tool, Publishing Platform, and CMS | WordPress.org 日本語
OpenOffice
OpenOfficeは文書作成・表計算などオフィスソフトです。高価なMicrosoft Officeとは異なり無料で利用できるとあり、世界中で広く普及しました。
OpenOffice.orgの制作プロジェクトは2011年に解散し、現在は「Apache OpenOffice」と「LibreOffice」が後継システムとして利用されています。
無料総合オフィスソフトウェア – Apache OpenOffice 日本語プロジェクト
Linux
OS系オープンソースとしてはLinuxがあります。Windows Serverと並んで大きなシェアを獲得しており、企業の基幹システムやクラウドサービス基盤としても利用されています。
Linuxサーバーを利用することで導入・運用コストの削減やメーカーの意向に左右されない運用、最新技術の活用といったメリットがあります。
Linux.com – News For Open Source Professionals
MySQL
Oracle社が開発を行っているMySQLは、高速性と堅牢性を追及したリレーショナルデータベース管理システム(RDBMS)です。
これまでの数多くのバージョンアップにより、商用製品と比較しても遜色のないデータベース製品として世界で最もよく利用されています。
なお、MySQLはオープンソースである一方で、開発及びソースコード管理はOracle社によって行われています。
Firefox
非営利団体Mozilla Foundationが開発を行っているWebブラウザがFirefoxです。
「ページ高速表示」「Web標準準拠」「カスタマイズ性」「プライバシー保護」などの特徴があり、圧倒的なシェアを誇るGoogle社のChromeのライバル的存在として注目を集めています。
Mac、PC、Linux 向け新高速ブラウザー | Firefox
さいごに
オープンソースソフトウェアを利用するメリットは数多くありますが、利用の際にはライセンス契約やデメリットなどを理解しておく必要があります。
また、エンジニアとしてオープンソースを活用して開発するだけでなく、オープンソースソフトウェアを発展させるためのコミュニティ活動は、セルフブランディングやスキルアップなどのメリットも期待されます。
興味がある人はぜひ一度調べてみると良いでしょう。
はじめての転職、何から始めればいいか分からないなら
「そろそろ転職したいけれど、失敗はしたくない……」そんな方へ、テックキャンプでは読むだけでIT転職が有利になる限定資料を無料プレゼント中!
例えばこのような疑問はありませんか。
・未経験OKの求人へ応募するのは危ない?
・IT業界転職における“35歳限界説”は本当?
・手に職をつけて収入を安定させられる職種は?
資料では、転職でよくある疑問について丁寧に解説します。IT業界だけでなく、転職を考えている全ての方におすすめです。
「自分がIT業界に向いているかどうか」など、IT転職に興味がある方は無料カウンセリングにもお気軽にお申し込みください。