DRAKON.SU

Текущее время: Воскресенье, 15 Июнь, 2025 12:03

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Предложения участника MetromDouble
СообщениеДобавлено: Вторник, 22 Июнь, 2021 16:22 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5999
Откуда: Москва
MetromDouble писал(а):
Уважаемый автор.

Я в качестве эксперимента делаю что-то вроде визуальной фронтенд-студии и попробовал реализовать дракон в качестве основного языка визуального программирования (не гибридный ДРАКОН-JavaScript, а чистый Дракон со специальным движком обработки данных, похожим на смесь Excel и Smalltalk).

Столкнулся с некоторыми затруднениями, некоторые из которых разрешить было тривиально:

— Diff, merge и в целом просмотр истории изменений — как и для любого ориентированного графа эти проблемы относительно легко решаются (при определённых усилиях можно даже полностью снять с программиста задачу по разрешению конфликтов, но, разумеется, никакой git тут неприменим и понадобится CVS, основанная на других принципах).

— Try-catch — это тоже можно решить, хотя уже с изменением стандарта языка (нужно модифицировать икону ветки, чтобы она могла допускать ветвление при ошибке внутри ветки и переходить к веткам catch и finally).

Однако, есть концептуальные сложности — ориентированность Дракона на процедурное и автоматное программирование приводит к очень громоздкому графу выполнения, когда мы встречаемся с задачей описания асинхронных потоков данных, на которых построены веб-приложения.

Дракон не умеет передавать функции как данные, поэтому в своей студии мне пришлось сделать гибридный визуальный язык — для «атомов», то есть элементарных функций используется Дракон, а вот для передачи сообщений/функций используется нодовый редактор — примерно такой-же, как Blueprints в Unreal Engine. А такая структура уже не так эргономична, как чистый Дракон.

Я думаю, что Дракон имеет в себе потенциал стать языком разработки, который сможет сделать программирование доступным для большинства людей, но для этого стандарт нужно серьёзно дополнить и переработать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Среда, 23 Июнь, 2021 01:21 
Аватара пользователя

Зарегистрирован: Пятница, 19 Февраль, 2021 14:48
Сообщения: 128
Было бы интересно посмотреть на примеры программ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Среда, 23 Июнь, 2021 09:03 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5999
Откуда: Москва
ibnteo писал(а):
Было бы интересно посмотреть на примеры программ.

Владимир, вы можете задать ему вопрос на Хабре.
Этот текст он написал как комментарий https://habr.com/ru/post/541478/#comment_23175434
к моей статье
https://habr.com/ru/post/541478/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Среда, 23 Июнь, 2021 17:34 

Зарегистрирован: Среда, 23 Июнь, 2021 17:32
Сообщения: 2
Я, наконец-то, сумел зарегистрироваться и чуть позже создам тему со своими наработками


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Суббота, 13 Ноябрь, 2021 22:13 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5999
Откуда: Москва
MetromDouble писал(а):
чуть позже создам тему со своими наработками

А когда? Ждем ваши наработки с большим интересом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Четверг, 29 Август, 2024 10:04 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5999
Откуда: Москва
MetromDouble выполняет свое обещание.
Сегодня ночью (29 августа 2024) я получил письмо от участника MetromDouble. Цитирую:

Цитата:
Здравствуйте. Вы очень давно, 3 года назад, писали мне по поводу применения языка ДРАКОН, когда я публиковал на форуме идею использования его во фронтенд-конструкторе.

Хочу сообщить, что идею я не забросил, и не заброшу. Я потратил немало свободного времени как на размышления, так и на проверку концепций практического программирования.
А особенно много времени убило у меня изучение графического программирования - webGl, webGPU. Чтобы среда была чрезвычайно быстрой и позволяла комфортно редактировать огромные холсты с реальными программами (считаю, что идея бесконечного холста, как в редакторе Figma - самая наилучшая и для графического программирования) и кучей дополнительных виджетов - вроде предпросмотра объектов и компонентов.

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



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Четверг, 29 Август, 2024 15:59 

Зарегистрирован: Вторник, 31 Январь, 2017 14:51
Сообщения: 31
> считаю, что идея бесконечного холста, как в редакторе Figma - самая наилучшая и для графического программирования

