Можливе використання віртуальності для створення програм у майбутньому

Я вірю, що програмісти можуть працювати продуктивніше у віртуальній реальності (ВР). Чому? По-перше, програміст зможе працювати, будучи оточеним тривимірним середовищем розробки замість двовимірних моніторів. По-друге, взаємодія з ВР більш природна і вільна, ніж робота з мишею та клавіатурою.

Я опишу переваги ВР, два вже існуючі прототипи пристроїв, які можуть допомогти програмістам, і що очікує на ВР у галузі програмування.

Переваги ВР

Якщо ви не знаєте ВР: це великий крок до того, щоб люди могли взаємодіяти з цифровим світом так, як це звично у фізичному світі. Ця взаємодія набагато повніше використовує можливості людського тіла, що в принципі може призвести до більш продуктивної роботи, менших витрат на навчання та збільшення задоволення користувача.

Стереоскопічна картинка - це техніка, яка використовується у ВР-окулярах типу Oculus Rift, коли для кожного з очей демонструються трохи відмінні картинки.

можливе

Таким чином, людина відчуває глибину віртуального світу, як у реальному. Глибина задіює просторове мислення мозку. А це, своєю чергою, має збільшити продуктивність роботи.

Наприклад, інструмент Data Mountain був створений для зберігання веб-закладок на похилій площині. Автори вважали, що додаючи глибину, вони використовують просторове мислення, що призведе до підвищення швидкодії. Microsoft провела дослідження, яке показало, що «час на збереження та вилучення і кількість помилок було зменшено завдяки просторовому мисленню».

Рухи тіла

Цілий набір пристроїв вміє зчитувати рухи тіла. Це дає більше шансів на самовираження, внаслідок чого з'являються новіможливості.

віртуальності

Нещодавно було проведено експеримент з управління комп'ютером через мозок, де учасників просили уявляти собі пересування у ВР, при цьому скануючи їхній мозок. Дослідники встановили, що 70% могли ходити віртуальною вулицею, просто думаючи про ходьбу.

Внісши в спілкування з комп'ютером рух тіла, користувачі отримують більше свободи в цьому спілкуванні. І, як я опишу далі, ця додаткова свобода призводить до дуже практичних вигод – таких, як продуктивність.

Пластичність віртуального оточення

Одна з причин корисності ВР – їх легко змінити, ніж фізичне оточення. Отже, завдання у ВР можна буде виконати швидше і дешевше.

Наприклад, американські солдати проходять навчання у симуляторі бою. Солдати можуть одночасно проходити тренування в горах, а наступного - потрапляти в пустелю. ВР дозволяє зробити це швидко та дешево.

ВР комбінує найкращі властивості фізичного та віртуального світів, та надає новий засіб для з'єднання їх в один.

Застосування

Ось кілька прикладів існуючих прототипів ВР, що дозволяють програмувати та перевіряти код, що демонструють переваги ВР.

RiftSketch - "живий" кодинг

RiftSketch – середовище для програмування у ВР, що дозволяє описувати тривимірну сцену в Three.js

використання

"Живий кодинг", який описує у своїй статті Стівен Танімото, це середовище розробки, що дозволяє редагувати програму під час її виконання. Традиційний цикл розробки включає 4 фази: редагування, компіляція, лінківка, запуск. У живому кодингу є лише одна фаза. Програма постійно виконується навіть під час редагування.

Проект дозволяє швидко спостерігати зміни, що вносяться до коду. Такожстверджується, що розробнику простіше побачити, де він припустився помилки.

Для полегшення роботи з клавіатурою веб-камера, що закріплена на пристрої, передає картинку з реального світу, яка накладається на віртуальний.

віртуальності
віртуальності

Окрім цього проект пропонує гарячі клавіші та інші системи для введення інформації, що дозволяють швидко змінювати текст програми. За допомогою обробки жестів досягається більша швидкість редагування та зміни параметрів програми. Наприклад, жестами можна швидко змінювати значення цифрового параметра, який може позначати будь-що – від координат і кута повороту, до компонентів RGB або швидкості об'єкта.

Приклад використання

Уявіть, що космічний апарат щойно приземлився на поверхню комети. Після 10 років польоту зонд виявляється у такій позиції, що його не досягає сонячного світла. У вас є 24 години до того, як батареї повністю розрядяться. Вам потрібно змінити програму зонда так, щоб він зміг змінити своє становище. Супутник, що його супроводжує, зібрав всю необхідну інформацію про поверхню, на яку приземлився зонд.

Ви створюєте ВР на основі отриманої інформації та вивчаєте оточення за допомогою такого інструменту, як RiftSketch. Ви перебираєте всі можливості, змінюючи програму та спостерігаючи за тим, як працює симуляція. Ви обходите у ВР навколо вашого зонда після кожної спроби, щоб переконатися, що він твердо став на опори та зайняв придатну для подальшої роботи позицію. Нарешті, після задовільної симуляції ви передаєте вашу програму на перевірку.

