Инженерный подход к разработке: Почему проектирование важнее написания кода 0:09
Современная научная работа в области человеко-компьютерного взаимодействия (HCI) часто страдает от избыточного создания одноразовых программных решений. Доминик Морриц, преподаватель Университета Карнеги-Меллон и исследователь в Apple, призывает изменить парадигму: вместо написания кода с нуля стоит инвестировать ресурсы в проектирование стандартизированных API и гибких фреймворков. Главная идея заключается в том, что создание интероперабельных инструментов, способных взаимодействовать друг с другом, позволяет радикально ускорить научный прогресс и расширить границы возможного в разработке ПО.
🧪 Научный метод и дизайн как движущие силы HCI 3:25
Исследовательская работа в HCI объединяет два направления: эмпирическую науку (понимание того, как люди используют компьютеры) и дизайн (создание новых артефактов).
- Проблема «одноразовых» инструментов: Большинство программ, создаваемых для пользовательских исследований, остаются изолированными артефактами в GitHub-репозиториях. Их влияние ограничено из-за сложности повторного использования.
- Фреймворки как научный результат: Переход к созданию фундаментов и фреймворков позволяет объединять компоненты, создавая комбинаторное пространство возможностей. По мнению Моррица, это не просто инженерная задача, а полноценный научный процесс тестирования гипотез о том, как должны быть устроены инструменты.
🧩 Композиционная архитектура и философия интерфейсов 7:03
Ссылаясь на классическую работу Джона Тьюки «Анализ данных и статистика» (1965 г.), автор подчеркивает необходимость организации инструментов так, чтобы их можно было легко собирать в новые конфигурации.
- Принцип Lego: Vega-Lite является примером успешной реализации этого подхода. Благодаря модульности и акценту на «Грамматику графики» (Grammar of Graphics), проект за 10 лет достиг 3 миллионов скачиваний в месяц и стал стандартом де-факто.
- Интероперабельность: Главный вызов — сделать так, чтобы инструменты работали не только в своей экосистеме, но и с другими продуктами (например, React или Svelte).
- Концепция Герберта Саймона: Артефакт — это «интерфейс» между внутренней средой (реализация) и внешней средой (поведение). Исследователям следует уделять больше внимания внешней предсказуемости поведения системы, а не только её внутренним деталям.
🛠 Whirlwind-тур: Инструменты для эффективного дизайна 17:19
В ходе лекции были представлены несколько проектов, реализующих идеи композиционности и открытости:
- AnyWidget: Позволяет превращать любую JavaScript-библиотеку в виджет для Jupyter Notebook без необходимости глубокого погружения в сложный стек сборки (Node.js, Webpack, Yarn). Проект решил проблему жесткой связи между фронтендом и бэкендом, предложив стандарт ES-модулей.
- Mosaic: Фреймворк для связи визуализаций с базами данных (например, DuckDB). Он позволяет работать с миллиардами записей благодаря автоматическим оптимизациям, таким как агрегация данных «на лету» и предвычисление.
- Embedding Atlas: Инструмент для анализа больших наборов данных (эмбеддингов). Включает виртуализированные таблицы и визуализации плотности, позволяя пользователям быстро находить закономерности без написания кастомного кода.
- Texture: Инструмент для анализа текстовых корпусов, который решает проблему высокой размерности текста, переводя его в табличный формат, понятный аналитическим движкам.
♿️ Data Navigator: Будущее доступности данных 44:12
Морриц представил проект Data Navigator, призванный сделать визуализации доступными для пользователей с нарушениями зрения. Вместо того чтобы полагаться на текст описания, инструмент создает графовую структуру (узлы и ребра), описывающую данные.
- Разделение ответственности: Система отделяет структуру данных от способов ввода (клавиатура, жесты, голос) и визуализации.
- Универсальность: Благодаря такой архитектуре можно использовать любые устройства ввода — от простой клавиатуры до жестов, распознаваемых камерой, или даже физических предметов с датчиками.
В завершение дискуссии автор призвал исследователей уделять больше внимания проектированию публичных API в своих научных работах. По его мнению, если интерфейс описан точно, реализация со временем станет вторичной задачей, особенно с учетом прогресса больших языковых моделей (LLM).