「The Aesthetics of Software Code: A Quantitative Exploration」要約

「The Aesthetics of Software Code: A Quantitative Exploration(ソフトウェアコードの美学:定量的研究) - Aaron Kozbelt, Scott Dexter, Melissa Dolese, and Angelika Seidel」という本を翻訳してみました。原文のurlはこちらです。https://www.researchgate.net/publication/232443360_The_Aesthetics_of_Software_Code_A_Quantitative_Exploration

概要

科学と美学を結びつける研究が盛んに行われているが、ソフトウェア開発のような技術的な領域では美学の定量的な調査は事実上存在しない。最初の調査として我々は12人のプログラミングの専門家と38人の初心者を対象にオンライン調査を実施し、ソフトウェアコードに対する美的体験の頻度、性質、時間経過、判断基準を評価した。両グループともに他の創造的な成果物に比べて頻度や強度はやや低いものの、コードに対する美的経験を持っていると報告した。全体的に、「醜い」コードの判断は「美しい」コードの判断よりも速く、「正しい」コードの判断よりも速くなると報告された。また、コードの美的配慮は機能性ほどではないが、一般的にはかなり重要であると評価された。最後に、美的判断基準は専門家と初心者で相関関係があった。結果は、ソフトウェアコードの美学に対する定量的なアプローチが美学と創造性に対する領域を超えた意味合いを持ち、有望な方向性であることを示唆している。

導入

多くの素人は科学と美学をSnow(1960)の「2つの文化」のパラダイム的な、生産的相互対話の可能性がほとんどなくオーバーラップしない領域だと見ている。最近の科学的創造性に関する包括的なレビュー(例:Feist, 2006; Simonton, 2004)でさえ美学についてはほとんど言及されていない。このような断絶は美学が歴史的には絵画や音楽などの芸術領域に主に焦点が当てられてきたことから明らかである(例:Leder, Belke, Oeberst, & Augustin, 2004; Levinson, 2003)。

しかし、科学と美学の間には意味のあるつながりが存在すると信じる理由がある。多くの学者が美学的な関心事が科学的な領域にも適用されることを示唆してきた(例えば、Curtin, 1982; Tauber, 1996; Wechsler, 1977を参照)。また、科学と芸術の両方において、同様の認知メカニズムが創造性を支えていると主張する学者もいる。そのようなメカニズムは、ダーウィン的な枠組みの中での偶然性を重視した概念的な組み合わせの利用(例:Simonton, 1988, 2004)から、領域固有の専門知識に導かれた大部分の合理的な問題解決プロセス(Weisberg, 2006)に至るまで様々な形態をとることができる。美学は明らかに芸術に関連しているが、共通の心理学的メカニズムが多くの領域で創造的な問題解決の根底にあるとすれば、美学も同様に科学に関連しているはずである。最後に、より臨床心理学的な観点からFeist (1998)は創造性の高い科学者の特徴として、感情的な要素、具体的には経験への開放性が含まれており、これは重要な美的要素を持っていることを発見した。このような研究は、従来の科学の領域から美学が暗黙のうちに排除されていたことに疑問を呈する強い根拠があることを示唆している。

著名な研究者の一人称での証言は、科学を行う上での美学の重要性をよく表している。例えば、ノーベル賞を受賞したDirac(Hovis & Kragh, 1993参照)、Heisenberg(1974)、Chandrasekhar(1979, 1990)などの物理学者は、物理学の努力における美の重要性について書いており、例えばChandrasekhar (1979)の科学における美に関する調査論文の中では彼は次のような疑問を提示していいる。

”私たちは皆、自然の美しさに敏感である。この美しさのいくつかの側面が自然科学によって共有されていることは不合理ではありません。しかし、美の探求が科学の追求の目的であるかどうかは疑問である” (p.25)。

さらに彼は、主に数学者や物理学者を中心とした多くの著名な研究者を引用して、科学的実践における美学の役割について述べており、美学への関心が科学者の活動を継続するための主要な動機付け要因であると同時に、理論選択の基礎となる可能性を示唆している。神経学の先駆者であるSan-tiago Ramo ́n y Cajalも同様に「科学は美的にやりがいのあるものである」と強調し、神経学の分野では「美的本能がついに完全な満足感を見出した」と書いている(Ramo ́n y Cajal, 1937/ 1989, p. 363)。

