オープンソースソフトウェア(OSS)とは?おすすめ20選
オープンソースソフトウェア(OSS)は、日本で利用できるものだけでも、約300を超える数の種類があることをご存知でしょうか。
昨今では、自社メディアサイトを、WordPressで運営している会社も多いことでしょう。
WordPressは、まさに約300あるオープンソースソフトウェアの一種です。しかし、オープンソースソフトウェアと言われても、いまいちピンと来ない担当者もいるのではないでしょうか。
この記事では、システムエンジニア(SE)職などではない、プログラミングなどに詳しくないサイト運営担当者の方向けに、オープンソースソフトウェアについて解説しています。
オープンソースソフトウェアは、意外にも身近なところで、すでに利用されています。オープンソースソフトウェアについて理解を深めることで、より納得感を持ってWordPressでのサイト運営に取り組めるようになるはずですよ。
目次
オープンソースソフトウェア(OSS)とは?
オープンソースソフトウェア(Open Source Software 略称:OSS)とは、ソースコードと呼ばれる、人間が理解しやすい言葉で、コンピュータに指令を与えるための言語を用いて、無料で公開されているソフトウェアのことです。改良や再頒布が自由にできることが特徴としてあります。
著作権は放棄されていないため、無制限に利用できるわけではないですが、改良したソフトウェアをさらに一部改良して再開発することも可能です。
一般的に、ソースコードは社外秘など非公開である場合が多いです。しかし、多くの開発者の手が加わらないため、改良が進みにくいという難点があります。
オープンソースソフトウェアは、世界中にソースコードを無料で公開することになるので、有志が改良し続け、より先進的な技術が生まれやすい環境が整っています。
また、改良し、商用利用で再頒布することも可能なため、今現在私たちが使っているサービスが「実はオープンソースソフトウェアを利用して開発されているものだった」という事例も多く存在しています。
私たちの身近に存在するオープンソースソフトウェアを知ることで、よりよいサイト運営に役立てていきましょう。
オープンソースソフトウェア(OSS)おすすめ20選
オープンソースソフトウェアは、特性上、元祖オープンソースソフトウェアが枝分かれする形で、新しいオープンソースソフトウェアが開発されています。
今回は、オープンソースソフトウェアを理解するなら、必ず知っておきたい元祖オープンソースソフトウェアから、すでに身近に使われているオープンソースソフトウェア、さらには業務に役立つ新進気鋭のオープンソースソフトウェアまで、おすすめ20選に絞ってご紹介します。
コンテンツ管理システム(CMS)
コンテンツ管理システムとは、(Content Management System:略称 CMS)とも呼ばれている、Webサイトのコンテンツを統合し、体系的に管理できるソフトウェアのことです。
従来のWebサイトは、テキストや画像など別々に管理し、最終的に一つのWebサイトに集約させる形で、インターネット上に公開されていました。
しかし、テキストや画像を別々に管理するためには、Webサイト運営において、プログラミングなどの専門的な知識が必要不可欠となってしまいます。
コンテンツ管理システムを導入することで、プログラミングの知識などを持っていなくても、容易にWebサイトを運営できるようになります。結果的にWebサイトの運営が省力化できるというメリットもあるため、現在では多くの企業や自治体、個人でのWebサイト運営をしていくための基幹として利用されています。
1.EasyMail(イージーメール)
EasyMail(イージーメール)は、高機能なメールフォームWebアプリケーションソフトです。
PHPで開発しており、MySQLを利用してデータ管理されています。PHPはプログラミング言語の種類であり、MySQLは大量のデータを管理するためのデータベース管理システムのことです。
PHP・MySQL共に、オープンソースソフトウェアです。詳しい特徴については、後述します。
EasyMailは、日本国内で開発された、比較的新しいオープンソースソフトウェアです。2002年に前身であるメールフォームがリリースされ、2020年にオープンソース化されました。
管理画面で無制限にメールフォームを生成することができ、スマホに完全対応したレスポンシブデザインであることが特徴です。また、英語・中国語に対応しているので、日本国内だけでなく、世界の多くの国々で利用が可能です。
2.WordPress(ワードプレス)
引用:WordPress
WordPressを自社サイトの運営に利用しているWebサイト運営担当者の方も多いのではないでしょうか。
本来、WordPressは、ブログ運営のためのコンテンツ管理システム(CMS)という立ち位置ですが、プラグインなどを利用することで、ホームページとして、企業や自治体などが導入している事例が多く存在しています。
WordPressのテンプレートは、すべてPHPと呼ばれる、世界的に認知度の高い開発言語を利用しています。そのため、WordPressの開発に参入しやすくなっていることで、世界各国から開発が盛んに行われています。
また、WordPressは、160以上の地域で各国の言語で利用されています。各言語に対応したWordPressのマニュアルが、Web上に多く公開されているので、操作に困ったときでも、すぐに解決方法が見つかる可能性があります。
WordPressは、開発の参入がしやすいだけでなく、言語による障壁が少ないことも、個人ブログのほかに企業や自治体で導入される理由に挙げられます。
3.EC-CUBE(イーシーキューブ)
引用:EC-CUBE
EC-CUBEは、日本国内で開発されているECサイト(ネットショップ)を構築できるコンテンツ管理システム(CMS)です。海外製の日本語化されたソフトウェアと比べると、自然な日本語で表記されているため、日本人のネットショップ運営者が利用しやすいCMSです。
プログラミング言語(開発言語)
コンピュータは、「0」と「1」からなる機械語しか理解することができません。しかし、我々人間は、「0」と「1」だけの機械語で言葉を理解することは、かなり難しいです。
そこで開発されたのが、機械語と人間語の間を取り持つ役割を果たしている、プログラミング言語です。
プログラミング言語は、世界中に数多く存在しており、時代と共に開発が進んでいます。
4.PHP(ピーエイチピー)
引用:PHP
PHPは、WordPressにも利用されているプログラミング言語です。利用者が多く、プログラミング初学者にも開発しやすいことから、Web開発などの場でよく使われています。
PHPでは、カスタマイズ性に優れた、動的なホームページを作成することができます。お問い合わせフォームやショッピングカートなどのWebサービスなどでよく利用されています。
なお、弊社でオープンソースとして開発しているEasyMail(イージーメール)も、PHPで開発したメールフォーム管理ツールです。
5.Java(ジャバ)
引用:Java
2000年頃から長く人気のあるプログラミング言語です。Androidアプリの開発にも、Javaが利用されています。
様々なハードウェア環境に対応したソフトウェア形態で提供されているため、企業で利用されるほか、大学などの授業でも使われています。
6.Ruby(ルビー)
引用:Ruby
Rubyは、日本人が開発した、初めての国際電気標準会議(IEC)で国際規格に認証されたプログラミング言語です。
「ストレスなくプログラミングを楽しむ」ことを目的にしたプログラミング言語であり、プログラミング教育の場でも使われることが多いです。
なお、Rubyは、Ruby on Rails(ルビーオンレイルズ)というフレームワークとセットで利用されることが多いです。
フレームワーク
フレームワークとは、プログラミング言語などを利用した新たなソフトウェア開発の際に利用する、一般的な機能の土台として用意されたもののことです。
分かりやすい例を挙げてみましょう。一般のビジネスで利用されることの多いSWOT分析や3C分析も「フレームワーク」と呼ばれていますが、プログラミングの世界で使われている「フレームワーク」も基本的には同じ考え方です。
何も条件なく、新しく一からすべてのアイデアを出したり、プログラムを開発していくよりも、フレームワークを利用した方が、より効率よくアイデアが浮かんだり、開発を進めることができるようになります。
開発言語によって、対応しているフレームワークが決まっている場合もあるので、「開発言語+フレームワーク」でさらに詳しく調べてみるのもよいですね。
7.React(リアクト)
引用:React
Reactは、Meta(旧Facebook)が開発した、JavaScript(ジャバスクリプト)のフレームワークです。
ちなみにJavaScriptとは、Webデザインで利用されるプログラミング言語のことです。Java(ジャバ)と似たような名称ですが、完全なる別物であり、派生関係などもまったくありません。強いて言えば、当時人気が出ていた、Javaにあやかって付けた名称とのことです。
8.Vue.js(ヴュー・ジェイエス)
引用:Vue.js
Vue.jsもまた、Web上のデザインを構築するJavaScript(ジャバスクリプト)のフレームワークです。
高機能なSPA(シングルページアプリケーション)に対応していることが特徴的です。
9.Laravel(ララベル)
引用:Laravel
Laravelは、EasyMail(イージーメール)やWordPress(ワードプレス)で利用されているプログラミング言語・PHP(ピーエイチピー)のフレームワークです。
プログラミング言語のフレームワークの中でも注目度が高く、人気を博しています。
データベース管理システム(DBMS)
プログラミング言語でプログラムを作成する場合、整合性の観点やデータの保護などを理由に、データベースを利用してデータを管理しています。
データベース(DataBase Management System 略称:DBMS)とは、関連するあらゆるデータ情報を集結させ、正確に管理するための場所のことです。例えば、前述したEasyMail(イージーメール)やWordPress(ワードプレス)のデータは、すべてデータベース管理システムに保管されており、必要に応じてデータの行き来が行われています。
なお、データベース管理システムには、SQLというプログラミング言語を使用して操作を行います。そのため、多くのデータベース管理システムの名称に、「SQL」が入っていることも特徴的です。
10.MySQL(マイ エスキューエル)
引用:MySQL
MySQLは、世界で最も人気があると言われているデータベース管理システムです。FacebookやWordPress、Flickr、MediaWiki、Twitter、YouTubeなど、世界中で人気のあるWebサイトでも使用されています。
なお、弊社で開発しオープンソース化したEasyMail(イージーメール)もMySQLを使用しています。
11.PostgreSQL(ポストグレス キューエル)
引用:PostgreSQL
PostgreSQLは、macOS Serverのデフォルトのデータベース管理システムです。ほかにも、Linux(リナックス)やUNIX系OS、Windowsにも対応しており、複雑で大量なデータの操作や管理が得意です。
12.MariaDB(マリアディービー)
引用:MariaDB
MariaDBは、MySQLの派生として開発されたデータベース管理システムです。MariaDBの開発は、MySQLのオリジナルコードの作者と同じ人物であり、「MariaDB」の名称は、作者の娘の名前から名づけられたものです。
MariaDBは、MySQLよりも大量で複雑なデータ管理を行うことができます。MySQLとの互換性が優れており、MySQLからの移行も、比較的容易に行うことができます。
OS(オペレーティング システム)
OSは、スマホが普及したことで、より身近な存在になったIT用語ではないでしょうか。
オペレーティングシステム(Operating System:略称 OS)とは、アプリケーションソフトウェアとハードウェアの中間で操作・運用・運転を司る、システムソフトウェアのことを示します。
人間のからだに例えると、パソコン本体が「体」で、OSは「脳」と、考えると分かりやすいでしょう。
世界で最もシェアのあるWindowsや、macOSが有名どころで、誰もが一度は聞いたことのあるOSではないでしょうか。
13.Linux(リナックス)
引用:Linux
Linuxは、オープンソースソフトウェアの元祖ともいえるOSの一種です。初版は1991年と古いですが、ほかのOSと比べて低い性能のパソコンでも軽快な動作ができるため、サーバーやシステム開発で利用されるケースが多いです。
また、スマホ用のOSであるAndroidは、Linuxを元にGoogleが開発したOSです。Linuxは、商用・非商用問わず、組み込みシステムの開発に多く利用されています。
14.Android(アンドロイド)
引用:Android
Androidは、スマホ利用者なら誰もが聞いたことのある、馴染みのあるOSではないでしょうか。実際にAndroidスマホを利用しているという方も多いことでしょう。
実は、AndroidというOSも、オープンソースソフトウェアです。Androidスマホの比較としてよく登場するiPhoneは、iOSというOSを利用していますが、こちらは、Apple社独自のソースコードで作成されており、ソースコードは公開されていません。そのため、iOSを使用している端末の開発や販売は、Apple社のみです。
反対にAndroidスマホは、世界各国で多数のメーカーが開発し、販売が行われています。まさに、AndroidというOSがオープンソースソフトウェア化しているからこそ、実現した事例といえるでしょう。
Webサーバソフトウェア
WordPressなどで自社サイトを立ち上げる際に、必ず一緒に用意する必要があるのが、Webサーバソフトウェアです。
Webサーバソフトウェアは、いわばファイルデータの保管庫のような立ち位置です。WordPressなどに利用されているファイルデータは、Webサーバを通じて受け渡しが行われています。
データを保管するという意味で、前述したデータベース管理システムを思い浮かべた方もいるのではないでしょうか。
たしかに、データを保管するという意味では近しい存在にあるソフトウェア同士ですが、取り扱っているデータの種類や、機能が異なるため、まったくの別物であることに留意しておきましょう。
両者の違いは、Webサーバソフトウェアはファイルを保存し、データベース管理システムはデータを保存します。なお、Webサーバソフトウェアは、同時に複数人で編集したり保存することができません。同時編集が可能なデータベース管理システムとの大きな違いといえます。
15.Apache HTTP Server(アパッチ エイチティーティーピー サーバ)
世界的に有名なWebサーバソフトウェアの一種です。高機能かつ優れた動作性から、Webサーバソフトウェアの費用を抑えたい企業サイトや個人ブログなどに人気です。
初版は、1995年と古いですが、20年以上経った現在も、現役で使われ続けています。
OSを選ばずに動作するので、汎用性の高さも人気の秘訣です。
ドメインネームシステム(DNS)
ドメインネームシステム(Domain Name System:略称 DNS)は、IPアドレスとドメイン名を対応させるシステムのことです。
私たちがインターネットを利用するときは、コンピュータがIPアドレスを利用して、通信相手のコンピュータの位置を特定しています。
IPアドレスとは、いわば、ネットワーク上の住所のような存在です。IPアドレスは、コンピュータにとってはわかりやすい、長い数字の羅列で構成されていますが、人間にとっては、とても理解しにくく、覚えにくい不規則で長い数字の羅列です。
そのため、人間がパッと見てわかりやすく、覚えやすい住所名として、ドメイン名が存在しています。
コンピュータにとってわかりやすいIPアドレスと、人間にとってわかりやすいドメイン名を紐づけたものが、DNSです。
DNSは、「インターネット上の電話帳」と考えると、理解しやすいかもしれませんね。
16.BIND(バインド)
引用:BIND
BINDは、インターネット上で、最も利用されているとされるDNSです。
バージョン管理システム
プログラムの開発を行っていると、以前のバージョンに戻したくなることがあります。バージョン管理システムを利用すれば、すべての工程の履歴を残しておくことができるようになります。
「いつ」「誰が」「どこで」「何を」「どのように」修正したかが分かるため、プログラムの作成で不具合が発生した際や、テストを行う場合などに役立ちます。
17.Git(ギット)
引用:Git
Gitは、分散型のバージョン管理システムです。分散型とは、複数のリポジトリ(貯蔵庫)を所持しているということです。
リポジトリ(貯蔵庫)とは、これまでのバージョン履歴が保管されている場所のことです。実は、これまでのバージョン管理システムといえば、バージョンを管理するリポジトリが一つしかないものばかりでした。
Gitは、分散型のため、複数のリポジトリを保存できます。複数のリポジトリを所有できることで、ネットワークに繋がっていない状態でも、開発者が手元のパソコンにローカルのリポジトリを所有し、確認しながら作業できるようになりました。
開発者の作業効率化に繋がったことが、Gitの人気を博した理由でしょう。
Webブラウザ(ウェブブラウザ)
私たちが、インターネットで何かしら検索する際に必要となるのが、Webブラウザです。IT用語に詳しくない人でもよく聞いたことのある、最も身近な存在のソフトウェアかもしれませんね。
Webブラウザにも、オープンソースソフトウェア化したものが存在しているので、有名なものをご紹介します。
18.Chromium(クロミウム)
引用:Chromium
Chromiumは、世界的に有名なGoogleChrome(グーグルクローム)のソースコードの元になったオープンソースコードです。名称も似ているので、わかりやすいですね。
ただし、GoogleChromeはChromiumのオープンソースコードを利用して、新たに独自開発したもののため、別物であることに注意しておきましょう。
19.Mozilla Firefox(モジラ ファイアーフォックス)
Mozilla Firefoxは、単に「Firefox(ファイアフォックス)」や、和名に訳した「火狐」とも呼ばれることが多い、Webブラウザです。
マルチプラットフォームに対応していて、Microsoft WindowsやmacOS、Linuxで動作します。また、拡張機能を追加することで、機能を追加できる多機能さを持ち合わせています。
ソースコードエディタ
ソースコードエディタとは、プログラミング言語でソースコードを編集するのに最適化したテキストエディタプログラムのことです。
ソースコードエディタは、独立したアプリケーションソフトである場合や、統合開発環境 (IDE) と呼ばれる、ソフトウェア開発するための多数のソフトウェアを統合的に管理するシステムにすでに組み込まれている場合があります。
20.Visual Studio Code(ビジュアル・スタジオ・コード)
Visual Studio Codeは、Microsoftが開発しているソースコードエディタです。WindowsやLinux、macOS、webに対応しており、カスタマイズ性が高いことから、世界的に人気のあるソースコードエディタです。
まとめ:おすすめオープンソースソフトウェア(OSS)20選
今回ご紹介したオープンソースソフトウェアは、以下20種類です。
コンテンツ管理システム(CMS)
- 1.EasyMail(イージーメール)
- 2.WordPress(ワードプレス)
- 3.EC-CUBE(イーシーキューブ)
プログラミング言語(開発言語)
- 4.PHP(ピーエイチピー)
- 5.Java(ジャバ)
- 6.Ruby(ルビー)
フレームワーク
- 7.React(リアクト)
- 8.Vue.js(ヴュー・ジェイエス)
- 9.Laravel(ララベル)
データベース管理システム(DBMS)
- 10.MySQL(マイ エスキューエル)
- 11.PostgreSQL(ポストグレス キューエル)
- 12.MariaDB(マリアディービー)
OS(オペレーティング システム)
- 13.Linux(リナックス)
- 14.Android(アンドロイド)
Webサーバソフトウェア
- 15.Apache HTTP Server(アパッチ エイチティーティーピー サーバ)
DNS(ドメインネームシステム)
- 16.BIND(バインド)
バージョン管理システム
- 17.Git(ギット)
Webブラウザ
- 18.Chromium(クロミウム)
- 19.Mozilla Firefox(モジラ ファイアーフォックス)
コードエディタ
- 20.Visual Studio Code(ビジュアル・スタジオ・コード)
元祖オープンソースソフトウェアから、すでに身近なところで利用しているオープンソースソフトウェア、新しく登場したオープンソースソフトウェアなど、様々な種類のオープンソースソフトウェアをご紹介しました。
しかし、現存する多くのオープンソースソフトウェアは、ゼロから生み出されたものではなく、長い年月をかけて有志たちが多くの改良を重ねたことで、分岐したものばかりです。
まさに無料でソースコードを公開し、改良や再頒布を可能にしたことが、ここまでの発展を遂げてきた理由といえます。
また、これからもオープンソースソフトウェアは、世界中にいる有志の手によって、改良を重ね、より多くの人が利用しやすいソフトウェアへと進化していくことでしょう。
私たちが何気なく利用しているものも、オープンソースソフトウェアの恩恵を受けているものが多く存在していることを忘れずに利用していきたいものです。
さらにプログラミングに興味がある方は、世界中のオープンソースソフトウェアの改良を続ける有志たちの仲間になってみるというのも素敵ですね。