オープンソースとは一般的に公開されているソースコード(プログラムコード)のことを指し、改良や再配布を行うことが許可されているソフトウェアのことをオープンソースソフトウェア(OSS)とも呼びます。
オープンソースによってライセンス形態に違いはありますが、基本的には商用・非商用問わず、誰でも使用することが出来るので、今日のIT・Web業界には欠かせないものになっています。
現代ではオープンソースとして公開されている様々な製品があります。簡単にブログが作れる「WordPress」や、ECサイトが作れる「EC-CUBE」、SNSが作れる「OpenPNE」などはよく使用されていると思います。
筆者もオープンソースソフトウェアをよく使用しますし、オープンソースで配布されているお陰で、低コストでより良い製品を開発できているので、たいへん助かっています。
ただ、Webやプログラムに詳しくない人は「オープンソース=無料で簡単」と思われている方が多く、オープンソースソフトウェアを使えばどんなサイトも簡単に安く作れると思いがちです。
求人サイトについてもよく「無料で簡単に作れるツールとかないの?」と相談されますし、クラウドソーシング(お仕事依頼サイト)などを見ても「WordPressで安く求人サイトを作ってください」と言った依頼を見かけます。
しかし、それは誤解です。オープンソースソフトウェアを使用したからと言って、必ずしも簡単で安く作れるとは限らないのです。今回はそのことについて説明したいと思います。
※なお、色々と呼び方があるのですが、複数使い分けるとややこしくなってしまうため、総じてオープンソースとして称して説明したいと思います。
安く作れるわけではない
オープンソースを使えば1から開発するのに比べて短時間で作ることができます。元から形として出来上がっている物ですから、それを使えば短時間で安く作れると思われるでしょう。
その認識自体は間違いではありません。しかし、それはあくまで「デフォルト(初期状態)のまま使う」場合だけです。オープンソースに手を加える場合、その限りではありません。
そしてほとんどのお客さまはデフォルトのまま使用することを望みません。「フォームの項目を追加してください」「この表示では使い勝手が悪いので変更してください」などの希望をおっしゃいます。
このような追加・変更(いわゆるカスタマイズ)に対して作業するに時間がかかるのです。そして、その時間に対してコスト計算(料金計算)するので、相応の金額になってしまいます。
なぜカスタマイズに時間がかかるのかというと、それは「他人が作っているから」です。いくら情報量が多いオープンソースといえども、他人が作ったコードをいじるには通常より時間がかかってしまいます。
仮に自分で作ったコードであったとしても、全く触らない期間が長ければ容易には扱えません。1年前に納品したコードを1年後にカスタマイズ依頼を受けてもすぐには対応できないのです。
これはプログラマやエンジニア以外の方には理解し難いことかもしれませんが、開発者の怠慢でそうなるのではありません。開発者は常に最善のコードを追求しているため、古いコードは扱いにくくなるのです。
また、時代の流れや変化もあります。ITやWebの世界は流れが早く、覚えることもどんどん増えていくので、旧来の仕様が通用しなくなることもよくあるのです。
オープンソースも同様で、ソフトウェア(または元のプログラム言語)のバージョンによってソースコードの構成が変わり、従来のやり方では通用しなくなる時があります。
それが「簡単にはカスタマイズできない」という理由になるし、相応の時間がかかってしまうことで、相応の料金が発生する要因にもなります。そのため「安く作れるわけではない」のです。
セキュリティリスクがある
オープンソースは多くの人が利用しています。利用者が多いとそれだけ多くの人の目に触れますから、システムの不具合や穴(問題点)が露呈されやすくなります。
オープンソースを使用する人の中には良い人もいればそうでない人もいます。システムの不具合を見つけ、その不具合から本体を攻撃するようなプログラムを作る人もいます。
オープンソースとして有名なWordPressも多くの人が利用しているだけに、頻繁にセキュリティトラブルに見舞われています。個人情報保護に関する独立法人のIPAでは、以下のような情報を公開しています。
参考:WordPress の脆弱性対策について:IPA 独立行政法人 情報処理推進機構
IPAに限らずレンタルサーバー会社やプロバイダなどこのようなアナウンスを頻繁にしていますので、もしWordPressを利用している場合は注視するようにしてください。
ただ、WordPressの場合は利用者も多く、開発も頻繁に行われているので、こういったセキュリティ問題も迅速に解決してくれますし、利用者の間で情報共有も頻繁に行われています。
しかし、中にはそうでないソフトウェアもあります。何年も前に公開したまま開発が停止されているオープンソースソフトウェアも多々あるのです。
ですので、オープンソースを提供する側はそういったセキュリティリスクも考慮しなければいけません。そしてセキュリティを考慮する分、開発費に上乗せしたり、すぐには対応できないという事情に繋がるのです。
サポートは別になる
オープンソースの場合、基本的には「サポートは別(またはしない)」場合が多いです。むしろ手厚いサポートをしないからオープンソースで公開しているともいえます。
EC-CUBEのように事業として製品開発を行っている場合は迅速なサポートを期待することもできますが、海外製のオープンソースや無償を目的に公開している場合、サポートは期待できないと思って良いでしょう。
仮に開発者がサポートをすると公言していたとしても、多くの期待は望めません。修正ファイルが提供されるまで時間がかかるでしょうし、個別の問い合わせに関してもすぐに返事は来ないでしょう。
もちろん、これは無償サポートの場合です。オープンソースであってもサポートは有料だという所も多いので、有料でサポート契約をするのであればセキュリティリスクがあっても対応してもらえます。
また、オープンソースの開発元がサポートをしていなくてもそれを提供する業者側がサポートをしている場合もあります。その場合は有料になりますので、やはりサポートについては別という認識を持ったほうが良いと思います。
いつ開発終了するかわからない
サポートの話と並行しますが、オープンソースの場合はいつ開発が終了するか分かりません。突然開発が終了されることもあり、開発が終了した後のセキュリティ問題は放置されることがあります。
国内の有名なオープンソースの場合なら開発終了後もサポート期間を設けている場合があり、半年から1年ぐらいは保守をしてもらえますが、海外製の場合はその限りではありません。(法律の違いなどもあると思います)
もしある日突然開発が終了し、その後にバグや不具合が発見されても基本的には修正してもらえないので、自分で直すかそのまま使用するか使用するのを止めるかになると思います。
いずれも簡単なことではありません。業者に依頼するにしても相応のコストが必要になります。その時は直してもらえてもオープンソースの開発が終了しているわけですから、今後も問題になってくるでしょう。
これは有償・無償問わず全ての製品・サービスに対して言えるかもしれませんが、オープンソースという性質上、他の形式の製品と比べて開発終了のリスクは高いと言っても過言ではないでしょう。
何をして良いわけでもない
オープンソースで提供されているからといって、どんな使い方をしていいわけではありません。オープンソースごとにライセンスというものがあり、ライセンス形態によっては利用できる範囲に制限があるのです。
オープンソースソフトウェアを提供している開発者のほとんどはライセンスに則って提供しており、使用者にもライセンスの同意を義務付けた上で利用してもらうようにしています。
例えばGPLというライセンスであれば、GPLでライセンスされた製品を使って何か作った場合、その製品もGPLでライセンスされなければいけないという規定があります。
たとえそれが1行のプログラムだったとしても、「誰でも自由に複製・改変・配布することを許可」しなければいけないとなり、これが利用者にとって足かせになる場合があります。
著作権表示(コピーライト)に対してもライセンスによって表示を削除してはいけない場合もあり、1つの製品・コード内に複数の著作権表示を入れなければいけない場合もあります。
ですので、オープンソースを使用する場合、まずライセンスがどうなっているか確認するようにしてください。そして「ネットに無料で公開しているから何しても良い」わけではないということにご注意いただければと思います。
まとめ:無料であって無料ではない
冒頭でも述べたとおり、オープンソースは今やIT/Web業界には欠かせない存在となっていますし、当方でもオープンソースで作られたプログラムを多く使用しており、たいへん助かっています。
ですが、オープンソースで公開しているには理由があるということも忘れてはいけません。ソフトウェアを開発にするには多大な時間が必要になり、なかなか善意だけでは公開できないのです。
日本でよく使用されているWordPressやEC-CUBEも同様で、それぞれ開発元には思惑があって公開していますので、安易に「無料だから」「みんな使ってるから」で導入しても、後々困ることになるかもしれません。
オープンソースを使えばクリエイターやエンジニアは業務を円滑に行えますが、、オープンソースを使用する作業者の時間(コスト)まで軽減できないとご理解いただければと思います。
もし、「オープンソースを使えば無料で簡単にサイトを作れる」とか「オープンソースならリスク無く実現が可能」という考えをお持ちであれば、今後は改めてください。トラブルの原因になるかもしれません。
それよりも「使用料はかからないけど、やりたいことを実現するにはお金も時間もかかる」「オープンソースを使用するからといって安くできるわけではない」という認識を持っていただければと思います。
その認識をしていただければ、オープンソースを使用した開発・サイト構築も円滑に行えるでしょうし、制作者とのトラブルも減り、結果的に”安くて良いもの”を提供してもらえるようになるでしょう。