Root-Bernstein(2002)は偉大な科学的な仕事はしばしば美を体験しようとする衝動から生じていると同意し、次のようなさらに強い主張を加えている。「科学、工学、数学に由来するすべての人間の発明は、芸術によって喚起されるのと同じような美的反応を喚起する可能性を持っている。」

科学と美学を結びつける研究は増え続けているが、研究や議論の焦点は主に非応用的で高度に理論的な領域に置かれる傾向がある。対照的に、ソフトウェア開発のような応用的で技術的な領域では美学の研究は稀であり、定量的な研究は事実上存在しない。これは、ソフトウェアを書くという活動がソフトウェアコミュニティの外ではあまり理解されていないという事実に起因しているかもしれない。美的な関心事は、コンピュータサイエンスやソフトウェア開発のようなより技術的な領域にどの程度まで関連しているのだろうか。一般的には、プログラム作成は高度に構造化された環境で行われ、形式的な言語と標準的な技術だけに頼っており、創造性を発揮する余地はほとんどないと考えられている。しかし、実務家の間ではコンピュータサイエンスが科学として、エンジニアリングとして、工芸品として、芸術として、どの程度理解されるのがベストなのかについて豊富な議論と議論が行われてきた。

実験

参加者

参加者は、コンピュータ業界や大学の個人的な連絡先への電子メールで募集した(ここでは、経験豊富なプログラマーを募集したいと考えていた)。この分野は技術的な性質があるため、プログラミングやソフトウェア開発の経験が全くない真の初心者は不向きであったためである。利用可能なデータは、主にコンピュータサイエンスを専攻する年齢25.4(6.1)歳でプログラミング経験年数3.9(2.0)の学部生38名と、年齢41.6(13.8)歳とプログラミング経験年数20.3(11.7)のコンピュータサイエンスの専門家12名(コンピュータサイエンスの教授やソフトウェア業界の専門家が含まれる)によって提供された。専門家と初心者の区別は専門知識習得のためのいわゆる10年ルール(例えば、Chase & Simon, 1973)に基づいており、実際に私たちのサンプルでは10年以上の経験を持つ人が専門家に分類されている。幸いなことに、経験年数の分布が二峰性であることからこの基準に沿って分割することができた。

M(SD): 平均とばらつき

資料と手順

参加希望者は、surveymonkey.com に掲載されているオンライン調査の指示書に誘導された。調査(付録を参照)は以下のように構成されている。

(a) プログラミングにおける美学(対機能性)の頻度、強度、性質、時間経過、一般的な重要性に関する19の質問。
(b) 62個の簡単な説明文。それぞれの説明文がどれだけ美しい、あるいは審美的に美しいコードを特徴づけているかという点で、参加者は8点満点の評価をした(これらは主にOramとWilson (2007)から抜粋した専門家プログラマーによる説明を基にしたものである)。

最後に、参加者は調査と美しい(または醜い)コード一般に関する自由なコメントを提供することもできた。データは2009年秋学期に収集された。(注:結果全体を通して、データの欠落により自由度が異なることがあります。)

結果

コードと他の創造的成果物の美的体験の頻度

スクリーンショット 2020-12-02 17.57.43

参加者がコードの美的体験をしたことがあると報告した割合は高く、専門家の100%と初心者の84%であったのに対し、創造的な成果物全般については専門家の100%と初心者の92%であり、コンピュータ・コードは美的な方法で体験できるという逸話的な報告と一致している(Lammers, 1986/2006; Oram & Wilson, 2007)。

ほとんどの参加者がコードの美的体験をしたことがあると報告しているとはいえ、表1に見られるようにそのような体験はさほど高頻度ではなかった。そしてこの頻度はプログラミング経験によって多少変わっていた。初心者は一般的な創造的な成果物よりもコードに対する美的経験の方が確実に少ないと報告している(Wilcoxonのz 2.76, p .006)のに対して専門家は統計的に信頼できる差を示さなかった(Wilcoxonの検定が使用されたのは、調査の回答選択肢の尺度が明らかにインターバルではないためである)。

