ermouth: (Default)
[personal profile] ermouth

Прочитал недавно интерактив Алана Кея на HN и наткнулся там на такой вопрос/ответ:

– Do you think we'll ever have a programming language that isn't fully text based and gets closer to a direct mapping of our own thoughts than current systems? If so any ideas what properties this language would have?

–A few years ago I asked another visionary, Marvin Minsky, if he thought that, in the future, we'd do our programming in something other than plain text. He said, "If it's good enough for Aristotle and Plato, it's good enough for me." RIP, Professor.

Я неделю в картинках размышлял, так ли enough это good. Мне кажется, не так уж он и good, можно придумать и получше.

Размышлял я примерно таким образом: коль скоро сам по себе texting, то-есть концепция письменного языка, является ограничителем, надо просто попробовать выбросить эту концепцию.

Звучит диковато – но только на первый взгляд. В самом деле очень многие артефакты реальности либо плохо помещаются в язык, либо вовсе им невыразимы в таком виде, чтобы человек (Homo sapiens) смог адекватно воспринять.

Попробуйте языком – каким угодно – описать движения тай-цзы, например. Физические аспекты ещё можно как-то попытаться, а вот что при этом в голове происходит – вообще в человеческий язык не помещается. Дальше, под катом, суровый гон.

Завязывание шнурков

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

Размышление над этими двумя примерами привело меня к мысли, что при попытке описать (запрограммировать) такого рода действия над реальностью, нужна специальная форма выражения мысли, которая позволяет накладывать термы один на другой.

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

В лучшем случае вторым потоком информации к тексту будет интонирование, а третьим – мимика и жесты, но они пригодны для расстановки акцентов, а не для передачи смыслов вообще (кроме самых простых). Закон Ома одним интонированием не объяснить (или, если угодно, на скрипке не сыграть). И не воспринять.

Хоровое восприятие и инструментальный рефлекс

Зато мы прекрасно воспринимаем “хором” мир предметов, а если быть точным – мир их взаимного расположения и свойств. После недавней истории с перчатками я склонен думать, что инструментальный рефлекс в нас – штука весьма низкоуровневая.

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

Им речь низачем вообще не нужна для этого, они словами не думают. Они строят в голове модель кусочка реальности, там же в голове его трансформируют, и воспроизводят трансформации обратно в реальности. К таким ментальным моделям слова не просто не нужны, они противопоказаны – фокус теряется.

Hacky code

Между прочим, короткий непонятно как работающий код (hacky) – это вот очень близкое явление. Это артефакты, которые находятся на границах возможностей языка. Нередко объяснение к действительно hacky-коду (или даже тот-же код в не-hacky стиле) занимает многократно больше места и всё равно с большим трудом воспринимается.

Тут дело не в сложности конструкции, а в самом языке, он в этой истории лишний. Зато hacky-код нередко весьма компактно объясняется на простой аналогии из предметного мира, если вы, конечно, в состоянии её представить в необходимой полноте.

Виртуальные предметы

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

2Д и зрения/пальцев для этого очевидно мало. Плоского экрана, даже большого, едва хватает на разработку только texting-ом и немножко деревьями. Именно поэтому все попытки сделать программирование из графических схем не прижились – простынь линий охватывать нисколько не легче, чем stream текста.

С виртуальным пространством другое дело. На нём доступны быстрый шифт, зум, огрубление и снятие оболочек (“углубление” в предмет), тактильное восприятие, температура и тп.

Плюс на этом пространстве работают наши естественные рефлексы. Плюс можно менять геометрию пространства – 3Д-пространства разной кривизны чрезвычайно любопытно выглядят, изменяется восприятие локальности и расстояния.

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

Итого

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

Что интересно, вот в обычном инжиниринге (мира атомов) системы конструирования, построенные на виртуальных мирах, вполне себе есть. Стало быть, должны и в ИТ появиться.

Что думаете?

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 31st, 2026 09:00 pm
Powered by Dreamwidth Studios