プログラミング・エクスペリエンスの新潮流 -言語設計から産業応用まで-:3.ヒューマンコンピュータインタラクションとしてのプログラミング HCIにおけるプログラミング研究の過去,現在,そして未来
4
0
0
全文
(2) ヒューマンコンピュータインタラクションとしてのプログラミング. 図 -1 HCI におけるプログラミング研究の例:左から,プログラム内に画像を埋め込める Picode,ストーリーボード形式でアプリをデザ インができる DemoScript,クラウドソーシングを活用してコードの推薦を行う CodeX,間違っているコードが本来どう動くべきか可視 化する TraceDiff(画像は著者の許可を得て掲載).. 「視覚的 = 分かりやすい」という仮説に則ったシス. 壁(coordination barrier). 4. エラーが起こった際に,予期しない挙動を正し. テムが多く提案されてしまった,という点が指摘さ れている. 2),3). く理解しなければならない,理解の壁(under-. .こうした批判から,一度原点に立. standing barrier). ち返り,プログラマはどのような問題に直面してい. 5. デバッグの際に内部の挙動が見えないために起. るのか,その問題を解くためにはどのようなプログ. こる,情報の壁(information barrier). ラミング言語やツールを提供するべきなのか,とい う観点から再度プログラミングを考え直す「人間中. 6. アルゴリズムやシステムのアーキテクチャをデ. 」のアプローチが 1990 年 心(Human-Centered). ザインする際の,設計の壁(design barrier). 代から 2000 年代にかけて HCI の新たな潮流になっ. Ko らは,これらの課題が,今後のプログラミン. た.その中心となったのが,カーネギーメロン大学. グの研究によって解決されるべき問題であると議. の Brad Myers とその教え子であるワシントン大学. 論した.実際,これらの知見は,その後の研究者. の Andrew Ko である.. が新たなシステムや支援ツールを設計する際の指. 彼らは,人間中心のアプローチをもとに,HCI の. 針となっている(図 -1) .たとえば,厳密なシン. 手法や考え方を応用したプログラミング研究を進め. タックスや型が分からなくてもプログラムできる. た.すなわち, 「プログラミング言語や開発環境は,. ようにした Alice や Scratch [TOCE'10] といったブ. 開発者である人間を中心にデザインされるべきであ. ロック型プログラミング言語(使い方の壁)や,デ. る」という思想のもとプログラミング支援ツールの. バッグの際になぜエラーが出ているのかを GUI か. 新たな方向性を模索したのである. 「人間を中心に. ら辿れるようにした Whyline [CHI'04, ICSE'08]. デザインする」ということは,新しいシステムを提. ☆1. (選抜の壁),プログラミングが実行される際に内部 ☆2. 案する前に,開発者がどのような課題に直面してい. の状態を可視化した Python Tutor [SIGCSE'13]. るかを深く理解することが必要不可欠である.彼ら. Timelapse[UIST'13](情報の壁),エラーが起こっ. が行った重要な貢献の 1 つは,プログラミング初. た際に正しい場合と間違っている場合の違いを可視. 学者が直面する課題を調査し,6 種類に分類して議. ☆3 化する TraceDiff [VL/HCC'17] (理解の壁),プロ. 4 論したことである .. グラム内に画像や姿勢などを直接埋め込めるように. ). 1. ある機能を実装しているコードを特定する際の, 選抜の壁(selection barrier). 2. シンタックスやライブラリの使い方などを学ぶ 際の,使い方の壁(use barrier). 3. 複数のプログラムやライブラリがどのように組 み合わさっているかを理解する際の,組合せの. した Sikuli [UIST'09]. ☆4. や. 5 や Picode [CHI'13] (組合せ ☆. の壁),そしてストーリーボード形式で複数デバイ ☆1. https://www.cs.cmu.edu/~NatProg/whyline.html http://www.pythontutor.com/. ☆ 2 ☆3. https://github.com/ryosuzuki/trace-diff http://www.sikuli.org/ ☆5 https://junkato.jp/picode/ ☆4. 情報処理 Vol.58 No.11 Nov. 2017. 1015.
(3) 小特集 プログラミング・エクスペリエンスの新潮流─言語設計から産業応用まで─ スのアプリケーションのデザインができるようにし. しつつ,今後の展望として特に以下の 3 つの方向. ] など,多くのツー た DemoScript [CHI'16(設計の壁). 性について議論したい.. ルがこうした人間中心のアプローチを元にデザイン され実装されてきている.. ❖❖直接操作でのプログラミング. Brad Myers の Natural Programming 研究グルー. 1 つ目は,コーディングではなく,オブジェクト. プから始まった人間中心のアプローチは,こうして. などを直接操作(direct manipulation)すること. 2000 年から 2010 年代における,HCI の重要な研. でプログラムするプログラミングパラダイムである.. 究成果として認識されている(ちなみに,彼は HCI. こうした方向性は特に,データ可視化や,インフォ. 全体の中でも,最も論文が引用されている研究者. グラフィクス,Web およびモバイルアプリ開発,. の 1 人であり,また彼の教え子には,Andrew Ko. イラストレーション,3D モデリングといった GUI. を始め Jacob O. Wobbrock,James Landay,Rob. のアプリケーションにおいていくつかの研究が発. Miller など,その後 HCI を代表する研究者になった. 表されている.たとえば,Bret Victor の Drawing. 者も多く. ☆6. ,教え子を通じてこの分野を大きく発展. させてきた点も特筆すべきである).. Dynamic Visualizations ☆ 7 や Lyra [EuroVis'14] ☆ 8, Apparatus ☆ 9,Active Drawing [CHI'17] ☆ 10 といっ たプロジェクトは,コーディングではなく,マウス. 生産性の向上を超えて. を使い直接 GUI を操作し,データの可視化やイン タラクティブなダイアグラムをプログラムする方法. 上で述べたような研究の 1 つの大きな目標は,開. を示している.また,別の例として,コーディング. 発者の生産性を向上させることであった.そして,. をせずにスプレッドシートからドラッグドロップで. 2000 年代から 2010 年代前半におけるこうした研. Web サイトを生成する Gneiss [UIST'14,CHI'15] ☆ 11. 究の発展によって,プログラミングを取り巻く環境. といった研究が発表されている.ここで重要なの. は大きく変わってきた.事実,これらの研究成果は. は,テンプレートなどからグラフや Web ページを. アカデミックのみにとどまらず,実際のプロダク. 生成するのとは違い,プログラミングで作るような. トにも反映されてきている.たとえば,Microsoft. 柔軟性を失わずに作ることが可能な点である.今後. Visual Studio や Swift Playground,Scratch,Ar-. は,こうしたプログラミングパラダイムが,AR/VR. duino,Google Chrome Inspector,Jupyter などの. のアプリの開発や,IoT やロボットの開発といった. プロダクトを始め,LightTable や Kite といったス. 実世界上でのプログラミングに波及していくと考え. タートアップ企業にも,直接的あるいは間接的に影. られる.たとえば,現在の AR や VR のアプリ開発. 響を与えている.. において,コンピュータ上でプログラムし,それを 実世界上でテストし,それを再度コンピュータ上で. 今後の展望 : 3 つの新たな プログラミングパラダイム. 離(gulf of execution and evaluation)がある.こ うした非直感的なワークフローが,実世界上でオブ. こうした背景を受け,HCI における研究の焦点も,. ジェクトを直接操作するようなプログラミングパラ. 開発者の生産性を上げることだけでなく,新たなプ. ダイムによって解決されることが期待される.. ログラミングパラダイムを提案するような研究も少 しずつ出てきている.ここでは,最近の HCI にお ける,新たな萌芽的なプログラミングの研究を紹介 ☆6. 1016. デバッグする,というように入力と出力に著しい乖. http://fredhohman.com/brad-myers-advisee-tree/. 情報処理 Vol.58 No.11 Nov. 2017. ☆7. https://vimeo.com/66085662. ☆ 8. http://idl.cs.washington.edu/projects/lyra/ http://aprt.us/ ☆ 10 https://www.media.mit.edu/projects/active-drawing/ ☆ 11 http://www.cs.cmu.edu/~shihpinc/gneiss.html ☆9.
(4) ヒューマンコンピュータインタラクションとしてのプログラミング ❖❖クラウドソーシングによるプログラミング. AutoGrader [PLDI'13] ☆ 15 や OverCode [TOCHI'15]. 2 つ目の方向性は,クラウドソーシングを活用し. などが挙げられる.一方で,こうした既存のアプロー. たプログラミングのパラダイムである.クラウド. チは,例外的な状況に弱かったり,あらかじめルー. ソーシングを活用したプログラミング支援ツールに. ルを決めなければいけないといった点で課題がある.. は,クラウドの知見を使ったデバッグのサポート. これらの課題を解決する上で,今後注目を集めるで. する HelpMeOut [CHI'10] や,コードの推薦を行う. あろうアプローチが機械学習,特にディープラー. CodeX [CHI'14] などがある.しかし,近年では,ク. ニングを使ったアプローチである.たとえば,pix-. ラウドソーシングをプログラミングの支援に使うだ. 2code ☆ 16 はニューラルネットワークを使い,GUI. けでなく,プログラミング自体を行えないか,とい. のモックアップから,コードを生成することができ. うチャレンジングな課題に取り組む研究が出てきて. るツールである.今後はさらに,ユーザが抽象的な. いる.たとえば, Micro-task Programming [UIST'14,. 言葉や概念図で説明するだけで,複雑なプログラム. ICSE'15]. ☆ 12. や FlashTeams/Organizations [UIST'14,. やアプリケーションを生成することが可能になると. などは,クラウドソーシングをうまくデ. 考えられる.その場合,エンドユーザプログラミン. ザインすることで,E コマースのサイトや,病院の. グという行為そのものが再定義されるような,現在. 予約管理アプリといった高度で複雑なデザイン/プ. とはまったく違うプログラミングパラダイムになる. ログラミングが要求されるタスクを,早く,かつ高. 可能性がある.こうした新たなプログラミングパラ. い質でプロダクトを完成できることを示した.この. ダイムを発展させるような研究が今後期待される.. ようなクラウドソーシングを使ったプログラミング. 以上,HCI におけるプログラミング研究を,俯瞰. の研究はまだチャレンジングな課題が多く残されて. 的に紹介した.本稿が,HCI におけるプログラミン. いるが,それだけに今後の研究が期待されている.. グ研究を知るきっかけとなり,今後の日本における. CHI'17]. ☆ 13. プログラミング体験の研究の発展の一助になれば幸. ❖❖データドリブンによるプログラミング. いである.. 3 つ目の方向性は,データドリブンなプログラミ ングツールである.データドリブンなプログラミン グパラダイムは,古くから,ユーザが例を与え,そ こから推論してプログラムを生成するといった,例 示プログラミング(Programming by Example)が 提案されているが,近年では,こうした方向性を発 展させた,より高度なコードの推薦・生成が可能に. 参考文献. 1) Scaffidi, C. et al. : Estimating the Numbers of End Users and End User Programmers, VL/HCC (2005). 2)Green, T. et al. : Comprehensibility of Visual and Textual programs, ESP (1991). 3) Nardi, B. A. : A Small Matter of Programming : Perspectives on End User Computing, MIT press (1993). 4) Ko, A. J. et al. : Six Learning Barriersin End-user Programming Systems, VL/HCC (2004). (2017 年 7 月 30 日受付). なっている.たとえば,既存の Web デザインを組 み合わせて生成する Bricolage[CHI'11]. ☆ 14. ,Micro-. soft Excel に実際に導入された Flash Fill [POPL'11], プログラミングの課題を自動で添削し間違いを正す ☆ 12 ☆ 13 ☆ 14. https://cs.gmu.edu/~tlatoza/ http://stanfordhci.github.io/flash-teams/ http://hci.stanford.edu/research/bricolage/. ☆ 15 ☆ 16. http://sketch2.csail.mit.edu/python-autofeedback/ https://github.com/tonybeltramelli/pix2code. 鈴木 遼 [email protected] University of Colorado Boulder http://ryosuzuki.org/. 情報処理 Vol.58 No.11 Nov. 2017. 1017.
(5)
関連したドキュメント
さて,日本語として定着しつつある「ポスト真実」の原語は,英語の 'post- truth' である。この語が英語で市民権を得ることになったのは,2016年
かであろう。まさに UMIZ の活動がそれを担ってい るのである(幼児保育教育の “UMIZ for KIDS” による 3
「文字詞」の定義というわけにはゆかないとこ ろがあるわけである。いま,仮りに上記の如く
この映画は沼田家に家庭教師がやって来るところから始まり、その家庭教師が去って行くところで閉じる物語であるが、その立ち去り際がなかなか派手で刺激的である。なごやかな雰囲気で始まった茂之の合格パ
(2) (2) 内在的性質< 内在的性質< KCN KCN である>は、他の である>は、他の
喫煙者のなかには,喫煙の有害性を熟知してい
2.1で指摘した通り、過去形の導入に当たって は「過去の出来事」における「過去」の概念は
中国では漢方の流布とは別に,古くから各地域でそれぞれ固有の生薬を開発し利用してきた.なかでも現在の四川