Живое кодирование
Живое кодирование , [1] иногда его называют оперативным программированием , [2] Программирование «точно в срок» и диалоговое программирование делают программирование неотъемлемой частью работающей программы. [3]
Он наиболее известен как форма исполнительского искусства и метод творчества, на написании исходного кода использовании интерактивного программирования и импровизированном основанный . Живое кодирование часто используется для создания цифровых медиа на основе звука и изображения , а также систем освещения, импровизированных танцев и поэзии. [4] [5] хотя особенно распространен в компьютерной музыке , обычно как импровизация, хотя ее можно сочетать с алгоритмической композицией . [6] Обычно процесс написания исходного кода становится видимым путем проецирования экрана компьютера в пространство аудитории, а способы визуализации кода являются областью активных исследований. [7] Методы живого кодирования также используются вне производительности, например, при создании звука для фильмов. [8] или аудиовизуальные произведения для интерактивных художественных инсталляций. [9] Кроме того, взаимосвязь между компьютерами позволяет реализовать эту практику в групповой сети.
Образ живого программиста — это те, кто выполняет акт живого кодирования, обычно это «художники, которые хотят научиться программировать, и программисты, которые хотят выразить себя». [10] или, с точки зрения Ванга и Кука, «программист/исполнитель/композитор». [2]
назвал его «лучшей практикой» для лекций по информатике Живое программирование также становится все более популярным методом на лекциях и презентациях на конференциях, связанных с программированием, и Марк Гуздиал . [11]
Техники
[ редактировать ]Для целей живого кодирования был разработан и адаптирован ряд методов.
Представление и манипулирование временем
[ редактировать ]Особые возможности временных медиа и живого взаимодействия с кодом привели к ряду новых разработок и применений в разработке языков программирования. Благодаря взаимному встраиванию императивной и декларативной подсистем язык программирования SuperCollider [12] разрешено создать библиотеку, допускающую неполные и предварительные спецификации, которые можно переписать во время выполнения. [13]
В 2002 году язык ChucK представил подход к «строго синхронизированному» программированию, встраивая точную синхронизацию в поток управления посредством краткого синтаксиса.
«Временная рекурсия» — термин, первоначально придуманный в отношении среды программирования Impromptu . Технические элементы среды программирования по-прежнему определяют местонахождение компрессоров и решений рекурсии, но время было серьезной проблемой. Хотя общая форма временной рекурсии, представляющая собой рекурсию любой асинхронной функции во времени, доступна для любой системы, управляемой событиями, Impromptu уделил особое внимание этому конкретному шаблону проектирования: [14] что делает его центральным элементом архитектуры параллелизма на этой платформе. Временная рекурсия неоднократно использовалась в SuperCollider и с тех пор была реализована в среде Fluxus .
Другой функциональный подход к представлению времени показан в Tidal шаблоне DSL , [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 и реализуемый в Ангаре, ZKM, Людмиле и Creative Code Utrecht. [22]
Исследовать
[ редактировать ]Для изучения живого кодирования был создан ряд исследовательских проектов и исследовательских групп, часто использующих междисциплинарные подходы, соединяющие гуманитарные и естественные науки. Первые попытки как разработать системы живого кодирования, так и внедрить развивающуюся область в более широкий теоретический контекст были предприняты в рамках исследовательского проекта «Художественная интерактивность в гибридных сетях» с 2005 по 2008 год, финансируемого Немецким исследовательским фондом . [23]
Кроме того, Сеть исследований в области живого кодирования финансировалась Советом по исследованиям в области искусства и гуманитарных наук Великобритании в течение двух лет, начиная с февраля 2014 года, и поддерживала ряд мероприятий, включая симпозиумы, семинары и ежегодную международную конференцию под названием «Международная конференция по живому программированию» (ICLC). [24]
Примеры сред живого кодирования
[ редактировать ]См. также
[ редактировать ]- Algorave — событие, в котором музыка и/или визуальные эффекты генерируются на основе алгоритмов, обычно закодированных в реальном времени.
- Демосцена — субкультура вокруг кодирования аудиовизуальных презентаций (демо).
- Исследовательское программирование — практика создания программного обеспечения как способ понять его требования и структуру.
- Интерактивное программирование - практика программирования с использованием живого кодирования при разработке программного обеспечения.
- NIME — академическая и художественная конференция, посвященная достижениям в области музыкальных технологий, иногда с живыми выступлениями по программированию и исследовательскими презентациями.
Ссылки
[ редактировать ]- ^ Коллинз Н., Маклин А., Рорхубер Дж. и Уорд А. (2003), « Живое кодирование в производительности ноутбука », Organized Sound 8 (3): 321–30. два : 10.1017/S135577180300030X
- ^ Перейти обратно: а б Ван Г. и Кук П. (2004) «Программирование на лету: использование кода как выразительного музыкального инструмента» , в материалах Международной конференции 2004 года по новым интерфейсам для музыкального выражения (NIME) (Нью-Йорк: NIME, 2004). ).
- ^ Алан Блэквелл, Алекс Маклин, Джеймс Ноубл, Йохен Отто и Джулиан Рорхубер, «Сотрудничество и обучение посредством живого кодирования (семинар Dagstuhl 13382)», Dagstuhl Reports 3 (2014), вып. 9, 130–168.
- ^ Магнуссон, Т. (2013). Треноскоп. Музыкальное произведение для живого кодирования . In Live 2013. Первый международный семинар по живому программированию.
- ^ «Технические знания: программирование и музыка» . Новости Би-би-си. 28 августа 2009 г. Проверено 25 марта 2010 г.
- ^ Коллинз, Н. (2003) « Генеративная музыка и производительность ноутбука, архивировано 14 мая 2014 г. в Wayback Machine », Contemporary Music Review 22 (4): 67–79.
- ^ Маклин А., Гриффитс Д., Коллинз Н. и Виггинс Г. (2010). Визуализация живого кода . В журнале «Электронная визуализация и искусство», Лондон, 2010 г.
- ^ Рорхубер, Джулиан (2008). Искусственное, естественное, историческое в трансдисциплинарном цифровом искусстве. Звук, изображение и новый экран (PDF) . Шпрингер Берлин Гейдельберг. стр. 60–70.
- ^ «Причастие Universal Everything и Field.io: интервью» . Проверено 5 февраля 2013 г.
- ^ Белл, Сара. «Живое программирование оживляет программирование — интервью с Алексом Маклином» . Проверено 2 марта 2016 г.
- ^ Гуздиал, Марк (август 2011 г.). «Что студенты ошибаются при построении моделей вычислительной физики на Python: диссертация Кабеллеро, часть 2» . Проверено 5 февраля 2013 г.
- ^ Джеймс Маккартни (1996), SuperCollider: новый язык синтеза в реальном времени, ICMC Proceedings, 1996.
- ^ Джулиан Рорхубер, Альберто де Кампо и Ренате Визер (2005), Алгоритмы сегодня - Заметки о языковом дизайне для программирования «точно в срок», Труды Международной компьютерной музыкальной конференции (Барселона), ICMC, 2005, стр. 455–458.
- ^ Соренсен, А. и Гарднер, Х. (2010) « Программирование со временем: импровизированное киберфизическое программирование, в материалах конференции ACM Splash Conference 2010 »
- ^ Маклин, Алекс (2014). «Создание языков программирования, под которые можно танцевать: живое кодирование с помощью Tidal». В материалах 2-го Международного семинара ACM SIGPLAN по функциональному искусству, музыке, моделированию и дизайну (PDF) . Гетеборг.
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Маклин, Алекс (2 августа 2013 г.). «Домашняя страница Tidal» .
- ^ Рорхубер, Дж., А. де Кампо, Р. Визер, Ж.-К. ван Кампен, Э. Хо и Х. Хёльцль (2007). Похищенные письма и распространенные лица. Архивировано 3 марта 2016 г. в Wayback Machine . На конференции «Музыка в глобальной деревне», 2007 г.
- ^ Соренсен, А. (2010). Распределенная память для производительности сетевого живого кодирования . В материалах Международной компьютерной музыкальной конференции 2010.
- ^ Соренсен, А. (2005). Экспромт: интерактивная среда программирования для сочинения и исполнения, Материалы Австралазийской компьютерной музыкальной конференции 2005 г.
- ^ Уорд А., Рорхубер Дж., Олофссон Ф., Маклин А., Гриффитс Д., Коллинз Н. и Александр А. (2004). Программирование живых алгоритмов и временная организация для его продвижения . Горюнова О. и Шульгин А., редакторы, read_me - Программное искусство и культуры.
- ^ «Проект Манифеста» . Toplap.org .
- ^ «Проект на лету» . onthefly.space .
- ^ «Художественная интерактивность в гибридных сетях» (2016) [1] --- Архив Wayback Machine
- ^ «Сеть живого кодирования» . Gtr.ukri.org .
Дальнейшее чтение
[ редактировать ]- Эндрюс, Роберт. « Настоящие диджеи кодируют Live ». Wired (онлайн), 7 марта 2006 г.
- Браун, Эндрю Р. « Заглушение кода ». Журнал M/C 9/6 (декабрь 2006 г.).
- Магнуссон, Тор. « Пастуха кошек: наблюдение за живым программированием в дикой природе ». «Компьютерный музыкальный журнал», весна 2014 г., Том. 38, № 1, стр. 8–16.
- Рамзи, Стивен. « Алгоритмы — это мысли, бензопилы — это инструменты ». Семинар по критическому изучению кода, март 2010 г. Короткометражный фильм о живом кодировании и манифесте TOPLAP.
- Соренсен, Эндрю и Генри Гарднер. « Программирование со временем: киберфизическое программирование с помощью экспромта ». 22 сентября 2010 г.
- Скажем, Просперо, Каролина. « Живое программирование. Вычислительное искусство в процессе ». Содержание. Искусство, культура и социальные науки 2015, Том 5, стр. 5–19.
- ICLC 2015. « Материалы Первой международной конференции по живому кодированию ». Лидс, Великобритания.