Живое кодирование - Live coding

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

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

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

Фигура живой кодер это те, кто выполняет акт программирования в реальном времени, обычно «художники, которые хотят научиться программировать, и кодеры, которые хотят выразить себя»[10] или в терминах Wang & Cook «программист / исполнитель / композитор».[11]

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

Методы

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

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

Конкретные возможности временных носителей и живого взаимодействия с кодом привели к ряду новых разработок и применений в дизайне языков программирования. За счет взаимного встраивания императивной и декларативной подсистем язык программирования Суперколлайдер[13] разрешено создавать библиотеку, которая допускает неполные и предварительные спецификации, которые могут быть переписаны во время выполнения.[14]

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

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

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

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

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

Организации

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

Исследование

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

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

Известные среды живого кодирования

Известные живые кодеры

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

  • Альгорав - событие, в котором музыка и / или визуальные эффекты генерируются с помощью алгоритмов, как правило, с кодированием в реальном времени
  • Демосцена —Субкультура по кодированию аудиовизуальных презентаций (демонстраций)
  • Интерактивное программирование —Практика программирования с использованием живого кодирования при разработке программного обеспечения
  • NIME - академическая и художественная конференция, посвященная достижениям в музыкальных технологиях, иногда с живыми выступлениями по программированию и исследовательскими презентациями.

Примечания

  1. ^ Коллинз, Н., Маклин, А., Рохубер, Дж. И Уорд, А. (2003) "Живое кодирование в производительности ноутбука ", Организованный звук 8(3): 321–30. Дои:10.1017 / S135577180300030X
  2. ^ Ван Г. и Кук П. (2004) «Программирование на лету: использование кода как выразительного музыкального инструмента», В Труды Международной конференции 2004 г. по новым интерфейсам для музыкального выражения (NIME) (Нью-Йорк: NIME, 2004).
  3. ^ Алан Блэквелл, Алекс Маклин, Джеймс Ноубл, Йохен Отто и Джулиан Рохубер, «Сотрудничество и обучение посредством живого кодирования (семинар Дагштуля 13382)», Dagstuhl Reports 3 (2014), нет. 9, 130–168.
  4. ^ Магнуссон, Т. (2013). Треноскоп. Музыкальное произведение для живого кодирования. In Live 2013. Первый международный семинар по живому программированию.
  5. ^ "Tech Know: программирование, знакомство с музыкой". Новости BBC. 2009-08-28. Получено 2010-03-25.
  6. ^ Коллинз, Н. (2003) "Генеративная музыка и производительность ноутбука В архиве 2014-05-14 в Wayback Machine ", Обзор современной музыки 22(4):67–79.
  7. ^ Маклин, А., Гриффитс, Д., Коллинз, Н., и Виггинс, Г. (2010). Визуализация живого кода. В электронной визуализации и искусствах Лондон 2010.
  8. ^ Рохубер, Джулиан (2008). Искусственное, естественное, историческое в трансдисциплинарном цифровом искусстве. Звук, видение и новый экран (PDF). Springer Berlin Heidelberg. С. 60–70.
  9. ^ «Общение Universal Everything и Field.io: интервью». Получено 5 февраля 2013.
  10. ^ Белл, Сара. «Живое программирование оживляет программирование - интервью с Алексом Маклином». Получено 2 марта 2016.
  11. ^ Ван Г. и Кук П. (2004) «Программирование на лету: использование кода как выразительного музыкального инструмента», В Труды Международной конференции 2004 г. по новым интерфейсам для музыкального выражения (NIME) (Нью-Йорк: NIME, 2004).
  12. ^ Гуздиал, Марк (август 2011 г.). «Что студенты ошибаются при построении моделей вычислительной физики в Python: тезис Кабельеро, часть 2». Получено 5 февраля 2013.
  13. ^ Джеймс Маккартни (1996), SuperCollider: новый язык синтеза в реальном времени, ICMC Proceedings, 1996.
  14. ^ Джулиан Рохубер, Альберто де Кампо и Ренате Визер (2005), Алгоритмы сегодня - Заметки о языковом дизайне для своевременного программирования, Труды Международной конференции компьютерной музыки (Барселона), ICMC, 2005, стр. 455–458.
  15. ^ Соренсен, A и Гарднер, H (2010) "Программирование со временем: киберфизическое программирование в экспромте, в трудах конференции ACM Splash 2010 "
  16. ^ Маклин, Алекс (2014). "Создание языков программирования, под которые можно танцевать: живое программирование с Tidal ". В материалах 2-го Международного семинара ACM SIGPLAN по функциональному искусству, музыке, моделированию и дизайну. Гётеборг. Внешняя ссылка в | chapter = (помощь)
  17. ^ Маклин, Алекс (2013-08-02). "Домашняя страница Tidal".
  18. ^ Rohrhuber, J., A. de Campo, R. Wieser, J.-K. ван Кампен, Э. Хо и Х. Хёльцль (2007). Похищенные письма и распространенные лица В архиве 2016-03-03 в Wayback Machine. В музыке в конференции Global Village 2007.
  19. ^ Соренсен, А. (2010). Распределенная память для сетевого живого кодирования. В материалах Международной компьютерной музыкальной конференции 2010.
  20. ^ Соренсен, А. (2005). Экспромт: интерактивная среда программирования для композиции и исполнения, В трудах Австралазийской конференции компьютерной музыки 2005 г.
  21. ^ Уорд, А., Рохубер, Дж., Олофссон, Ф., Маклин, А., Гриффитс, Д., Коллинз, Н., и Александр, А. (2004). Живое программирование алгоритма и временная организация для его продвижения. В: Горюнова О. и Шульгин А., редакторы, read_me - Software Art and Cultures.
  22. ^ «ManifestoDraft - Toplap».
  23. ^ https://web.archive.org/web/20160303215643/http://www.uni-koeln.de/phil-fak/muwi/c10/index.html
  24. ^ «Сеть живого кодирования».

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

внешняя ссылка