Как выглядит программа?
Jan. 8th, 2010 11:54 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Как еще можно представить программу, кроме исходного кода?
Отойдя от текстового представления, граф мне кажется самым логичным вариантом, т.к.программа (на java-like языке, на других языках сущности будут другие) - это несколько графов – владения (агрегация), наследования (иногда дерево), инстанцирования, data flow, вызовов функций и т.д.
Вопрос и в удобных сущностях (макросы LISP’a, системы типов Haskell/ML-подобных языков, DSL), и в их представлении.
Важно и представление, и удобное редактирование. Текст все умеют редактировать, а вот для графов настолько интуитивных и общепринятых редакторов пока не изобрели.
Если граф нарисовать на бумажке, он выглядит естественно.
Если граф изобразить из спичек и пластилина – тоже естественно.
А вот текстом – несподручно как-то. Деревья изображаются чудесно (JSON, s-expressions и прочая). Списки – еще проще. А с графами как?
Да, можно использовать имена и ссылки (см. большинство языков программирования, YAML и т.д.)
p.s. граф содержит, скажем, 1 млн вершин. я полагаю, что считать вершину графа эквивалентной строке кода – это ошибка не более чем на 1-2 порядка.
p.p.s. @hakrom: этот вопрос как бы говорит нам, что пора уже и не только текстом код рисовать
мне почему-то кажется, что развитие пространственного воображения в таком подходе -- это очень хорошо
UPD3: примеры подобных инструментов:
National Instruments’ LabVIEW
Farb-Rausch и их werkzeug1
Wolfram Research и их Wolfram Mathematica
* EADaCS ev_genus’a
* Intentional Software Workbench
* дискуссия на похожую тему на gamedeff
no subject
Date: 2010-01-08 10:30 pm (UTC)no subject
Date: 2010-01-08 10:59 pm (UTC)no subject
Date: 2010-01-08 10:58 pm (UTC)Удачный пример — линейка werkkzeug от farbrausch. Если аналогия не будет очевидной, хотя бы будет представление о графическом представлении =)
no subject
Date: 2010-01-08 11:23 pm (UTC)Хотя во втором интересно было анимашки делать трехмерные.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:Правильно!
From:no subject
Date: 2010-01-08 11:26 pm (UTC)Откуда уверенность, что это в принципе возможно?
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-01-08 11:27 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-01-08 11:25 pm (UTC)для меня
Date: 2010-01-08 11:59 pm (UTC)Re: для меня
Date: 2010-01-09 12:05 am (UTC)(no subject)
From:no subject
Date: 2010-01-09 12:21 am (UTC)no subject
Date: 2010-01-09 12:28 am (UTC)no subject
Date: 2010-01-09 12:40 am (UTC)no subject
Date: 2010-01-09 12:31 am (UTC)как было с визуальным программированием ("накидать компонентов на форму")
no subject
Date: 2010-01-09 01:06 am (UTC)(no subject)
From:no subject
Date: 2010-01-09 12:56 am (UTC)no subject
Date: 2010-01-09 01:37 am (UTC)Аналогом тегов в ЯП-ах можно назвать атрибуты в .NET. Они позволяют пользователю добавить дополнительные знания об объекте которых там раньше не было, и соответственно существует кто-то кто о них знает и умеет ими пользоваться.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-01-09 01:24 am (UTC)no subject
Date: 2010-01-09 01:27 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2010-01-09 04:52 am (UTC)no subject
Date: 2010-01-09 05:57 am (UTC)no subject
Date: 2010-01-09 08:49 am (UTC)Только вот графы(представленные в обычном виде, т.е. рисунок с ребрами-вершинами) для этого тоже малопригодны - достаточно посмотреть на UML диаграммы классов или сущностей для сложных систем. Оно читабельно уже с трудом, а уж редактировать "это" - тяжкий кошмар. Может, конечно, это идиоты-проектировщики интерфейсов для умл-редакторов виноваты, считающие что иначе как мышью с этим работать не будут.
В общем, на данный момент мне кажется, что хороший вариант - это комбинация текста и гридов для ввода данных (с деревьями вопрос, но наверно их можно как-то в грид впихнуть не сломав мозг), а многомасштабная картинка с графом - для разноуровневого обзора результата.
no subject
Date: 2010-01-09 11:57 am (UTC)Ещё я пожалуй не совсем "за" унификацию. Обычно она приводит к ещё большей неразберихе и бредятине. У нас сейчас есть куча маленьких view на разные части "кододанных" и пишутся новые по мере необходимости.
no subject
Date: 2010-01-10 06:55 am (UTC)(no subject)
From:no subject
Date: 2010-01-10 10:25 am (UTC)no subject
Date: 2010-01-10 10:26 am (UTC)(no subject)
From:no subject
Date: 2010-01-15 06:10 am (UTC)no subject
Date: 2010-01-15 08:43 am (UTC)(no subject)
From:(no subject)
From: