Интерфейсы и устройства ввода-вывода тормозят развитие технологий?
Дисклеймер. Я написал этот текст, имея под рукой только сенсорную клавиатуру с довольно скудным словарём, находясь под влиянием любопытной мысли и желания рассказать о ней. Я не в курсе всех существующих сегодня технологий и их прототипов и до сих пор имею на это взгляд обывателя, который видит, что предлагается потребителю в масс-маркете и что из этого пользуется популярностью, опять же, на основе моих бытовых наблюдений.
А теперь я хотел бы поделиться с Вами моей небольшой теорией.
На текущий день, в качестве терминала по-прежнему используется стандартный набор устройств ввода-вывода: клавиатура, мышь и экран (помимо прочих, по моему мнению, вспомогательных, но не необходимых устройств). Причём, текущие интерфейсы всё ещё достаточно сильно ориентированы на эти устройства, хотя и тенденция частично меняется, но не для удобства разработки: появились сенсорные и кинетические (назовём их так) устройства взаимодействия с интерфейсом.
Любопытно то, что с появлением сенсорных экранов, появилась и возможность использовать и другие наборы символов, помимо привычных букв разных алфавитов, цифр и часто используемых символов вроде скобок, знаков препинания и тому подобных: можно использовать так называемые "эмодзи", да и вообще, можно сделать виртуальную клавиатуру с любым набором символов. Однако, в большинстве случаев, такой способ ввода больше ориентирован на развлечения и не достаточно удобен для разработки.
С моей точки зрения, удобство использования физической клавиатуры по-прежнему заключается в тактильной отдаче и чётком отделении всех клавиш друг от друга. Немаловажным является ещё и факт наличия "стандартного" набора клавиш и привычного расположения символов на них.
Допустим, что появились доступные физические клавиатуры с иным набором символов, расположением клавиш, их формой и размером, которые можно подключать вместе со стандартными клавиатурами или независимо от них.
В таком случае, появляется возможность использовать такие клавиатуры для дополнительных задач, в том числе и для разработки на каком-то абстрактном языке программирования, который задействует такой набор символов.
Предположим, что такой язык программирования существует и он наделён каким-то набором свойств, которые существенно отличают его от существующих языков программирования, например, он хорошо ориентирован для программирования графики или для параллельного программирования - возможности могут быть практически любыми.
Такая концепция может помочь сделать большой шаг вперёд в развитии информационных технологий и взаимодействия человека с этими технологиями.
Таким образом, можно утверждать, что в какой-то мере привычные физические устройства ввода несколько ограничивают как разработку новых языков программирования и инструментов разработки, так и саму возможность разрабатывать на таких языках.
Предположим, что существует какой-то набор символов, с помощью которого можно описывать программную структуру алгоритмов работы какого-то робота. Если абстрагироваться от привычного набора одномерного текста для описания алгоритмов или декларирования интерфейса, использовать новый набор символов в двух измерениях, не исключено, что можно создать и использовать для этого новое физическое устройство, отвечающее какому-то стандарту и требованиям. Например, введя всего пару-тройку символов и используя потоки, в качестве второго измерения, можно изобразить своеобразный "Hello world" для робота: символ поднятия "руки" и символ движения ей в стороны в одном потоке, и символ улыбки - во втором потоке.
Любопытно и то, что трёхмерные интерфейсы и устройства взаимодействия с ними уже давно существуют, вот только пока что они применяются, в основном, только в сфере развлечений.
По сути, мышь, трекбол, планшет и сенсор экрана - это самые распространённые устройства ввода и все они идеально подходят для двумерных интерфейсов. Хотя, в какое-то время у мыши появилось "колёсико", а планшеты и экранные сенсоры стали обрабатывать силу нажатия - но всё это по-прежнему ориентировано на двумерный интерфейс, а для трёхмерного по-прежнему неудобны. С другой стороны, для игровых консолей используются устройства, у которых задействована ось Z, а в играх как раз используется трёхмерный интерфейс.
Привычные на сегодняшний день устройства, в своё время были не столь популярны, однако интерфейсы, хорошо ориентированные на них сделали такие устройства популярными и доступными и это является стандартном де факто. А это может означать, что новые устройства и ориентированные на них интерфейсы (или наоборот) могут снова изменить наш мир, а мы быстро к этому привыкнем и научимся сами и научим других пользоваться ими хорошо.
Собственно, вопрос. Может ли, по Вашему мнению, эволюция интерфейсов и устройств ввода-вывода ускорить прогресс, как это произошло во времена появления привычных нам сейчас клавиатуры, мыши и дисплея?
Записывайтесь в клуб Элана Маска. Он в каком-то интервью уже упоминал проблему ввода/вывода информации в мозг человека. Мол "медленно". Причем вывод информации (то как мы печатаем свои мысли) - не такая большая проблема как ввод (то как мы информацию воспринимаем).
Допустим, что появились доступные физические клавиатуры с иным набором символов, расположением клавиш, их формой и размером, которые можно подключать вместе со стандартными клавиатурами или независимо от них.
А вы вообще проводили ресерч на эту тему? Вот вам варианты интересные которые существенно увеличивают скорость набора.
ну и были еще кучи прототипов и т.д. Проблема в том что при работе с 3D большинство работают с проекциями, нам так удобнее.
Может ли, по Вашему мнению, эволюция интерфейсов и устройств ввода-вывода ускорить прогресс, как это произошло во времена появления привычных нам сейчас клавиатуры, мыши и дисплея?
Работы в сторону нейроинтерфейсов ведутся, но я лично знаю только об успешной midi клавиатуре на 8 клавиш которыми можно управлять силой мысли. Вводить же информацию напрямую в мозг мы пока не научились вовсе.
Честно написал в дисклеймере, что ресёч мой основывался только на сугубо обывательском анализе и массовом спросе-предложении на рынке.
С большим удовольствием сейчас поизучаю Ваши ссылки и упоминания.
Однако, хочу сказать, что я далеко не о раскладках клавиатуры говорил, а, скорее, о более общем подходе к изменению системы ввод-вывод и интерфейсов с целью упростить, сократить стандартные шаблоны кодирования и расширить их за счёт более интуитивно-понятного способа обмена информацией. Остальное сделает правильно спроектированный и реализованный компилятор, а возможно и совершенно новый процессор и машинный язык для него.
Пример про робота и эмодзи был дан мной неспроста: когда мы говорим о такой системе, как робот, то чаще всего и представляем его как человекоподобного. И чаще всего, когда мы говорим "робот поднял руку и, улыбнувшись, помахал ею", то для программиста это звучит как набор довольно типичных для такой ситуации инструкций, плюс распараллеливание процесса, а для инженера - как набор инструкций, которые должны выполняться механически в ответ на данные программой инструкции. Значит, шаблонную логику можно "шить в чип", по аналогии с нынешними процессорами и их командами, выполняющими какой-то алгоритм. А логику верхнего уровня можно делать менее многословной и более интуитивно-понятной. В итоге, вместо приличных пачек кода можно, как в "черепашке", писать специальными символами: "поток1$поднять_руку_правую, помахать; поток2$изобразить_улыбку" (♳☝➡
Что я понял, посмотрев Ваши ссылки. Плюсы: это действительно выглядит круто и, кажется, даже работает; Минусы: стоит очень дорого и предназначено для несколько иных задач, чем я изначально предполагал. Однако, выглядит действительно здорово.
Нынешние клавы и мышки можно купить за смешные деньги, что делает их неизменно популярными и ещё больше удешевляет. А если эти специализированные девайсы могли бы стоить столько же и быть конкурентоспособными - их бы мигом стали использовать. А так, они позиционируются как дорогие про-инструменты с инновационным подходом и без worldwide поддержки, по сути.
Эх, физическую бы клавиатурку, да под каждый язык программирования с типичными шаблонами, да за пару баксов... :)
Я к тому что современные IDE и так неплохо угадывают что вы собираетесь написать, и потому "под язык программирования" делать отедльные клавиатуры смысла нет. Это остановит развитие этих самых языков.
Сергей Протько: Хех, точно! Шутку про мановар не знал, но оценил ) Кстати, примерно об этом я и говорил.
Но речь, по большей части, не про обычные тексты кода, с которыми, действительно, неплохо справляются IDE. Предположите, что есть такой ЯП, в котором используются не слова, а некие символы. Например, блоки блок-схем или блоки UML или нечто абстрактное, но в таком же духе. Предположите также, что этот ЯП более эффективен и более интуитивно-понятен человеку. И к нему есть двухбаксовые клавы, которые не мешают использовать обычную клаву.
Можно, кстати, предположить, что это и не ЯП, а например, некая среда для математиков. Если помните Microsoft Equation 3.0 - там символы набирались мышкой.
Ну если вы под страхом смертной казни прикажете всем срочно изучать эти новые клавиатуры и языки программирования....
Ведь есть куча наработок, которые в новом языке так просто не возникнут.
А в старых уже есть.
Клавиатуру нужно будет заново осваивать на слепой десятипальцевый метод набора.
И т.д. и т.п.
Уже не говоря о том что язык нужно изучить.
Так что переход будет очень даже постепенным.
В том смысле, что у человечества нет жизненной необходимости переходить на все новое, когда можно использовать кучу старого - это как бы держит прогресс в узде.
Но на самом деле - это поддерживает прогресс, пока происходит обкатка новых идей, пока они нестабильны. Ведь кушать то что-то надо.
Ну не может 100% человечества стартапными вещами заниматься, мы ведь тогда с голода помрем.
Ведь выращивать зерно, фрукты, скотину, овощи тоже кому-то надо.
И, кстати, кто сказал, что эта новая вещь будет настолько лучше старых?
Скажем, раскладок клавиатуры довольно много было.
Не сказал бы что люди, освоившие Colemak так прямо производительны были, что другие сразу стали им завидовать и тоже учить Colemak.
P.S.:
Прогресс и так слишком ускорен.
Скоро уж ресурсы на земле кончатся.
Раскладки клавиатуры - это же всего лишь более эргономичный способ написания всё того же двумерного текста. А совершенно новый подход, целая концепция ведь вполне способны подтолкнуть технологии к более экономному по затратам ресурсов развитию, но более понятному для человека и более оптимальному способу реализации этого развития, как мне кажется. Кстати, рекомендую посмотреть про алгоритмический язык ДРАКОН, который применяется в России для ракет (Протон-М, кстати, тоже) и про двумерное структурное программирование, основу которого, кстати, придумали русские учёные. Вот, именно эта инфа мне и навеяла мой вопрос.
Если люди перестанут тратить ресурсы на неоптимальные решения задач - глядишь, сэкономят хотя бы. А там и о возобновлении задумаются, а следом и возобновят - мозги же есть и руки у многих из правильных мышц растут :)
Алексей Крайст: Во первых - а кто решит что оптимальное, а что нет.
Во вторых - у людей бывают прямо противоположенные стремления. Для кого-то оптимально для отдыха полежать на диване, а для кого то отдых это в футбол погонять.
Да, может, в идеале произвести реверс-инжиниринг мозга и реализовать взаимодействие силой мысли.
Но обработка данных, как всегда, в сто раз актуальнее, чем интерфейсы, вот если в рамках того же реверс-инжиниринга мозга создадут девайс, который будет обрабатывать подобные вопросы на Тостере, "осушая из них всю воду", вот это будет еще круче, чем сила мысли! А так я "не осилил"!
Алексей Крайст: Смогут, но не прогресс, а лишь возможности разработки, а прогресс еще и от людей зависит. А вот для их создания нужен прогресс, прежде всего в голове, какой к черту язык на эмоциях? Эмоции - это одно из самого примитивного что есть в мозге, язык на эмоциях это все равно что ОЗУ из кеша процессора.
Rou1997: всё ж зависимо и за возможностями разработки подтянется и прогресс, верно? Эмоции приведены как частный случай (в топике там про управление роботом писал)