私が初めてOSS(オープンソース・ソフトウェア)に触れてから25年が経とうとしています。25年が経ちOSSはかなり普及しました。今では新聞やメディアでも、OSSやオープンソースの文字が普通に使われるようにもなりました。日本の企業においてはOSSを活用していない会社を探すのが難しいほどです。

ちなみに全世界のWebサーバの8割でPHPが稼働しており(W3Techs 2021年8月調査)、また、開発言語の求人数においてはPHPがJavaを抜いて第1位になっており(Indeed Japan2021年4月集計)、インターネット関連の技術においてOSSの利用が浸透しています。

OSSの利用が普及する一方、OSSの開発に携わる人はまだまだ多くないという印象を持っています。OSSの基本的な精神として、開発したコードやナレッジを共有していくことが一義にあるため、基本的にはGive and Takeの関係が望ましいと考えています。もちろんライセンス上の話で言えば、利用するだけでもよいのですが、OSSの開発ができる力がある人には、ぜひOSSの開発にも携わってほしいと思っています。

そこで今回は、OSSの開発に興味を持った方向けに、「OSSの機能開発やバージョンアップがどのように行われているのか」「OSS開発者の第一歩としてのOSSの楽しみ方」というテーマで、技術者の方々に聞いてみました。お話を聞いたのは、10月2日・3日にオンラインで開催される「PHPカンファレンス」で基調講演を務める日本PHPユーザ会の廣川類氏とPHPカンファレンス2021実行委員長の川原翔吾氏です。PHPコミュニティは初心者でも参加しやすいコミュニティなので、OSSに興味を持った方はPHPから始めるのもありだと思います。

吉政: PHPはバージョン8が最新版ですが、機能追加・変更はどうやって決めているのでしょうか?機能追加・変更のフローをお聞かせください。また、PHP8.xの機能追加・変更についての見どころがあればお教えください。

廣川: 現在のPHPでは、機能追加・変更は開発者による提案を受けて、開発者による議論・評価を行い、最終的に投票により採否を決定する仕組みを採用しています。数名のコアな開発者が多くの機能を実装し、維持していた時代もありましたが、コードの規模が大きくなった今は、仕様書と実装コード、テストコードなどをもとに議論・評価を行って、採否を投票により決定するという民主的な仕組みが取り入れられています。

具体的には、https://wiki.php.net/rfcというWebページを見ていただくと、提案中の機能や採択済みで将来のPHPに実装される予定の機能わかります。なお、特定のPHPのバージョンにどの機能を取り入れるかの決定は、バージョンごとに投票により決定されるリリースマネージャに決定の権限があります。また、セキュリティ上の理由などで緊急の変更が必要となった場合は、こうしたプロセスを経ずに変更が行われるケースもあります。この機能提案は、誰でも行うことができるので、PHPスクリプト言語の開発に興味がある方はぜひ挑戦してみてください。

吉政: わかりやすい説明をありがとうございます。PHPは公平かつ効率的な方法で運営されているのですね。ちなみに、OSSの開発に携わっている方も最初はOSSを学び始めて、興味が出て、面白くなり、コードを書いていくうちに、そのOSSをもっと良いものにしたくなったという方が多いと思います。つまり、そのOSSに興味を持ち、そのOSSで開発する楽しさを感じるのが第一歩だと思います。廣川さん、川原さん、PHPを学ぶ楽しさや、PHPで開発する楽しみを教えていただけますでしょうか。

廣川: PHPの作者であるRasmus Lerdorf氏の話を紹介しましょう。Rasmus Lerdorf氏は、PHPについて、「特別なものではなく、日常の業務を楽に実行できる道具であり、歯ブラシのような(日常的な)ものである」と言っています。プログラミング言語というと、コンピュータサイエンスの難しい理論から生み出されたようなものに感じることもありますが、PHPは日常の身近な業務を楽に実行できることを目標にして開発され、進化を続けてきました。

PHPの実現にはその時々の最新の技術が使われていますが、PHPを使うユーザーには、その機能ができるだけわかりやすく活用できるように工夫されています。難しかったり、面倒だったりすることを簡単に実現できるというコンセプトこそ、PHPが進歩の速いWebアプリケーションを中心に長く支持されてきた主な理由であると思います。

PHPは1995年のバージョン1の開発から数えると既に4半世紀以上が経過し、常にアクティブな開発が続けられてきたため、十分に成熟したソフトウェアになっています。その状況でも技術トレンドをうまく取り入れて常に機能性能を高めてきたということで、今でも多くの人がPHPを使い続けている状況を生み出していると思います。

普通、長い間進化を続けて成熟すると進化が止まってしまいがちですが、時代のニーズに応じた機能を実装したり、最新の最適化技術を取り入れたりすることで、進化を継続しています。世界中の人が新しい機能を提案できる開発体制になっているので、世界中の人のアイデアを取り入れることができているのではないかと思います。個人的には、そうした技術の進歩を見ることができることがエンジニアとしての楽しみの一つになっています。

川原: 私の場合、自分が高校生だった頃、PHP4を利用することによりチャットや掲示板をサクッと作れてしまうことに感動した記憶が強く残っています。それはたった1つのPHPファイルで動作していました。今思えば、そのアプリケーションは脆弱性だらけで、拡張性もなく世の中に公開してはならないものだったようですが、お古のノートPCにVine Linux を入れて、仲間内で遊びで使っていました。

その後、Webエンジニアとして修行する中で大きなアプリケーションを作っていくことも経験してきましたが、その両方に対応できるPHPが今でも続いていっていることは素晴らしいと感じています。

今でも、サクッと作ることができるアプリケーションは1つのPHPファイルだけで済むし、必要であればComposerを使いライブラリを組み合わせて、静的解析も入れルールをガチガチにしつつ、複雑で安全なアプリケーションを作るといったことができるという「幅」がPHPの面白いところだと思います。

吉政: ありがとうございます。二人とも素晴らしい技術者ですが、開発や学びの面白さの視点が違いますよね。これもOSSの懐の深さなのかもしれませんね。冒頭でも紹介したPHPカンファレンス2021は40ものセッションが2日間にわたって行われます。登壇者の方全てのトークに技術者のストーリーがあります。そして、個人的にPHPカンファレンスのスピーチの特徴と思っているのは、皆さんがPHPを楽しく話していることです。PHPカンファレンスに参加することで皆さんの楽しさの新発見にもつながるかもしれませんね。PHPカンファレンスはオンライン開催なので、全国どこからでも無料で参加できます。興味がある方は参加されてみてはいかがでしょうか?

(執筆協力:コサカユーキ)

著者プロフィール

吉政忠志

業界を代表するトップベンチャー企業でマーケティング責任者を歴任。30代前半で同年代国内トップクラスの年収を獲得し、伝説的な給与所得者と呼ばれるようになる。現在は、吉政創成株式会社 代表取締役、プライム・ストラテジー株式会社 取締役、一般社団法人PHP技術者認定機構 代表理事、一般社団法人Rails技術者認定試験運営委員会、BOSS-CON JAPAN 理事長、一般社団法人Pythonエンジニア育成推進協会 代表理事を兼任。