Автор: Дарья Колмина
"Питерские заметки", 15.09.2023:
Перелом руки дал понимание профессору вычислительной техники и информатики Ами Ко, насколько ее область деятельности ориентирована в основном на лиц без инвалидности, и вдохновил создать более доступные языки программирования.
"У меня было много интересных планов на конец моего годового академического отпуска. Перелом руки не входил в их число. Внезапно все мои занятия как профессора, включая написание и программирование, пришлось выполнять одной рукой или при помощи голоса. Это было неудобно. В то же время это сильно напомнило мне, почему я делаю то, что делаю - изучаю наши личные и коллективные усилия по пониманию компьютеров и их использованию в играх, власти, равенстве и справедливости - и усилило мое желание разработать действительно доступный язык программирования", рассказала Ами Ко.
Программирование на компьютере никогда не было легким. Загадочная документация, непонятный синтаксис и запутанные сообщения об ошибках. Но невозможность использовать доминирующую руку подчеркнуло тот факт, что программирование в основном ориентировано на лиц без инвалидности. Даже программное обеспечение для распознавания речи, настроенное на кодирование, было подвержено ошибкам и работало медленно. Профессора отметила, что неспособность печатать горячими клавишами требовала перенастройки множества параметров и запоминания десятков новых комбинаций клавиш.
Люди с инвалидностью хорошо знакомы с этими проблемами - на каждом шагу программирование отталкивает людей с ограниченными возможностями и, следовательно, отталкивает их от участия в науке. Некоторые из самых популярных платформ для изучения программирования требуют мыши и, следовательно, исключают людей с нарушениями двигательных функций. Большинство программ редактирования кода, включая те, которые используются в науке, предполагают, что пользователи обладают зрением, исключая тех, кто слеп или имеет нарушения зрения. И Интернет, который является неотъемлемым инструментом для поиска документации и помощи при программировании, широко несовместим со скринридерами, которые часто используются людьми, которые слепы, имеют нарушения зрения или дислексию.
Проблемы распространяются и на уровень умений в языках. Языки программирования и инструменты созданы на основе предположений о навыках общения на естественных языках - в частности, что пользователи могут читать и писать на английском. Ключевые слова в языках программирования, документация и онлайн-помощь почти всегда сначала написаны на английском языке и редко переводятся более чем на несколько других распространенных языков. В результате кто-либо, чей родной язык не английский - то есть большинство населения планеты - находится в сильном недоразумении, даже когда изучает основы. И если они не говорят на английском и полагаются на ввод речи или скринридеры, им гораздо сложнее, потому что эти инструменты редко поддерживают языки, отличные от английского.
Даже до моей травмы, я много думала об этих проблемах. Я использовала свой годовой академический отпуск для разработки нового языка программирования под названием Wordplay, который стремится избегать предположений о способности или владении естественными языками. Другие ранее также пытались решать эту проблему, хотя и в более узком контексте. Японский язык программирования Dolittle (на японском - doritoru), например, позволяет пользователям писать код на этом языке непосредственно, и язык Quorum специально ориентирован на людей с нарушениями зрения. Язык Hedy, используемый для обучения программированию детей, был переведен на 39 языков. Но, по моим данным, ни один из них не попытался решить проблему способностей и владения языками универсально, стремясь к справедливому дизайну, который служит всем, независимо от их языка или способностей.
Создание нового языка, соответствующего этим целям, не было простой задачей. Это означало переосмысление каждой части опыта программирования: удаление всех ключевых слов на естественных языках (например, "if" и "while"); разрешение использования идентификаторов программирования (таких как имена переменных и функций) с несколькими языковыми тегами; возможность сосуществования символов как справа налево, так и слева направо в коде для поддержки двуязычных пользователей. Это потребовало программного редактора, который автоматически переводит код между языками, сохраняя при этом его функциональность, для поддержки многоязычных команд и классов. Это также означало отображение кода таким образом, чтобы его можно было навигировать, читать на скринридерах и редактировать с помощью мыши, клавиатуры, речи и других доступных технологий. Кроме того, это потребовало изобретения новых форм интерактивного текстового вывода программ, которые могли бы автоматически переводиться на другие языки и описываться скринридером, подобно живой трансляции текста.
Однако изменения затронули не только более широкую поддержку разных методов ввода, вывода и языков. Некоторые из самых фундаментальных концепций в проектировании языков программирования глубоко проникли в наше сознание. Например, идеи и слова "true" и "false" исходят из строгой логики XIX века математика Джорджа Буля и дискретной математики. Идеи, такие как "false", не всегда четко переводятся на другие языки и культуры. Даже выбор символов для представления этих концепций может привести к приоритизации одной культуры перед другой. Выбор символов без широко признаваемого значения (⊤ и ⊥, из логики) кажется более инклюзивным, даже в ущерб ясности на конкретном языке.
"Хотя Wordplay все еще находится в разработке, моя предварительная работа над ним обнадеживает. Я смогла писать программы одной функциональной рукой, используя ввод речи, даже на смартфоне. Я надеюсь выпустить новый язык этой осенью, предлагая видение и пример более справедливого будущего для кода. При небольшой удаче некоторые из этих идей смогут перейти в более широко используемые языки и инструменты, особенно в науке, и таким образом снизят порог входа для многих потенциальных программистов. Если мы хотим, чтобы наука служила всем, и считаем, что представительство - часть достижения этой цели, мы должны начать создавать инструменты, доступные каждому - включая тех из нас, у кого сломаны руки", считает Ами Ко.
"У меня было много интересных планов на конец моего годового академического отпуска. Перелом руки не входил в их число. Внезапно все мои занятия как профессора, включая написание и программирование, пришлось выполнять одной рукой или при помощи голоса. Это было неудобно. В то же время это сильно напомнило мне, почему я делаю то, что делаю - изучаю наши личные и коллективные усилия по пониманию компьютеров и их использованию в играх, власти, равенстве и справедливости - и усилило мое желание разработать действительно доступный язык программирования", рассказала Ами Ко.
Программирование на компьютере никогда не было легким. Загадочная документация, непонятный синтаксис и запутанные сообщения об ошибках. Но невозможность использовать доминирующую руку подчеркнуло тот факт, что программирование в основном ориентировано на лиц без инвалидности. Даже программное обеспечение для распознавания речи, настроенное на кодирование, было подвержено ошибкам и работало медленно. Профессора отметила, что неспособность печатать горячими клавишами требовала перенастройки множества параметров и запоминания десятков новых комбинаций клавиш.
Люди с инвалидностью хорошо знакомы с этими проблемами - на каждом шагу программирование отталкивает людей с ограниченными возможностями и, следовательно, отталкивает их от участия в науке. Некоторые из самых популярных платформ для изучения программирования требуют мыши и, следовательно, исключают людей с нарушениями двигательных функций. Большинство программ редактирования кода, включая те, которые используются в науке, предполагают, что пользователи обладают зрением, исключая тех, кто слеп или имеет нарушения зрения. И Интернет, который является неотъемлемым инструментом для поиска документации и помощи при программировании, широко несовместим со скринридерами, которые часто используются людьми, которые слепы, имеют нарушения зрения или дислексию.
Проблемы распространяются и на уровень умений в языках. Языки программирования и инструменты созданы на основе предположений о навыках общения на естественных языках - в частности, что пользователи могут читать и писать на английском. Ключевые слова в языках программирования, документация и онлайн-помощь почти всегда сначала написаны на английском языке и редко переводятся более чем на несколько других распространенных языков. В результате кто-либо, чей родной язык не английский - то есть большинство населения планеты - находится в сильном недоразумении, даже когда изучает основы. И если они не говорят на английском и полагаются на ввод речи или скринридеры, им гораздо сложнее, потому что эти инструменты редко поддерживают языки, отличные от английского.
Даже до моей травмы, я много думала об этих проблемах. Я использовала свой годовой академический отпуск для разработки нового языка программирования под названием Wordplay, который стремится избегать предположений о способности или владении естественными языками. Другие ранее также пытались решать эту проблему, хотя и в более узком контексте. Японский язык программирования Dolittle (на японском - doritoru), например, позволяет пользователям писать код на этом языке непосредственно, и язык Quorum специально ориентирован на людей с нарушениями зрения. Язык Hedy, используемый для обучения программированию детей, был переведен на 39 языков. Но, по моим данным, ни один из них не попытался решить проблему способностей и владения языками универсально, стремясь к справедливому дизайну, который служит всем, независимо от их языка или способностей.
Создание нового языка, соответствующего этим целям, не было простой задачей. Это означало переосмысление каждой части опыта программирования: удаление всех ключевых слов на естественных языках (например, "if" и "while"); разрешение использования идентификаторов программирования (таких как имена переменных и функций) с несколькими языковыми тегами; возможность сосуществования символов как справа налево, так и слева направо в коде для поддержки двуязычных пользователей. Это потребовало программного редактора, который автоматически переводит код между языками, сохраняя при этом его функциональность, для поддержки многоязычных команд и классов. Это также означало отображение кода таким образом, чтобы его можно было навигировать, читать на скринридерах и редактировать с помощью мыши, клавиатуры, речи и других доступных технологий. Кроме того, это потребовало изобретения новых форм интерактивного текстового вывода программ, которые могли бы автоматически переводиться на другие языки и описываться скринридером, подобно живой трансляции текста.
Однако изменения затронули не только более широкую поддержку разных методов ввода, вывода и языков. Некоторые из самых фундаментальных концепций в проектировании языков программирования глубоко проникли в наше сознание. Например, идеи и слова "true" и "false" исходят из строгой логики XIX века математика Джорджа Буля и дискретной математики. Идеи, такие как "false", не всегда четко переводятся на другие языки и культуры. Даже выбор символов для представления этих концепций может привести к приоритизации одной культуры перед другой. Выбор символов без широко признаваемого значения (⊤ и ⊥, из логики) кажется более инклюзивным, даже в ущерб ясности на конкретном языке.
"Хотя Wordplay все еще находится в разработке, моя предварительная работа над ним обнадеживает. Я смогла писать программы одной функциональной рукой, используя ввод речи, даже на смартфоне. Я надеюсь выпустить новый язык этой осенью, предлагая видение и пример более справедливого будущего для кода. При небольшой удаче некоторые из этих идей смогут перейти в более широко используемые языки и инструменты, особенно в науке, и таким образом снизят порог входа для многих потенциальных программистов. Если мы хотим, чтобы наука служила всем, и считаем, что представительство - часть достижения этой цели, мы должны начать создавать инструменты, доступные каждому - включая тех из нас, у кого сломаны руки", считает Ами Ко.