stringtranslate.com

Живое кодирование

«Изучение Кейта» — это музыкальное живое кодирование в формате «Экспромт» Эндрю Соренсена.

Живое кодирование [1] , иногда называемое программированием «на лету» [2] , программированием «точно в срок» и диалоговым программированием , делает программирование неотъемлемой частью работающей программы. [3]

Он наиболее известен как форма исполнительского искусства и творческая техника , сосредоточенная на написании исходного кода и использовании интерактивного программирования импровизированным способом. Живое кодирование часто используется для создания цифровых медиа на основе звука и изображения , а также световых систем, импровизированного танца и поэзии, [4] [5] хотя особенно распространено в компьютерной музыке , как правило, как импровизация, хотя его можно сочетать с алгоритмической композицией . [6] Обычно процесс написания исходного кода становится видимым путем проецирования экрана компьютера в пространство аудитории, а способы визуализации кода являются областью активных исследований. [7] Методы живого кодирования также используются вне исполнения, например, при создании звука для фильмов [8] или аудиовизуальной работы для интерактивных художественных инсталляций. [9] Кроме того, взаимосвязь между компьютерами позволяет реализовать эту практику в сетевой группе.

Фигура живого кодера — это тот, кто выполняет акт живого кодирования, обычно это «художники, которые хотят научиться кодировать, и кодеры, которые хотят выразить себя» [10] или, в терминах Вана и Кука, «программист/исполнитель/композитор». [2]

Живое кодирование также становится все более популярной техникой в ​​лекциях и презентациях на конференциях по программированию, и было описано Марком Гуздиалом как «лучшая практика» для лекций по компьютерным наукам . [11]

Методы

Для целей живого кодирования был разработан и адаптирован ряд методов.

Представление и манипулирование временем

Конкретные возможности временных медиа и живого взаимодействия с кодом привели к ряду новых разработок и применений в разработке языков программирования. Благодаря взаимному внедрению императивных и декларативных подсистем язык программирования SuperCollider [12] позволил построить библиотеку, которая допускает неполные и предварительные спецификации, которые могут быть переписаны во время выполнения. [13]

В 2002 году в языке ChucK был представлен подход к «строго синхронизированному» программированию, встраивающий точный синхронизм в поток управления с помощью краткого синтаксиса.

Термин «временная рекурсия» изначально был введен в отношении среды программирования Impromptu . Технические элементы в среде программирования продолжают находить компрессоры и решения рекурсии, но синхронизация была главной проблемой. В то время как общая форма временной рекурсии, являющаяся любой асинхронной рекурсией функции во времени, доступна для любой системы, управляемой событиями, Impromptu уделила особое внимание этому конкретному шаблону проектирования, [14] сделав его центральной частью архитектуры параллелизма на этой платформе. Временная рекурсия неоднократно использовалась в SuperCollider и с тех пор была реализована в среде Fluxus .

Другой функциональный подход к представлению времени показан в DSL- паттерне Tidal [ 15] , который представляет паттерны как комбинаторы, работающие над функциями времени, аналогично методам в функциональном реактивном программировании [16] .

Многопользовательское программирование и общая память

Многопользовательское программирование развивалось в контексте группового музицирования, через долгое развитие системы Republic, разработанной и используемой членами сетевой группы PowerBooks Unplugged . [17] Republic встроен в язык SuperCollider и позволяет участникам совместно писать живой код, который распределяется по сети компьютеров. Аналогичные усилия предпринимаются и в других языках, например, в распределенном пространстве кортежей, используемом в языке Impromptu. [18] Кроме того, Overtone, Impromptu и Extempore поддерживают многопользовательские сеансы, в которых любое количество программистов может вмешиваться по сети в заданный процесс выполнения. [19] Практика написания кода в группе может осуществляться в одной комнате через локальную сеть или из удаленных мест, имеющих доступ к общему серверу. Такие термины, как группа ноутбуков, оркестр ноутбуков, совместное живое кодирование или коллективное живое кодирование, используются для обозначения сетевой практики живого кодирования как локально, так и удаленно.

Организации

TOPLAP ((Временная|Транснациональная|Наземная|Трансмерная) Организация по (Продвижению|Распространению|Постоянству|Чистоте) Живого (Алгоритмического|Аудио|Искусства|Художественного) Программирования) — неформальная организация, созданная в феврале 2004 года для объединения различных сообществ, сформировавшихся вокруг сред живого кодирования. [20] Манифест TOPLAP устанавливает несколько требований к выступлениям, соответствующим TOPLAP, в частности, что экраны исполнителей должны проецироваться, а не скрываться. [21]

On-the-fly продвигает практику живого кодирования с 2020 года. Это проект, совместно финансируемый программой Creative European и реализуемый в Hangar, ZKM, Ljudmila и Creative Code Utrecht. [22]

Исследовать

Было создано несколько исследовательских проектов и исследовательских групп для изучения живого кодирования, часто с использованием междисциплинарных подходов, объединяющих гуманитарные и естественные науки. Первые попытки как разработать системы живого кодирования, так и встроить новую область в более широкий теоретический контекст были предприняты в исследовательском проекте «Художественная интерактивность в гибридных сетях» с 2005 по 2008 год, финансируемом Немецким исследовательским фондом . [23]