とはいえコードによる美的体験は珍しいものではなく、実際に、両サンプルの16%が、少なくとも月に数回はコードによる美的体験をしていると報告している。

コードの美的体験の情緒的な強さと一般的な性質(他の創造的な成果物と比較して)

コードに関連した美的体験の情緒的な強さの報告について、1(非常に弱い)から6(非常に強い)までの範囲のリッカート尺度で測定したところ、専門家と初心者の間に信頼できる差は見られず、専門家と初心者ではそれぞれ t(47) 0.28, ns, partial 2 .002, M (SD) 評価 3.00 (0.85) と 2.89 (1.22) であった。コードに関連した美的経験の基本的な性質については、1(非常に似ていない)から6(非常に似ている)までの範囲のリッカート尺度で測定したところ、専門家と初心者では、それぞれt(47) 1.42、p .16、部分2 .041、M(SD)評価3.58(1.16)と2.92(1.48)の信頼性の高いグループ差は見られなかった。

このように、両グループにおいて、コードを用いた美的体験は他の美的体験よりも感情的にはやや弱いが、参加者の他の創造的成果物を用いた美的体験と比較してその基本的な性質がやや異質であるに過ぎなかった。

美的体験と機能性の重要性、自分と他の人とのコーディングの比較

また、自分のコードを書くときと、他のプログラマーが書いたコードを評価するときの両方で、美的および機能的な配慮の重要性をどう判断したかについても比較しました。それぞれのケースで、重要性は1(非常に重要でない)から6(非常に重要)までの範囲のリッカート尺度で測定されました。データは、2(専門家対初心者)2(美的対機能性)2(自己対その他)混合モデルANOVAで分析した。結果は、グループ(専門家 vs. 初心者)の全体的な主効果、F(1, 44) 4.42、p .041、部分2 .091を含み、専門家の方がより高い重要度評価、M(SE)評価5.30(0.30)と4.59(0.16)を提供していました。結果はまた、機能性と美的配慮については、それぞれ機能性と美的配慮について、F(1, 44) 20.47, p .001, 部分2 .317, M (SE) 評価 5.30 (0.30) と 4.59 (0.16) の主効果、自己と他者については、F(1, 44) 11.26, p .002, 部分2 .204, M (SE) 評価 5.09 (0.19) と 4.80 (0.16) の主効果が示された。

可能な相互作用のうち、最も強いのは、グループと自己対その他の間の相互作用であり、F(1, 44) 5.12, p .029, 部分2 .104, M (SE) 評価 5.55 (0.33) と 5.05 (0.29)、初心者の自己とその他の間では 4.64 (0.17) と 4.54 (0.15) であった。また、美的・機能的配慮と自己とその他との間には、F(1, 44) 3.74、p .060、部分2 .078、M(SE)評価4.71 (0.21)と5.48 (0.24)、その他の美的・機能的配慮は4.16 (0.19)と5.43 (0.22)の間にも限界的な相互作用が認められた。

美的尺度と機能性尺度の個別の追跡分析も、2(群)2(自己 vs. その他)の混合モデルANOVAとして実施された。美学については、上記で報告されたものと同様に、2つの信頼できる主効果が認められたが、交互作用は認められなかった。グループについては、F(1, 45) 6.83、p .001、部分2 .132、専門家の方が高い評価を提供しており、専門家と初心者では、それぞれM(SE) 4.86 (0.32)および3.92 (0.18)であった。自己対その他については、F(1, 45) 12.81, p .001, 部分2 .222で、自己の方が高い評価を得ており、M (SE) 4.65 (0.20)と4.13 (0.19)はそれぞれ自己とその他の方が高い評価を得ていた。対照的に、機能性の重要性の同型分析では信頼性の高い効果は現れませんでしたが、これはおそらく天井効果によるものと思われ、壮大なM (SE) 5.44 (0.21)でした。しかし、調査の選択肢の絶対値では美的配慮はプログラミングにとってかなり重要であると判断され、これは特に専門家の間で顕著でした。

判断のタイム

スクリーンショット 2020-12-02 18.18.57

