Primitive представляет собой один из самых интересных вариантов использования, которые я когда-либо видел для VR – он создает трехмерные визуализации исходного кода, которые можно совместно исследовать и анализировать. Создатели полагают, что привнесение пространственного понимания в простой плоский код улучшает процесс разработки сложных проектов, созданных распределенными группами разработчиков.
HTC управляет фондом Vive X, ускорителем венчурного капитала, который, по словам компании, является самым активным инвестором в стартапы VR, со 100 инвестициями на сегодняшний день. Vive X регулярно проводит мероприятия для компаний-инвесторов, чтобы представить и пообщаться с более широким инвестиционным сообществом.
Primitive была одной из немногих компаний, которую представили инвесторам на мероприятии Vive X на этой неделе в Сан-Франциско.
Во время своего выступления перед группой инвесторов и прессы основатель Primitive Джон Вурхис обрисовал свою идею о том, что программное обеспечение является основой 21-го века. Компании во всех отраслях полагаются на программное обеспечение для выполнения работы, и большая часть этого ПО теперь создается распределенными командами, которые могут не работать в том же здании или даже стране. Большая часть кодовой базы, которая лежит в основе всего, от банков до розничной торговли и инфраструктуры, и всего, что между ними, очень большая, часто довольно старая и только усложняющаяся.
С этой целью, утверждал Вурхис, компании, которые лучше понимают код, на который они полагаются, будут иметь преимущество перед конкурентами. И учитывая распределенный характер крупномасштабной разработки программного обеспечения в наши дни, большая часть проблемы заключается в том, чтобы выяснить, как держать всех на одной странице, сказал он.
Используя VR как основу для интуитивной, иммерсивной визуализации, Primitive разработала плагины для популярных программ написания кода, таких как инструменты Visual Studio и JetBrains, которые принимают исходный код, и одним нажатием кнопки отображает его в 3D-визуализацию, которая отображена структурировано. Как объясняет Вурхис, визуализация раскрывает сложную природу того, как «объектно-ориентированный» код взаимодействует с самим собой, чтобы модифицировать различные фрагменты. Пользователи могут выбрать любую часть кода и перейти к более мелким деталям, включая сам исходный код.
Несколько пользователей могут подключаться к визуализации с помощью различных виртуальных гарнитур, а также ходить и взаимодействовать с базой кода с другими людьми, стоящими в одном виртуальном пространстве. Использование пространственного аудио и аватаров позволяет пользователям совместно обсуждать код.

Хотя я не являюсь разработчиком по профессии и имею лишь небольшой опыт программирования, визуализация кода, представленного таким образом, была на удивление интуитивно понятной по сравнению с просмотром необработанного исходного кода и иерархий. Он был не только интуитивно понятным, но и «пространственным» фактором, который помог закрепить базовую структуру кода в моей пространственной памяти (что для меня очень важно как для высоко аудио/визуальный типажа восприятия).
Primitive не только визуализирует структуру кода, он также может показать, как он ведет себя при запуске. Можно воспроизвести трассировку кода в Primitive, который показывает строку (представляющую поток обработки), перемещающуюся между явно разрозненными частями кода, чтобы показать, как поток выполняет различные инструкции и «куда он идет» во время работы.

Многопоточные приложения отображают несколько линий с цветовой кодировкой для визуализации параллельных процессов (то, что сложно увидеть с помощью традиционных методов). По мере того как строки пересекают код, становится ясно, какие потоки используются недостаточно, из-за того, как они ожидают завершения работы других потоков, прежде чем они смогут двигаться дальше.

Чтобы лучше понять, насколько полезным может быть Primitive, я поговорил с подходящим программистом, который также продемонстрировал программу во время события подачи. Разработчик сказал мне, что этот вид визуализации может быть особенно полезен для привлечения новых разработчиков, которым необходимо получить начальное представление о сложной кодовой базе, с которой они незнакомы. Он также сказали, что Primitive может быть чрезвычайно полезен для понимания и оптимизации многопоточных программ, поскольку сложно интуитивно писать код для параллельного выполнения. По его словам, возможность легко визуализировать активность и даже «расположение в коде» различных потоков может показать, насколько хорошо оптимизирован код, особенно в случае массивных параллельных процессов, предназначенных для работы с сотнями или тысячами ядер GPU. Примитив в настоящее время не визуализирует работу графического процессора, но команда говорит, что пытаются добавить это.