Написание кода с помощью речи

Появление устройств с голосовым управлением, таких как Siri, Amazon Echo и Google Home, упростило задачи, для которых раньше требовалась клавиатура. Но мы только начали населять мир, наполненный устройствами, которыми мы управляем по-разному, - мир, в котором мы можем добиться большего, сказав что-то, чем то, что мы можем сделать.

Серенада нацелена на решение интересной проблемы: написание кода с помощью речи. Это программное обеспечение для преобразования голоса в код, которое можно подключить к нескольким популярным IDE, таким как VS Code и IntelliJ. Они заявляют, что позволяют кодировать используя естественную речь, а с поддержкой почти дюжины языков это интригующее предложение. Способность кодировать с помощью голосовых команд - это больше, чем просто фантастика. Программистам с запястным каналом или другими более серьезными физическими недугами программирование может по-прежнему предоставлять им доступ к творческим занятиям, которые им нравятся, и к заработку.

Действительно ли Серенада жизнеспособна? В этой статье мы протестируем программу. Мой коллега Гарен и я попытаемся создать сайт Node.js с простым интерфейсом HTML и CSS, используя только наш голос. Наш сайт будет не чем иным, как кнопкой, при нажатии на которую будут отображаться случайные смайлы. Чтобы по-настоящему погрузиться в мир громкой связи, мы также попытаемся развернуть приложение на Heroku, используя их CLI. Давайте начнем!

Настроить сервер

Как и в большинстве новых проектов, мы хотим создать новый каталог, перейти в него и установить зависимости наших пакетов. Поскольку мы можем использовать Serenade только в среде IDE, которую они поддерживают, мы должны прибегнуть к функции диктовки macOS, которой не хватает и которая не может понять речь программиста. Мы должны явно указать команды Unix, иначе программа их не поймет. Кроме того, похоже, нет никакого способа принудительно использовать строчные буквы, что действительно раздражает эстетику каталога. Возможно, больше всего расстраивает неспособность использовать соглашения об именах файлов:

Чтобы продолжить, мы просто набрали npm i express --save-dev в командной строке, создали новый файл с именем server.js и открыли Visual Studio Code. Руки 1, Голос 0.

Serenade запускается на вашем компьютере и обнаруживает вашу IDE для интеграции с ее функциональностью. После установки и активации приложения вы можете практически приступить к работе, выполнив явные директивы. Если Серенада не поняла, вы можете выбрать визуальный вариант, чтобы устранить двусмысленность. Есть несколько обучающих программ, которые помогут вам начать изучение директив. Вот наша первая попытка:

В том, как работает Serenade, есть что нравится: она знает стандартные команды IDE, такие как «удалить слово». Кроме того, как правило, если вы произносите предложение, оно знает, когда следует добавлять пробелы и точки с запятой. Однако следует иметь в виду, что у Serenade есть три разных способа добавления текста:

  • insert - общий способ описания линии.
  • add, который специально распознает языковые функции, такие как классы и функции.
  • type, который вводит необработанный, простой текст.

Знание того, какой из них использовать, может быть немного запутанным, но, потратив некоторое время на программу (и внимательно прочитав документацию), можно перейти к более быстрому клипу. Однако время от времени фразы все равно понимают неправильно:

Кажется, есть некоторая путаница в том, где размещать скобки и аргументы. Иногда может казаться, что мы боремся против синтаксиса приложения, а не понимаем меня. Руки 2, Голос 0.

Напишите HTML и CSS

Предположим, нам удалось запустить базовый сервер:

Теперь мы напишем файл с именем index.html, чтобы полностью представить наш дизайн. HTML задуман как структурированный язык. Как дела?

Успех! Писать HTML очень просто. Мы волновались, что могут возникнуть некоторые ошибки при размещении тегов - особенно после добавления атрибутов - но выравнивание и вложение хорошо понимаются. Руки 2, Голос 1.

Перейдем к CSS:

Это пример того, когда действительно важно действительно глубокое понимание грамматики основного языка. Мы никогда не знали, что заключенные в квадратные скобки определения CSS были специально названы наборами правил. Тем не менее, на этом этапе мы начали понимать, как работает Serenade, включая ее отличную способность переходить непосредственно к строке. Руки 2, Голос 2.

Напишите клиентский JavaScript

Наши окончательные HTML и CSS будут выглядеть так:

Чтобы избежать немедленного выполнения нашего JavaScript, нам нужно дождаться срабатывания события DOMContentLoaded, прежде чем настраивать какие-либо прослушиватели событий. Здесь важно использовать заглавные буквы, и мы не смогли заставить Serenade распознавать правильное написание:

Тем не менее, либо благодаря нашему большему опыту работы с Serenade, либо благодаря относительно простой природе того, что нужно добавить, было легко добавить код обработки событий. Поскольку программисты не безупречны, мы намеренно пытались делать ошибки, чтобы увидеть, сможет ли Serenade выздороветь. Например, мы пропустили какой-то отступ:

Назовем это ничьей.

Развернуть на Heroku

Для финальной части нашего теста нам нужно развернуть на Heroku. Heroku требует Procfile, что довольно мало для этого проекта:

web: node index.js

К сожалению, опять же, препятствием здесь является переключение на приложение Dictation, которое просто не может понять команды, необходимые для продвижения этого приложения на Heroku:

Итоговый счет: Руки 3, Голос 2.

Заключение

Серенадой довольно весело пользоваться. Навигация по IDE надежна, и явное указание правильных имен для концепций программирования заставляет чувствовать себя мудрым мудрецом. Однако для этого требуется особое понимание различных команд, что не похоже на владение английским языком. Такое ощущение, что мы даем конкретные инструкции компьютеру, а не человеку, с которым мы программируем в паре.

Тем не менее, мы рекомендуем его как систему для улучшения вашего текущего стиля двуручного кодирования, а не как полноценную замену. При наличии практики и терпения это может быть полезным инструментом для разработчиков, которые иначе не умеют писать код. И, что приятно, компания предоставляет бесплатное индивидуальное обучение всем, кто хочет быстро приступить к работе.

Еще одна проблема, которую мы здесь не заметили, заключается в том, что, как и любой хороший программист, мы часто использовали Интернет для поиска конкретных API. Это означает, что мы потратили большую часть времени, уходя от IDE (и Serenade), в которой тестировались способности Dictation справляться с ситуацией.

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