Sketch → Live

  • CSP, 2014.06.18
  • Atsushi Tadokoro

Live Codingへ、時代の風が吹いてきた!

swift

Apple Swift

Apple Swift

  • WWDC14で突如発表 (2014.06.02)
  • Apple純正、プログラミング言語
  • Objective-Cの代替を目指す

Swift - シンプルで、高性能

Objective-C
NSString *str = @"Hello ";
str = [str stringByAppendingString:@" world"];
Swift
var str = "Hello "
str += " world"

playgrounds

Playgrounds

Playgrounds

  • Swiftの、もう1つの注目ポイント
  • ライブコーディング機能!

【Demo】

“Playgrounds were heavily influenced by Bret Victor’s ideas, by Light Table and by many other interactive systems.”
– Chris Lattner (Apple)

「Bret Victorのアイデア」「Light Table」とは?

Bret Victor - “Inventing on Principle”

  • CUSEC 2012でのデモ
  • コーディング過程をライブでプレビューしながら開発するツール
  • まさに、ライブコーディング!
  • https://vimeo.com/36579366

LightTable

LightTable

LightTable

【Demo】

コード理解のための、ライブコーディング

The environment should allow the learner to:

  • read the vocabulary – what do these words mean?
  • follow the flow – what happens when?
  • see the state – what is the computer thinking?
  • create by reacting – start somewhere, then sculpt
  • create by abstracting – start concrete, then generalize

(Bret Victor, Leanable Programming)

開発環境は、以下の機能を提供するべき

  • 語彙がわかる – その言葉は何を意味しているのか?
  • 流れを追う – 何がいつ起こっているのか?
  • 状態を見る – 今コンピュータは何を考えている?
  • 相互作用を生成 – ある一点から始めて、形成していく
  • 抽象性を生成 – 具体的に始めて、一般化していく

アートのためのコーディングのパラダイム

Desing by Numbers (1999)

John Maeda

→ Number

Processing (2001)

Casey Reas, Ben Fry

→ Sketch

openFrameworks (2005)

Zachary Lieberman

→ Glue

Swift (2014)

Chris Lattner (Apple)

→ Live

Sketch → Live

  • パフォーマンスの手段としてだけでなく、新たな開発手法のパラダイムとして
  • スケッチ(Processing) から、ライブ(Live Coding)ヘ
  • ライブパフォーマンスするように開発していく

今後の計画

  • Swiftでコードを可視化しながらオーディオビジュアルを開発する環境の構築
  • そこから得られた、新たな開発手法について探求