OSS X Users Meeting #31「オープンソースプロジェクトを支える言語たち」
2021年8月25日に「OSS X Users Meeting #31」を開催しました。 当日は約450名の方々にご参加いただき、誠にありがとうございました。
<OSS X Users Meeting> は、2012年にSCSK R&Dセンターが中心となり「OSSユーザーのための勉強会」として発足したもので、「旬な、注目の OSS」をテーマに開発コミュニティの当事者とこれからOSS を学びたい人との交流・相互理解を通じ、 共に見識を高めるための勉強会&セミナーイベントです。 31回目の開催となる今回は、『オープンソースプロジェクトを支える言語たち』と題し、プログラミング言語 Rubyの“生みの親”である まつもとゆきひろ氏や、日本最大のJavaユーザーグループ代表 谷本心氏、世界最大規模のPythonカンファレンスPyCon JP主催 鈴木たかのり氏といった第一人者の方々に講演いただきました。
開会、ご挨拶
まず開会にあたり、早稲田大学 理工学術院総合研究所 研究院教授の吉岡信和氏にご挨拶をいただきました。
改めて学ぶオープンソースの秘密
第1セッションは、「改めて学ぶオープンソースの秘密」をテーマに、一般財団法人Rubyアソシエーション代表理事で、Ruby言語の“生みの親”である、まつもと ゆきひろ氏にご登壇いただきました。
リチャード・ストールマンがソフトウェアは自由であるべきと宣言、実行する自由、(ソートコードを含めて)学ぶ自由、(必要に応じて)改変する自由、再配布する自由を唱えました。それを保証するため、GPL(General Public License)の仕組みを考案したのです。以後、フリーソフトウェアのプログラミング言語は増加の一途をたどり、中でも1995年はJava、Ruby、PHPなどが登場。フリー言語の当たり年と言われました。
そして1998年には、オープンソースという言葉が誕生。その背景にはブラウザ戦争があったといいます。当時覇権を争っていたブラウザのうち、Internet ExplorerはOSの付属でしたが、Netscapeは有償で不利な立場にありました。そこで苦肉の策として、ネットスケープ社はブラウザをフリーソフトウェア化したのです。
現在のインターネットはOSSに依存しており、OSSなしに社会は存続できないといっても過言ではありません。ソフトウェア業界においても、フリーソフトも含めたプログラミング言語が果たした役割は大ですが、最近ではオープンソースの限界も見えてきたといいます。
例えば、Elasticsearch、MongoDBという元OSSの存在です。これらをクラウドサービスのトップ企業が自社サービスに採用したことで、開発元企業のビジネスが成り立たなくなってしまいました。そこで、自社と競合するサービスへの利用を禁止したのですが、これはOSSの定義に反するものです。
改めて学ぶオープンソースの秘密:セッション資料
:セッション動画
オープン化が進むC++の現状と展望
第2セッションには、cpprefjp(C++)コミュニティ コアメンバの高橋 晶氏が登壇、「オープン化が進むC++の現状と展望」をテーマに講演いただきました。
C++も、2011年のC++11策定までは標準化のメーリングリストがクローズドで、標準化委員会のメンバーしかアクセスを許されず、一般ユーザーは議論への参加が不可能。決定したものを追いかけるしかなかったといいます。しかしC++14以降は、標準化委員会がオープンソース開発者に標準化への参加を依頼しはじめ、メーリングリストもオープン化。誰もが議論に参加できるようになりました。
オープンソースとの関係では、変わりやすい最新のライブラリとその設計の知見をいかに共有していくか、母国語情報をどう増やすか、ボランティア開発者へのインセンティブをどうするかが今後の課題だと言います。
たとえばC++が真に必要になる領域として、高速化のためのバックエンドがあります。近年はフロントエンドには使いやすい (スクリプト) 言語を使い、バックエンドにC++がいるという開発が増えています。他にも、大規模計算・シミュレーション、エッジデバイス上のアプリケーションなどがあります。
オープン化が進むC++の現状と展望:セッション資料
:セッション動画
Pythonの現在とこれからと
第3セッションでは「Pythonの現在とこれからと」をテーマに、一般社団法人PyCon JP Association 副代表理事の鈴木 たかのり氏に講演いただきました。
Pythonは1991年にリリース(バージョン0.9)されてから、現在の最新バージョン3.9.6に至るまで30年経っていますが、現在も開発が活発に続けられています。
Pythonの拡張はPEP(Python Enhancement Proposal)で提案され、かつてBDFLが採用/不採用を決定していましたが、2018年に大きく運営方針が変わりました。現在では、毎年5名のCouncil membersを投票で決め、そのメンバーが提案の採用/不採用を決定しています。
Python言語のアップデートですが、2021年10月に3.10.0がリリース予定で、今後は年1回マイナーバージョンが上がります。また、3.N.0リリースから5年間サポートが続きます。3.10の主な新機能としては、エラーメッセージがわかりやすくなったこと、 構造的パターンマッチング(Structual Pattern Matching)の導入などがあります。
今後の動向で注目されているのが、Pythonの高速化です。
Pythonの現在とこれからと:セッション資料
:セッション動画
26 Java Years - これが今のJavaだ!
第4セッションでは、「26 Java Years - これが今のJavaだ!」をテーマに、日本Javaユーザーグループ代表の谷本 心氏に講演いただきました。
谷本氏がいうようにJavaはエンタープライズ系での採用が多いものの、OSSと共に歩んできた言語です。現在はJava自体がOSS化。複数の企業や団体からOSS版のJDK(開発キット)が提供されており、エコシステムが成熟している言語の一つです。実際、主流となったOSSプロジェクトが、Javaの標準機能として取り込まれる流れが生まれました。
一方で、その四半世紀の歴史の中では何度か問題も発生しています。サン・マイクロシスムズがJava的なものをJavaとは認めないとしたApache Harmony事件、android事件およびオラクルによるGoogle訴訟事件などは有名です。こうした流れを経て、各種OSS Javaプロジェクトが合流。現在はOpen JDKが唯一のOSS版Javaとなっています。
最近の大きなトピックは「有償化? 問題」です。その背景には、2017年のJava 9以降、従来の2~3年ごとのリリースから、半年ごとのリリースにサイクルが変わったことがあります。合わせて、オラクルがOracle JDKの無償配布を終了し、Open JDKのみを提供すると方針を変更。そのサポート期間を次のバージョンが出る半年先までとしたことで、有償のOracle JDKを購入しないとサポートが受けられないと考えたユーザーから、Javaの有償化ではないかという誤解を招きました。
26 Java Years – これが今のJavaだ!:セッション資料
:セッション動画
エコシステムとWebAssembly
最終セッションには、WebAssembly Night、Rust.Tokyo 主催のchikoski氏が登壇、「エコシステムとWebAssembly」をテーマに講演いただきました。
よってWebAssemblyの最初の用途は、Webブラウザ上で既存のアプリを動かすことでした。例えば、AutoCADをアッセンブリしてWebブラウザに移行する、AcrobatをWebブラウザ上で動かすなどの例が有名です。2020年には、ZoomがWebAssemblyを使って機能の一部をアッセンブリしました。これにより、Google chrome上でアプリ版とそん色なく動作するようになっています。最近では、サーバーレス環境での使用も増えており、オープンソースのコンテナオーケストレーションKubernetes上で稼働するWasmの実行環境などもあります。
Wasmをめぐる注目のキーワードに、パフォーマンスとエコシステムがあります。
また最近では、既存資産をサーバーレス環境などへ移行する際に、javaScriptでまるまる書き直すのではなく、少ない工数で移行できる点に期待し採用する例が目立ちます。こうしたメリットに着目し、プラグインとしてWasmを活用するケースも増えています。
閉会、ご挨拶
イベントの最後にSCSK R&Dセンター センター長の杉坂浩一より閉会の挨拶をさせていただきました。
31回目の開催となった「OSS X Users Meeting」ですが、オンラインでたくさんの方にご参加いただくことができました。次回も皆さまの参加を心よりお待ちしております。