Кроме того, Сеть исследований живого кодирования финансировалась Советом по исследованиям в области искусств и гуманитарных наук Великобритании в течение двух лет с февраля 2014 года, поддерживая ряд мероприятий, включая симпозиумы, семинары и ежегодную международную конференцию под названием Международная конференция по живому кодированию (ICLC). [24]

Примеры сред живого кодирования

Смотрите также

Ссылки

  1. ^ Коллинз, Н., Маклин, А., Рорхубер, Дж. и Уорд, А. (2003), «Живое кодирование в производительности ноутбука», Organised Sound 8(3): 321–30. doi :10.1017/S135577180300030X
  2. ^ ab Wang G. & Cook P. (2004) «Программирование на лету: использование кода как выразительного музыкального инструмента», в трудах Международной конференции 2004 года по новым интерфейсам для музыкального выражения (NIME) (Нью-Йорк: NIME, 2004).
  3. ^ Алан Блэквелл, Алекс Маклин, Джеймс Нобл, Йохен Отто и Джулиан Рорхубер, «Сотрудничество и обучение посредством живого кодирования (семинар Dagstuhl 13382)», Dagstuhl Reports 3 (2014), № 9, 130–168.
  4. ^ Магнуссон, Т. (2013). Треноскоп. Музыкальное произведение для живого кодирования. In Live 2013. Первый международный семинар по живому программированию.
  5. ^ "Tech Know: Программирование, встреча с музыкой". BBC News. 2009-08-28 . Получено 2010-03-25 .
  6. ^ Коллинз, Н. (2003) «Генеративная музыка и исполнение на ноутбуке, архив 2014-05-14 в Wayback Machine », Contemporary Music Review 22(4):67–79.
  7. ^ Маклин, А., Гриффитс, Д., Коллинз, Н. и Уиггинс, Г. (2010). Визуализация живого кода. В Electronic Visualisation and the Arts London 2010.
  8. ^ Рорхубер, Джулиан (2008). Искусственное, естественное, историческое в трансдисциплинарном цифровом искусстве. Звук, зрение и новый экран (PDF) . Springer Berlin Heidelberg. С. 60–70.
  9. ^ "Communion by Universal Everything and Field.io: интервью" . Получено 5 февраля 2013 г. .
  10. ^ Белл, Сара. «Живое кодирование оживляет программирование — интервью с Алексом Маклином» . Получено 2 марта 2016 г.
  11. ^ Гуздиал, Марк (август 2011 г.). «В чем ошибаются студенты при построении моделей вычислительной физики на Python: диссертация Кабеллеро, часть 2» . Получено 5 февраля 2013 г.
  12. ^ Джеймс Маккартни (1996), SuperCollider: новый язык синтеза в реальном времени, Труды ICMC, 1996.
  13. ^ Джулиан Рорхубер, Альберто де Кампо и Ренате Визер (2005), Алгоритмы сегодня. Заметки о разработке языка для программирования Just In Time, Труды Международной конференции по компьютерной музыке (Барселона), ICMC, 2005, стр. 455–458.
  14. ^ Соренсен, А. и Гарднер, Х. (2010) «Программирование со временем: киберфизическое программирование импровизированно, в трудах конференции ACM Splash 2010»
  15. ^ Маклин, Алекс (2014). «Создание языков программирования для танцев: живое кодирование с Tidal». В трудах 2-го Международного семинара ACM SIGPLAN по функциональному искусству, музыке, моделированию и дизайну (PDF) . Гётеборг.{{cite book}}: CS1 maint: отсутствует местоположение издателя ( ссылка )
  16. ^ Маклин, Алекс (2013-08-02). «Tidal homepage».
  17. ^ Rohrhuber, J., A. de Campo, R. Wieser, J.-K. van Kampen, E. Ho и H. Hölzl (2007). Похищенные письма и распределенные лица Архивировано 2016-03-03 в Wayback Machine . В конференции «Музыка в глобальной деревне» 2007 г.
  18. ^ Соренсен, А. (2010). Распределенная память для сетевого живого кодирования. В трудах Международной компьютерной музыкальной конференции 2010 г.
  19. ^ Соренсен, А. (2005). Экспромт: интерактивная программная среда для сочинения и исполнения, в трудах Австралийской конференции по компьютерной музыке 2005 г.
  20. ^ Уорд, А., Рорхубер, Дж., Олофссон, Ф., Маклин, А., Гриффитс, Д., Коллинз, Н. и Александр, А. (2004). Живое алгоритмическое программирование и временная организация для его продвижения. В Горюновой, О. и Шульгине, А., редакторах, read_me - Software Art and Cultures.
  21. ^ "ManifestoDraft". Toplap.org .
  22. ^ "Проект на лету". onthefly.space .
  23. ^ «Художественная интерактивность в гибридных сетях» (2016) [1] --- Архив Wayback Machine
  24. ^ "Сеть живого кодирования". Gtr.ukri.org .

Дальнейшее чтение

Внешние ссылки