我々の結果は、美しいか醜いか、正しいか正しくないか(「正しい」とは、解決しようとしている問題を解決するというプログラムの専門用語)という観点から、コードの判断の報告されたタイムにも影響を与えている。表2に見られるように、専門家と初心者の報告されたタイムの分布はほとんどの尺度で類似しており、各尺度のグループ間のノンパラメトリック比較(Mann-Whitney U 検定を使用)は統計的に信頼性がなかった。唯一の注目すべき傾向は、コードの美しさの判定について初心者は多かれ少なかれベル型の分布を示したのに対し、専門家はバイモーダルなパターンを示し、サンプルのほぼ半数が1分未満で美しさの判定を行ったと報告し、他の人は著しく時間がかかったと報告していることである。このことは、専門家によってコードの美的側面が異なることを示唆しており、またコードの美的性質に対する理解が異なることを示唆しています。コードの審美性を判断するための相対的なタイムの報告を比較してみると、コードの審美性を判断するためには美しいコードと醜いコード、正しいコードと正しくないコードを比較すると、より多くの違いが現れた。具体的には、各グループは、美しいコードよりも醜いコードの方が一般的に早く判定されることを示しており、さらに、初心者(専門家ではない)は、正しいコードと比較して誤ったコードの判定をより速く行うと主張していた(Wilcoxonのz 2.25、p .025)。

興味深いことに、各グループは美しいコードの判定が正しいコードの判定よりも速くなることも示している。美しいコードと正しいコードのどちらが書きやすいかという質問に対して、専門家12人中7人、初心者38人中26人が正しいと回答しており、全体としては有意な多数派である2 (1) 5.12, p .024であった。

美的判断基準

参加者は、62の美的判断基準がどの程度美しいコードを特徴づけているかを、それぞれ8点満点の尺度で評価した。基準を横断して、専門家と初心者の平均評価では、r(60) .84、p.001と高い一致が見られた。両グループからの回答に均等な重み付けをしたところ、最も強く支持された基準は、「プログラムの明白でない側面を明確に説明するコメントを持っている」、「エレガント」、「一貫したインデントを使用している」、「効率性」、「修正/拡張が容易である」などだった。信頼性の高い群間差は、以下の項目にのみ見られた。「is short」、「is compact」、「applications to large and small applications」、「implements a small but important feature set from a wide set of options」(これらの項目の比較について、それぞれp .005、.004、.014、.015)で信頼性の高い群間差が見られた。いずれの場合も、初心者の方から専門家よりも高い支持を得ていた。しかし、実施されたt検定の数が多いことと、各項目間の統計的に信頼できる相関関係が多いことを考えると、これらの違いは誇張されるべきではないだろう。

議論

この探索的調査では、専門家と初心者の間で、コンピュータ・プログラミングとソフトウェア・コードにおける美学の性質について、定量的な方法で理解しようとした。我々のアプローチは、このトピックに関するこれまでの論文(例えば、Lammers, 1986/ 2006; Oram & Wilson, 2007)の定性的な記述的説明とは異なっており、専門家と初心者の両方が他の創造的な成果物に比べて頻度や強度はやや低いものの、コードに対する美的経験を持っていると報告していることを発見した。同様に、両グループともコードの美的配慮は機能性ほど重要ではないものの、かなり重要であると評価していた。全体的に、醜いコードの判断は美しいコードの判断よりも速く、正しいコードの判断よりも速くなると報告されている。最後に、専門家と初心者の美的判断基準は高い相関関係にあった。方法論的には、我々の発見はまた、芸術分野と同様に、ソフトウェア開発のような技術分野における美学の理解に対する定量的アプローチの有用性を支持している(例えば、Hekkert & van Wieringen, 1996; Kozbelt, 2004; Kozbelt & Serafin, 2009)。

我々の結論は、必然的にやや暫定的なものではあるが、創造性と美学に関するより一般的な学術的議論と容易にリンクすることができる。最も大まかに言えば、我々の結果は美的配慮が美術以外の領域においても重要であるという考えを補強するものである。我々のサンプルでは、美的経験や関心事の頻度、強度、重要性は絶対的に最重要ではないように見えたが、この結果は、美学がソフトウェアコードの経験において十分に顕著な役割を果たしていることを示唆しており、このトピックの継続的な調査を正当化する。また、創造的な領域の中でも、ソフトウェアデザインは、美学を機能性に従属させるという点では、おそらくユニークなものではないことにも注意している。様々な領域にわたる美学と機能性の関係をより詳細に解明することは、今後の研究の課題である。