Это наихудшая идей. Если размещать всё в одном месте, то вы очень быстро столкнётесь с пределом Дойча (https://en.wikipedia.org/wiki/Deutsch_limit). По этому нарисовать сколь либо большую программу в такой среде у вас не получится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Четверг, 29 Август, 2024 19:42 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5999
Откуда: Москва
Григорий Пуляев писал(а):
Это наихудшая идея. Если размещать всё в одном месте, то вы очень быстро столкнётесь с пределом Дойча (https://en.wikipedia.org/wiki/Deutsch_limit).

Григорий, спасибо за ссылку. Я открыл ссылку и перевел статью на русский. Цитирую:
Цитата:
Предел Дойча — это афоризм об информационной плотности визуальных языков программирования , созданный Л. Петером Дойчем , который гласит:

        Проблема визуального программирования заключается в том, что на экране одновременно не может быть более 50 визуальных примитивов. [ 1 ]
Термин был придуман Фредом Лакиным после того, как Дойч сделал следующий комментарий на лекции Скотта Кима и Уоррена Робинетта о визуальном программировании : «Ну, это все прекрасно и замечательно, но проблема с визуальными языками программирования в том, что на экране одновременно не может быть более 50 визуальных примитивов. Как вы собираетесь написать операционную систему?» [ 1 ] [ 2 ] [ 3 ]

Примитивы в визуальном языке — это отдельные графические элементы, используемые для построения программы, и наличие большего их количества в одно и то же время позволяет программисту считывать больше информации. Этот предел иногда приводится в качестве примера преимущества текстовых языков над визуальными, [ 4 ] указывая на большую плотность информации текста и создавая трудности в масштабировании языка. [ 5 ] [ 6 ]

Однако критика этого ограничения заключается в том, что неясно, существует ли аналогичное ограничение в текстовых языках программирования; [ 1 ] и что ограничение можно преодолеть, применив модульность к визуальному программированию, как это обычно делается в текстовом программировании.

Смотрите также
Когнитивные измерения нотаций
Закон Конвея


Я обратил внимание на слова:
Цитата:
ограничение можно преодолеть, применив модульность к визуальному программированию, как это обычно делается в текстовом программировании.
Григорий, что вы думаете об этой последней фразе?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Четверг, 29 Август, 2024 23:58 

Зарегистрирован: Вторник, 31 Январь, 2017 14:51
Сообщения: 31
>> ограничение можно преодолеть, применив модульность к визуальному программированию
> что вы думаете об этой последней фразе?

Это как раз то про что был посыл моего сообщения. Не нужно пытаться уместить всё на "бесконечном холсте". Программу нужно декомпозировать на небольшие схемы и работать с каждой схемой отдельно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Понедельник, 02 Сентябрь, 2024 14:03 

Зарегистрирован: Среда, 23 Июнь, 2021 17:32
Сообщения: 2
Григорий Пуляев писал(а):
> считаю, что идея бесконечного холста, как в редакторе Figma - самая наилучшая и для графического программирования

Это наихудшая идей. Если размещать всё в одном месте, то вы очень быстро столкнётесь с пределом Дойча (https://en.wikipedia.org/wiki/Deutsch_limit). По этому нарисовать сколь либо большую программу в такой среде у вас не получится.


Предел Дойча тут неприменим. Бесконечный холст, о котором я говорю - это холст с зумом. Как Google Maps - в самом большом масштабе вы видите континенты, моря, реки, то есть макрообъекты. Но приближая, можно увидеть более мелкие системы, микрообъекты - города, пром.структуры, отдельные дома, даже машины и людей. Но карты показывают лишь то, что можно лишь условно спроецировать в 2 измерения - структуру микрообъектов на карте показать не получится, так как она трёхмерная. Однако, если метафору карт переносить на язык Дракон, то никакой проблемы нет - показать зумом можно всё - до мельчайших деталей.

Это значит, что одно из основных правил Дракона можно соблюдать - один алгоритм - один лист А4. Однако, из-за того что у большой программы есть свойство "территориальности", то вы можете создавать большие и малые области, которые будут отображаться в зависимости от масштаба (если внутренности из-за зума уже нечитаемые, то область закрашивается и над ней отображается текст или картинка, которую вы задаёте как условное обозначение внутренностей области).
И внутри этих областей будут размещены листы алгоритмов, либо ссылки на них (потому что объектно-ориентированного программирования с классами и инстансами классов никто не отменял). Таким способом можно хоть миллиард листов с алгоритмами в одном проекте отобразить (разумеется проект отрисовывает и загружает данные только того, что видно на экране прямо сейчас).

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Предложения участника MetromDouble
СообщениеДобавлено: Понедельник, 02 Сентябрь, 2024 15:44 

Зарегистрирован: Вторник, 31 Январь, 2017 14:51
Сообщения: 31
> Предел Дойча тут неприменим.

Это означает что вы про него просто не думали, а тем не менее это фундаментальное ограничение которое есть всегда и которое полностью преодолеть не получиться.

> Бесконечный холст, о котором я говорю - это холст с зумом ... то никакой проблемы нет - показать зумом можно всё - до мельчайших деталей.

Пока это просто фантазия. Покажи мне MVP и я покажу то место где ты сможешь превысить предел Дойча. ;)

> я тогда позже опубликую отрисованные макеты для этой идеи здесь

Тогда ждём.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2025, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB