楠本研究室

業績一覧

ホーム業績一覧

オブジェクト指向言語における関数型イディオムの実態調査

オブジェクト指向言語における関数型イディオムの実態調査
ソフトウェアエンジニアリングシンポジウム2018, pp.184-191 (2018)
概要: プログラミング言語の進化は,プログラムを構成する要素や部品をどのように分解し組み合わせるかという考え,すなわちパラダイムの進化と隣り合わせである.代表的なパラダイムとしてはオブジェクト指向や関数型が広く知られており,近年ではこれらを組み合わせた実装方法,つまりマルチパラダイムな実装方法が浸透しつつある.その中でもオブジェクト指向言語として登場した Java は,2014 年に関数型に基づく様々な記法 (イディオム) を採用した.これにより,Java 開発者にとってはオブジェクト指向に加え,関数型の採用という選択肢が増えたといえる.しかしながら,Java を用いた実際の開発現場において関数型が採用されているか,また関数型のイディオムがどのように利用されているかは明らかになっていない.本研究では,Java を用いたオープンソースプロジェクト 100 個の約 13 万リビジョンを対象に,3 種類の関数型イディオム (ラムダ式と Stream,Optional) の利用実態を調査する.調査により,実際のプロジェクトのうちラムダ式を採用しているプロジェクトは 18% である一方,Stream を採用しているプロジェクトは 5% であり,Stream の利用は浸透していない事が示された.また,関数型イディオムを採用する主な理由は,可読性やパフォーマンスの向上のためであり,一方で関数型イディオムを採用しない理由は,JDK 6 / 7 に対する後方互換性や保守性の維持のためであるという調査結果が得られた.
@inproceedings{田中紘都2018b,
  author = {田中 紘都 and 柗本 真佑 and 楠本 真二},
  title = {オブジェクト指向言語における関数型イディオムの実態調査},
  booktitle = {ソフトウェアエンジニアリングシンポジウム2018},
  pages = {184--191},
  year = {2018},
  month = {aug}
}