我々の他の結果のいくつかは、美学と創造性のより具体的な問題に関連している。例えば、美しさは正しさよりもすぐに見分けることができるという興味深い発見は、美的な評価プロセスが、ソフトウェアのコードについての判断や意思決定を駆動する可能性があることを示唆している(Perkins, 1981も参照)。言い換えれば、プログラマーがコードを書いたり修正したりする際には、コードの詳細を苦心して過小評価するよりも、コードに関する美的直観に頼る方が単に効率的なのかもしれない。このように、醜いコードの判断は美しいコードの判断よりもさらに速く行われたと報告されているので、この美的モードはプログラムの問題を検出するために特に有用であるかもしれない。また、醜いコードの判定という概念自体が、これまで研究されてこなかった別のトピック、否定的な美的感情の研究につながることにも注目している(例えば、Silvia & Brown, 2007)。

これらの肯定的または有望な点とともに、いくつかの注意点がある。当然のことながら、美学とソフトウェアコードのトピックの最初の定量的研究として我々の結果を再現することはその信憑性の信頼性を高めることになる。同様に、我々の比較的小さなサンプルではパワーが限られているために、いくつかの無効な結果が観察された可能性があることにも注意してほしい。さらに、専門家と初心者の美的判断基準に強い類似性があるという少なくとも1つの知見は、他の領域で一般的に見られる専門家と初心者の実質的な差異とは対照的である(例えば、Kozbelt & Serafin, 2009)。これは、ソフトウェア開発におけるファンクショナリティの強い制約に起因するか、あるいは、我々のサンプルの初心者は、たとえそれがエキスパートよりも実質的に少ないものであったとしても、プログラミングのトレーニングを受けていたという事実に起因するかもしれない。しかし、より広い意味での専門性の違いを検出するためには、今後の研究では一般的な記述子の推薦だけでなく、実際のコード成果物の作成や修正の過程で、異なる基準がどのように適用されているかを調査するなど、よりニュアンスのある文脈に沿った方法でこの問題にアプローチする必要があるかもしれない。理想的には、定量的で質的なアプローチは、ソフトウェア開発における美学の役割と性質についての収束した感覚を提供する。

このように、初期の定量的な結果を提供することとは別に、ここでは報告していないが、私たちのデータのいくつかの追加的な定性的な側面は、より詳細なフォローアップのためのいくつかの特定のテーマを示唆している。一つは、美的帰納法と機能美の概念に関するもので、有用性が美を称賛するための基準を確立し、後続の作品を評価するための美的規範を継続的に再形成している(McAllister, 1996)。もう一つのテーマは、「美」とは単に対象物や経験を表現するだけのものではなく、具現化された感情をも内包しているということである。美しいものを表現するために使われる言語は、領域を超えて類似している。プログラマーはしばしば、最高の作品をエレガント、柔軟性があり、自然で、流れるようなものと表現しますが、これは偉大な芸術作品の表現にも使われる。芸術を表現するために使われる言葉は、空間を通る私たちの身体的な動きを表現するために使われる言葉と同じようなものである:音楽は私たちを旅に連れて行ってくれる(Johnson, 2007)。同様に、コンピュータで生成された芸術の美学に関する著作(例:Mohr, 1989)は、技術が自分自身の延長線上にあると提案している。したがって、当然のことながら、身体に関連する用語が、実装されたプログラムを構築するソフトウェア・コードを記述するために使用される。身体化の問題をソフトウェアに関連付けることは、実証的に追求するに値するもう一つのテーマである。

結論として、この研究は、美学がソフトウェア開発の領域に非常に関連性があり、さらに、経験的に扱いやすいことを示唆した。これらの初期の結果の多くは、既存の美術美学の文献と関連することができ、美学と創造性の領域を超えた研究に意味のある仮説を提供している。

この記事が気に入ったらサポートをしてみませんか?