はじめに
いきなりですが皆さんに質問です。
もし皆さんが自分にしか製造できない商品を開発したら、そのノウハウはどうしますか。
おそらく誰にも教えず、自分だけがそのノウハウを独占するのではないでしょうか。
他の人に教えちゃうとマネされる可能性がありますもんね。
ソフトウェアも同じです。
せっかく一生懸命作ったソフトウェアなら、なかなか他の人にその仕組みを公開したくないでしょう。
でも、中にはあえてそのソフトウェアの仕組みを一般公開する人もいるんです。不思議ですよね。
今回はそんな、仕組みが一般公開されたソフトウェア、OSSについて学んでいきましょう。
はたして、一般公開するのにはどのような目的があるのでしょうか。
OSSとは
OSSとは
まず初めに概要からお伝えしますね。
OSSとは、「Open Source Software」の略で、ソースコードが公開されているソフトウェアのことです。
軽く専門用語を説明します。
「ソースコード」とは、ソフトウェアの動きを決める命令のことです。
つまり、そのソフトウェアがどのような仕組みで動いているかが全部書いてあるコードのことです。
エンジニアが黒い画面に書いている変な英語の文のことですね。
「ソフトウェア」は、「アプリ」と読み替えると分かりやすいかもしれません。
厳密にはちょっとだけ違いますが、OSSの理解には困りません。
つまりOSSの説明の「ソースコードが公開されてるソフトウェア」とは、「仕組みが全部一般公開されているアプリ」ということです。
冒頭でお話ししたやつですね。
OSSは他にも、以下の特徴を持っています。
詳しく説明する前に、一点予備知識をお話しさせてください。
先に、本当にアプリやシステムはソースコード(英語の文字列)でできているのかという部分を説明します。
既にご存じの方は読み飛ばしてみてください。
ソフトウェアやウェブサイトとソースコード
我々が使うアプリやソフトウェア、ウェブサイトは、ソースコードと呼ばれる無数の英語の文字列によってできています。
本当にこんな文字列で?と思うかもしれませんが、すぐに確かめられるので見てみましょう!
皆さん、お好きなサイトを開いて「マウスの右クリック」→「検証」を押してみてください。
そうすると、画面の右側に英語で書かれた文字列が表示されます。
これがこのページのソースコードなんです。こんな感じに英語の文字列で構成されています。
ソースコードがウェブサイトを構成していることを見るために、試しに1か所変更してみますね。
下の画像は、実際に下記のサイトの1行目で使用されている文章です。
今、ウェブサイト側では以下のように「Network Attached Storage」という文字列に赤いアンダーラインが入っています。
そしてここに対応しているのが以下のソースコードです。
よく見ると <span class=”marker-under-red“> と書いてあり、「Network Attached Storage」という文字列に赤いアンダーラインを引くことをにおわせています。
試しにこの文字列を <span class=”marker-under-blue“> に変えてみましょう。
以下がソースコードを変えた後の画像です。
そして画面を見てみるとこうなっています。
アンダーラインが青色になりましたね。
こんな感じで、画面とソースコードは結び付いており、ソースコードを書き変えるだけで自由に画面をカスタマイズすることができるというのがお分かりいただけましたでしょうか。
この「ソースコードを書き変えると画面やソフトウェアをカスタマイズできる」というのが、この後かなり重要になってきます。
OSSのメリット
さて話を戻しましょう。OSSには以下のようなメリットがあります。
順番に説明していきますね。
1.ソースコードを書き変えることで内容を自由にカスタマイズできる。
1つ目のメリットは「OSSはソースコードを書き変えることで内容を自由にカスタマイズできる」ということです。
先ほど説明しましたが、ソフトウェアやウェブサイトはソースコードに書いてある通りの動きをするため、ソースコードを書き変えれば動きも変わります。
そしてOSSはそのソースコードを一般公開しているのでだれでも自由に内容をカスタマイズできるという特徴があります。
2.コストの削減をすることができる。
2つ目のメリットは「コストの削減をすることができる」ということです。
ゲームソフトなどもお金がかかりますが、ソフトウェアも同様に、利用するためには大抵「ライセンス費用」という、ソフトウェアを使用するためのお金がかかります。
これは「1年〇〇円」などで決まっているため、長期使用を目的としていると結構費用が掛かってしまうんですね。
でもOSSは無料で公開していることが多いため、そのライセンス費用を削減することができるのです。
3.信頼と安定性の保証がされる。
3つ目のメリットは、「信頼と安定性の保証がされている」という点です。
OSSはソースコードが公開されているので誰でも自分の目でソフトウェアを確認することができます。
そのため、例えば危険なプログラムが入っていてもそれに気づくことができるんですよね。
なので危ないソフトウェアは避けることができますし、そうでないソフトウェアは安全の保証がされます。
また、ゲームなどではよくバグが発生しますよね。テストやデバッグをしっかりやっていたとしてもバグを根絶することは難しいです。
でもOSSならいろんな開発者がカスタマイズをするので、その過程で今まで見つけられなかったバグも発見されやすいんです。
その結果バグの数も減少するため、そのソフトウェアの安定性が確保されているというわけですね。
いろんな人に見られるため悪いことはできないですし、良くない点はすぐに修正されるという仕組みです。
OSSにする理由は?
これまででOSSを利用するメリットについてはご理解いただいたと思います。
それではなぜせっかく作ったソフトウェアをOSSにして無料で公開するのでしょうか。
今度は開発者側の理由もお話ししたいと思います。
作ったソフトウェアをOSSにする理由は以下の2点です。
1.ソフトウェアの品質を高めることができるため。
1つ目の理由は「ソフトウェアの品質を高めることができるため」です。
これは先ほども述べたことですが、OSSにすると世界中のエンジニアたちがソースコードを見てくれたり、バグを直してくれたりします。
そのため不具合なども減り、一人で作成したときよりも品質が高いソフトウェアになるんですね。
2.自分の開発力を広くアピールできるため。
2つ目の理由は「自分の開発力を広くアピールできるため。」です。
OSSにする開発者の中には、あえて無料にすることでいろんな人に見てもらいたいという方もいます。
やっぱり、無料のほうが見てくれますからね。
そしてそうすることで、自分の開発力をより広くアピールしようとする目的でも使用されます。
まとめ
さて、いかがだったでしょうか。
せっかく作ったソフトウェアをあえて無料で公開することで、ソフトウェアの質が上がったり、逆に自分の開発力のアピールになるということがなかなか面白かったのではないでしょうか。
今回のページではOSSの概要とメリットのみをお話ししましたが、実際の試験ではそれに加えてOSIなどの基準も併せて出題されますので、是非そちらの記事も合わせて読んでみてくださいね。