ART IN THE PROGRAM

f:id:ms_ko_ushizaki:20200903151921p:plain

こんにちは。システム開発部 GX推進グループの牛崎です。

社内のチャットを眺めていたら、「プログラムの美しさと美術は同じもの?」と書かれている方がいました。

f:id:ms_ko_ushizaki:20200903133353p:plain

たった1行のメッセージですが、僕はこういう視点で物事を考えてみるのも面白いなと思ったのですね。
ART IN THE OFFICEを実施していたり、森美術館の法人メンバー (2020年9月11日現在)でもあったり、多様な表現の理解を大切にするマネックスでもあります。
そこで今回は「プログラムの美しさと美術は同じなのか」を少し考えてみました。

Liberal Arts

僕は学部卒で教養学部を出ているのですが、この学部は英語で「Faculty of Liberal Arts」です。「リベラルアーツ」という言葉、なんとなく耳にした事がある方は多いと思います。

日本語では「教養」的な意味に訳されるこのLiberal Arts。本来の欧米の学問体系のLiberal Artsでは、人が作った物を扱う分野をArts、神が作った物を扱う分野をScienceと定義する教育課程を意味する言葉です。キリスト教の世界観ですね。
そのため、授与される学位も、専攻した内容によってB.A. (Bachelor of Arts)かB.S. (Bachelor of Science)となっています。

以前、PrefixとSuffixに関する記事を書きました。同じPrefix・Suffixを持つ英単語は、意味や語源が似ているというものです。

調べてみると、Article (記事)・Artifact (人工物)・Artificial Intelligence (人工知能)など、人の手で作られた物の英単語はArtのPrefixで始まるものがあります。
なるほど、人が作った物がArtsというのは言葉にも表れているようです。

プログラムも人が作った物。Artsの1つと考えれば、美術 (=Art)と同じ美しさを持つと考えて良いのではないでしょうか。

プログラムの美しさとは?

ところで、プログラムの美しさとは何なのでしょう? 皆さんはどんなところに美しさを感じますか?

「プログラマが知るべき97のこと」というエッセイの1つ「美はシンプルさに宿る」では、美しいコード (=プログラム)はシンプルなコードと結論を出していますが、何を美しいと感じるかは個人によって異なるとも述べています。

美しさの定義を決めるのは個人という意味でも、プログラムの美しさは美術的なのかもしれません。

僕は短いコードに美しさを感じやすく、新卒の頃はよくWebフレームワークのコードを読んでいました。
モダンなWebフレームワークはオブジェクト指向が上手く使われていて、再利用可能で短く書かれたコードの集合体。綺麗だなと思ったのを今でも覚えています。

余談ですが、LaravelというPHPのWebフレームワークにはartisanというCLIがあり、アプリケーションの操作や各種ファイル生成に用いられます。
CakePHPのbake、Symfonyのsymfony、Yiiのyiiなど、大体のWebフレームワークには同等の機能がありますが、何故Laravelはartisanと名付けたのでしょうか?
作者にArtsの理解があったりしたのかな? なんて、この記事を書きながら思ったりしました。

きっかけとなったチャットは何気なくつぶやいたただけなのかもしれませんが、個人的に面白いテーマでした。

牛崎 洸システム開発部 開発グループ エンジニア