Immersion – перевірка коду

Immersion представляє методи як фрагменти коду і показує групи фрагментів у вигляді купок на підлозі. Купку можна розгорнути у тривимірне кільце. Можливістьсемантичного збільшення фрагментів робить код читаним, навіть коли частини коду виходять досить дрібними.

Перевіряючий читає код для зміни положення зонда. Зліва знаходиться кільце з фрагментів коду. Модель комети та шляхи обльоту знаходяться зліва вгорі. Праворуч угорі показані докладні дані про зміни коду.

Перевіряючи спочатку бачить поточний фрагмент коду в центрі екрану, в той час, як інші пов'язані з ним фрагменти лежать у купах на підлозі. Орієнтуючись у ВР, перевіряючий оцінює ступінь відношення купок фрагментів до поточного по тому, як вони розташовані, і за їх розміром.

можливе

Immersion ділить підлогу на секції, ґрунтуючись на пакетах програми, і виділяє їх кольором, що показує, як сильно змінився пакет. Перевіряючі, «гуляючи» ВР, можуть будувати покращені зорові моделі завдяки такому просторовому уявленню коду. Також це має полегшити виклик із пам'яті деталей проекту, оскільки мозок краще працює у просторовому оточенні.

Взаємодія через жести

Перевіряючий може згрести купу фрагментів і підняти її вгору, перетворивши на кільце для більш пильного вивчення. Тепер можна прочитати найближчий фрагмент або прокрутити кільце до іншого. Можна перемістити фрагмент, що вивчається, вгору або вниз. Коли потрібно скасувати дію, можна зробити рух, начебто очищаєш стіл.

Майбутнє ВР та програмування

Віддалена взаємодія

Інші датчики руху та положення тіла, Leap Motion та PrioVR, також можна використовувати для передачі мови тіла.

Парне програмування

Однією з переваг спільної роботи є можливість парного програмування, коли двоє розробників працюють над програмою одночасно на одному комп'ютері, та можуть відловлюватипомилки один одного. ВР дозволить таким розробникам працювати за одним віртуальним робочим місцем. Переглядати одночасно файл, розмовляти і навіть показувати один одному фрагменти коду.

Парна розробка

Дизайнери, які працюють разом, можуть спілкуватися біля дошки для малювання. ВР, що розділяється, може надати віртуальну кімнату, де кожен зможе побачити те, що роблять інші. У ній можна буде перетягувати файли або частини коду чи графічні фрагменти, малювати діаграми та структури програм та баз даних.

За допомогою великих можливостей для симуляції ВР відкриває нові перспективи для перевірки проектів. Можна пройтися за проектом фабрики або заводу, спробувати взаємодію із симуляцією робота або нового автомобіля.

Питання та проблеми ВР

Ступінь зануреності

програм

Пристрої типу Microsoft HoloLens призначені для роботи в реальному світі, на який накладаються деякі віртуальні об'єкти - в доповненій дійсності. ДР розширює фізичний світ, тоді як ВР занурює людину повністю віртуальний. Що корисніше і продуктивніше?

Форми введення
Відділення від фізичного світу

Носіння окулярів ВР означає відключення від фізичної реальності, зокрема. від товаришів по службі. Це обмежує можливості фізичного спілкування та й взагалі взаємодії з реальним світом. Якщо пристосувати на окуляри веб-камеру, це допоможе організувати трансляцію реального світу на віртуальний, але обмежить область видимості.

Трансляція у 3D

Деякі завдання складно представляти у 3D. Наприклад, Immersion намагається представляти двовимірні шматки коду в 3D, але код не має третього вимірювання, тому його репрезентація неповна. У цій галузі можна почати винаходити деяке тривимірне програмування, як,зокрема, пропонується у роботі Енді Ко.

Технічні обмеження
Віртуальна реальність вже тут

Двовимірні оточення розробки не використовують усі можливості людського тіла. ВР – це крок до середовища розробки, яке зможе ефективно пов'язати тривимірну картинку та рухи тіла. З такими перевагами виникають нові можливості створення інструментів, які раніше були недоступні. Ці можливості дають збільшення продуктивності, великий простір для творчості та більше зручностей для користувача.

Швидше за всіх виграють при використанні ВР ті розробники та дизайнери, які створюють щось у 3D. Двовимірна картинка на моніторі сильно обмежує їхню роботу. І інші галузі розробки теж виграють від використання 3D – але для цього нам потрібно, щоб якнайбільше людей створювало інструменти для роботи ВР.

Віртуальність тут. Що ви можете зробити, щоб допомогти?

Хардкорна конфа за С++. Ми запрошуємо лише профі.