Cross-Platform Language + GUI Toolkit для создания прототипов мультимедийных приложений - PullRequest
1 голос
/ 30 апреля 2010

Я ищу инструментарий языка + GUI для быстрого создания прототипов утилит для мультимедийных установок.Я работаю с Max / MSP / Jitter уже много лет, но я бы хотел добавить текстовый язык в свой «арсенал» для задач, помимо «производства контента».

(когда дело доходит до фактического синтеза мультимедиа, мой выбор очевиден [SuperCollider + MSP для аудио, Jitter + Quartz + openFrameworks для видео]).

Я ищу что-то, что поддерживает некоторые из преимуществ Max, но является более низким уровнем, более быстрым, более кросс-платформенным (поддержка Linux) и основанным на тексте.Интеграция с мощными аудио / видео библиотеками не обязательна.

Некоторые требования:

  1. Более всего, быстрое время разработки
  2. Кроссплатформенность (по крайней мере, OSX и Linux, Windows - плюс)
  3. Быстрые и простые кроссплатформенные графические интерфейсы без модификации для конкретной платформы
  4. Код графического интерфейса, максимально отделенный от внутреннего кода
  5. Хорошо подходит для взаимодействия с внешними последовательными устройствами (микроконтроллерами)
  6. Хорошая поддержка сети (UDP / TCP)
  7. Хорошие библиотеки для мультимедиа (видео, звук, OSC) - это плюс
  8. Асинхронный> синхронный
  9. Интеграция с UNIX является плюсом

Опции, которые приходят на ум:

  1. AS3 / Flex (не фанат AS3 или идея запуска во Flash Player)
  2. openFrameworks (платформа C ++, возможно, слишком низкоуровневая [ищет быстрое время разработки] и смещенная к работе с видео)
  3. Java с библиотеками обработки (например, openFrameworks, чуть медленнее)
  4. Python + Qt (подходит ли Qt длябыстрое создание прототипа?)
  5. Python + еще один инструментарий GUI
  6. SuperCollider + Swing (хреновая разработка GUI)
  7. Java с SWT

Любые другиеопции?Что вы рекомендуете?

Ответы [ 4 ]

2 голосов
/ 17 октября 2010

Qt подходит для быстрого прототипирования (Qt Designer и Qt Quick помогают с этим), но он все еще C ++, поэтому он медленнее. PyQt, с другой стороны, довольно изящен - у вас есть быстрый цикл write-test-modify на интерпретируемом языке со всеми радостями (и достоинствами) межплатформенной поддержки Qt. Работал на меня.

2 голосов
/ 17 октября 2010

А как насчет языка на основе JVM (в основном для переносимости и ВМ для взаимодействия со всеми библиотеками Java, в том числе теми, которые вам понадобятся для обработки мультимедиа), такими как JRuby или Scala ( на время разработки. Вероятно, больше JRuby, если вы хотите быстро подобрать), а также с SWT или Swing, как вы упомянули? Кроме того, вы всегда можете подключить что-то из других языков, так что если вы все еще хотите, чтобы некоторые вещи работали в Python, тогда вам поможет Jython.

Я бы не сказал, что Swing "отвратительный". У него есть недостатки и чрезмерно сложный API, но по дизайну я часто нахожу его более привлекательным, чем SWT, хотя он также имеет свои полезные функции. С Swing можно создавать очень хорошие интерфейсы, и это не вяло, как говорит старомодный аргумент. При этом, это не обязательно хорошо для быстрого прототипирования, но это только недостаток в Java. Например, в Groovy есть хороший конструктор, облегчающий разработку Swing.

Существует также привязка QT для Java, если хотите.


Если вещи на основе Java вас отталкивают, то я думаю, что вы, вероятно, должны пойти с Python + QT.


Похоже, что Flex набирает обороты и, конечно, создает хорошие интерфейсы, но есть несколько вещей, которые меня беспокоят. С одной стороны, тот факт, что люди всегда имеют тенденцию создавать нестандартные интерфейсы с ним. Это выглядит великолепно, но также более запутанно для пользователей, если каждый разработчик приложения пытается изобрести свою собственную парадигму юзабилити. Кроме того, с точки зрения будущего платформы есть много неизвестного, в то время как у вас не будет этой проблемы с Java / Python.

2 голосов
/ 17 октября 2010

Попробуйте Mono:

http://www.mono -project.com / Main_Page

0 голосов
/ 19 октября 2010

Чтобы ответить на мой собственный вопрос, обычно важнее использовать то, что используют другие люди в вашей области / области / на рабочем месте, чем найти «правильный инструмент». (Например, в моем сообществе Max / MSP / Jitter & PureData, C, MATLAB и [только из-за его глобальной популярности] Python являются стандартами.) Отклонение от местных языков говорит о том, что ваш код работает только до тех пор, пока вы будете его поддерживать (по крайней мере, если код предназначен для определенного места или события, как это часто бывает в СМИ), что вы один как разработчик, и что вам постоянно придется создавать интерфейсы для чужого кода, чтобы заставить вещи работать.

Я решил придерживаться почтенного комбо Max, C, Matlab, пока я учусь.

С другой стороны, я экспериментирую с Pure , который отличается сильной интеграцией со многими библиотеками и приложениями благодаря динамической типизации, сильной поддержке матриц и раннему принятию OSC (например, octave, SuperCollider , PureData, Faust и OpenCV). Я с нетерпением жду следующего поколения языков данных.

...