DRAKON.SU https://forum.drakon.su/ |
|
Предложения участника MetromDouble https://forum.drakon.su/viewtopic.php?f=62&t=7045 |
Страница 1 из 1 |
Автор: | Владимир Паронджанов [ Вторник, 22 Июнь, 2021 16:22 ] |
Заголовок сообщения: | Предложения участника MetromDouble |
MetromDouble писал(а): Уважаемый автор.
Я в качестве эксперимента делаю что-то вроде визуальной фронтенд-студии и попробовал реализовать дракон в качестве основного языка визуального программирования (не гибридный ДРАКОН-JavaScript, а чистый Дракон со специальным движком обработки данных, похожим на смесь Excel и Smalltalk). Столкнулся с некоторыми затруднениями, некоторые из которых разрешить было тривиально: — Diff, merge и в целом просмотр истории изменений — как и для любого ориентированного графа эти проблемы относительно легко решаются (при определённых усилиях можно даже полностью снять с программиста задачу по разрешению конфликтов, но, разумеется, никакой git тут неприменим и понадобится CVS, основанная на других принципах). — Try-catch — это тоже можно решить, хотя уже с изменением стандарта языка (нужно модифицировать икону ветки, чтобы она могла допускать ветвление при ошибке внутри ветки и переходить к веткам catch и finally). Однако, есть концептуальные сложности — ориентированность Дракона на процедурное и автоматное программирование приводит к очень громоздкому графу выполнения, когда мы встречаемся с задачей описания асинхронных потоков данных, на которых построены веб-приложения. Дракон не умеет передавать функции как данные, поэтому в своей студии мне пришлось сделать гибридный визуальный язык — для «атомов», то есть элементарных функций используется Дракон, а вот для передачи сообщений/функций используется нодовый редактор — примерно такой-же, как Blueprints в Unreal Engine. А такая структура уже не так эргономична, как чистый Дракон. Я думаю, что Дракон имеет в себе потенциал стать языком разработки, который сможет сделать программирование доступным для большинства людей, но для этого стандарт нужно серьёзно дополнить и переработать |
Автор: | ibnteo [ Среда, 23 Июнь, 2021 01:21 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
Было бы интересно посмотреть на примеры программ. |
Автор: | Владимир Паронджанов [ Среда, 23 Июнь, 2021 09:03 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
ibnteo писал(а): Было бы интересно посмотреть на примеры программ. Владимир, вы можете задать ему вопрос на Хабре. Этот текст он написал как комментарий https://habr.com/ru/post/541478/#comment_23175434 к моей статье https://habr.com/ru/post/541478/ |
Автор: | MetromDouble [ Среда, 23 Июнь, 2021 17:34 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
Я, наконец-то, сумел зарегистрироваться и чуть позже создам тему со своими наработками |
Автор: | Владимир Паронджанов [ Суббота, 13 Ноябрь, 2021 22:13 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
MetromDouble писал(а): чуть позже создам тему со своими наработками А когда? Ждем ваши наработки с большим интересом. |
Автор: | Владимир Паронджанов [ Четверг, 29 Август, 2024 10:04 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
MetromDouble выполняет свое обещание. Сегодня ночью (29 августа 2024) я получил письмо от участника MetromDouble. Цитирую: Цитата: Здравствуйте. Вы очень давно, 3 года назад, писали мне по поводу применения языка ДРАКОН, когда я публиковал на форуме идею использования его во фронтенд-конструкторе.
Хочу сообщить, что идею я не забросил, и не заброшу. Я потратил немало свободного времени как на размышления, так и на проверку концепций практического программирования. А особенно много времени убило у меня изучение графического программирования - webGl, webGPU. Чтобы среда была чрезвычайно быстрой и позволяла комфортно редактировать огромные холсты с реальными программами (считаю, что идея бесконечного холста, как в редакторе Figma - самая наилучшая и для графического программирования) и кучей дополнительных виджетов - вроде предпросмотра объектов и компонентов. Не могу точно сказать, когда можно будет попользоваться прототипом, но я о вас помню и напишу вам сразу, как проект будет доступным. |
Автор: | Григорий Пуляев [ Четверг, 29 Август, 2024 15:59 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
> считаю, что идея бесконечного холста, как в редакторе Figma - самая наилучшая и для графического программирования Это наихудшая идей. Если размещать всё в одном месте, то вы очень быстро столкнётесь с пределом Дойча (https://en.wikipedia.org/wiki/Deutsch_limit). По этому нарисовать сколь либо большую программу в такой среде у вас не получится. |
Автор: | Владимир Паронджанов [ Четверг, 29 Август, 2024 19:42 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
Григорий Пуляев писал(а): Это наихудшая идея. Если размещать всё в одном месте, то вы очень быстро столкнётесь с пределом Дойча (https://en.wikipedia.org/wiki/Deutsch_limit). Григорий, спасибо за ссылку. Я открыл ссылку и перевел статью на русский. Цитирую: Цитата: Предел Дойча — это афоризм об информационной плотности визуальных языков программирования , созданный Л. Петером Дойчем , который гласит:
Примитивы в визуальном языке — это отдельные графические элементы, используемые для построения программы, и наличие большего их количества в одно и то же время позволяет программисту считывать больше информации. Этот предел иногда приводится в качестве примера преимущества текстовых языков над визуальными, [ 4 ] указывая на большую плотность информации текста и создавая трудности в масштабировании языка. [ 5 ] [ 6 ] Однако критика этого ограничения заключается в том, что неясно, существует ли аналогичное ограничение в текстовых языках программирования; [ 1 ] и что ограничение можно преодолеть, применив модульность к визуальному программированию, как это обычно делается в текстовом программировании. Смотрите также Когнитивные измерения нотаций Закон Конвея Я обратил внимание на слова: Цитата: ограничение можно преодолеть, применив модульность к визуальному программированию, как это обычно делается в текстовом программировании. Григорий, что вы думаете об этой последней фразе?
|
Автор: | Григорий Пуляев [ Четверг, 29 Август, 2024 23:58 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
>> ограничение можно преодолеть, применив модульность к визуальному программированию > что вы думаете об этой последней фразе? Это как раз то про что был посыл моего сообщения. Не нужно пытаться уместить всё на "бесконечном холсте". Программу нужно декомпозировать на небольшие схемы и работать с каждой схемой отдельно. |
Автор: | MetromDouble [ Понедельник, 02 Сентябрь, 2024 14:03 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
Григорий Пуляев писал(а): > считаю, что идея бесконечного холста, как в редакторе Figma - самая наилучшая и для графического программирования Это наихудшая идей. Если размещать всё в одном месте, то вы очень быстро столкнётесь с пределом Дойча (https://en.wikipedia.org/wiki/Deutsch_limit). По этому нарисовать сколь либо большую программу в такой среде у вас не получится. Предел Дойча тут неприменим. Бесконечный холст, о котором я говорю - это холст с зумом. Как Google Maps - в самом большом масштабе вы видите континенты, моря, реки, то есть макрообъекты. Но приближая, можно увидеть более мелкие системы, микрообъекты - города, пром.структуры, отдельные дома, даже машины и людей. Но карты показывают лишь то, что можно лишь условно спроецировать в 2 измерения - структуру микрообъектов на карте показать не получится, так как она трёхмерная. Однако, если метафору карт переносить на язык Дракон, то никакой проблемы нет - показать зумом можно всё - до мельчайших деталей. Это значит, что одно из основных правил Дракона можно соблюдать - один алгоритм - один лист А4. Однако, из-за того что у большой программы есть свойство "территориальности", то вы можете создавать большие и малые области, которые будут отображаться в зависимости от масштаба (если внутренности из-за зума уже нечитаемые, то область закрашивается и над ней отображается текст или картинка, которую вы задаёте как условное обозначение внутренностей области). И внутри этих областей будут размещены листы алгоритмов, либо ссылки на них (потому что объектно-ориентированного программирования с классами и инстансами классов никто не отменял). Таким способом можно хоть миллиард листов с алгоритмами в одном проекте отобразить (разумеется проект отрисовывает и загружает данные только того, что видно на экране прямо сейчас). Вообще, я тогда позже опубликую отрисованные макеты для этой идеи здесь, так как словами рассказывать не так удобно, как показать наглядно. |
Автор: | Григорий Пуляев [ Понедельник, 02 Сентябрь, 2024 15:44 ] |
Заголовок сообщения: | Re: Предложения участника MetromDouble |
> Предел Дойча тут неприменим. Это означает что вы про него просто не думали, а тем не менее это фундаментальное ограничение которое есть всегда и которое полностью преодолеть не получиться. > Бесконечный холст, о котором я говорю - это холст с зумом ... то никакой проблемы нет - показать зумом можно всё - до мельчайших деталей. Пока это просто фантазия. Покажи мне MVP и я покажу то место где ты сможешь превысить предел Дойча. ![]() > я тогда позже опубликую отрисованные макеты для этой идеи здесь Тогда ждём. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |