| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Чтиво > Про язык программирования |
| Автор: Гость_Andrey1 14.12.2004, 23:53 |
| http://sirius.ihep.su/~siver/pl-new.html |
| Автор: Sardar 15.12.2004, 02:59 |
| Затронуты большие темы, которые ты кратко описал, если их раскрыть, то выйдет очень толстая книга Подход с маркерами я понял как декларацию некоторого кода, использующегося в будущем. Но ведь сложно спроектировать(хотя бы общими словами) то, что будет использованно в будущем Подход с метаданными. Мне это напоминает COM, например CORBA, где описываются интерфейсы и затем компоненты могут общатся. Но это накладывает свои ограничения, также подочный эффект - падение производительности. Впрочем это не страшно, компы развиваются быстро В целом ты быстро пробежался и оставил только круги круги на воде, нужно изучать глубже. Чувствую на это может уйти вся жизнь, тема огромна. За прошедшее время ты хорошо продвинулся, теперь ты смог в общих чертах обьяснить что ты хочешь сделать |
| Автор: Andrey1 15.12.2004, 12:21 | ||||||
Я работаю в этом направлении
Да нет. Есть код, который ты маркерами выделяешь, а потом говоришь, как его преобразовать; причем преобразованный код может встать на место исходного. Типа patch'a. Таким образом, программа сможет развиваться последовательным добавлением кода (+добавление мета-данных).
Так я по-прежнему никуда не тороплюсь. |
| Автор: Sardar 15.12.2004, 17:01 | ||
Неужели это будет безглючно, а главное удобно...? Впрочем все новые(очень старые) идеи кажутся бредовыми пока не начнёшь видеть в них реальное удобство и мощь. |
| Автор: Andrey1 15.12.2004, 20:04 |
| По любому нужна система мета-данных, которая могла бы стать заменой коментариев. Я тут об этом немного написал: http://www.linux-os.ru/Members/Andrey1/miniz/document_view |
| Автор: Sardar 15.12.2004, 23:47 | ||
Прямо выскажу своё мнение о автоматической модиффикации кода - это бред! Ты хочешь описать метаданными смысл кода, на основе таких формальных определений некторый софт сможет редактировать программу, я правильно понял? А зачем оно нужно? А как формально описать смысл чего либо и при этом не потерять ясности для человека? Ты читал о контекстно зависимых грамматиках? Ими можно описать человеческий язык, так что бы машина могла генерить правильные(даже по смыслу) предложения. Но такая грамматика абсолютно не ясна человеку и составить её в ручную не удастся. Вывод: зачем такие сложности, если можно написать на человеческом языке что этот кусок кода делает, другой программист сможет всегда его изменить. А главно человек может охватить и проанализировать(используя свой опыт) весь код и, возможно, внести изменения в другие части программы, а этот код просто выбросить Ну и на последок, ты часто патчишь свой код? Ведь латание мелких дыр не должно требовать мощной системы, а внесение нового кода зависит от будущих(на текущий момент не ясных) задачь |
| Автор: Andrey1 17.12.2004, 19:13 | ||||
Автоматическая модификация кода - это слишком круто. Я об этом даже не думал. Смысл мета-данных вместо комментариев в том, чтобы сузить рамки описания человеком смысла кода. Чтобы это описание было понятнее описания на человеческом языке.
Патчить приходится очень часто; особенно при разработке сложных проектов (обычно их разрабатывают эволюционно). |
| Автор: Sardar 18.12.2004, 03:11 | ||||||
Приведи примеры метаданных. Примерно так в Java
Какая нидбудь утилита сможет сгенерить классную документацию, предназначенную для человека. Ты это подразумевал?
Во блин... я всегда знал что пользуюсь самым не эффективным по времени способом проектирования. Начинаю всегда с документации, по ходу придумываю и полностью пересматриваю идею. Обычно результирущий код в корне отличается от того, что задума в начале. Страниц 40 начальной документации выбрасывается и переписывается снова. Мне маркеры в коде не нужны, я даже не знаю как изменится моё представление через час |
| Автор: Andrey1 18.12.2004, 13:40 | ||||
Заголовок функции/процедуры можно понимать уже как мета-данные. А вот другие примеры: <FIXME> ... # Это то, что рано или поздно нужно переделать </FIXME> <makeup by="me"> # Это мета-данное описывает, кто написал код (в данном случае, # это некто "me") </makeup> <anchor id="here"/> # А этот "якорек" описывает место в программе, с названием "here". Дальше его можно использовать, например, так: <insert after="here"> <code> # И тут что-нибудь </code> </insert> А в самом конце разработки просто применяешь все мета-скрипты и отбрасываешь все комментарии. Думаю, мета-данные разумно писать в XML и использовать XML Native DB.
Однако, маркеры мешать тебе также не будут. А мне их, например, очень не хватает. |
| Автор: Sardar 18.12.2004, 16:22 |
| Заранее раставлять маркеры не удобно, я не знаю понадобится ли он мне в будущем, а ставить их в буквальном смысле везде я не хочу. Нормальный обработчик кода может распарсить код и работать с ним. Я вижу что идея удобна если ты изменил код и хочешь пропатчить его у всех. Почему нельзя скачать его заного? Ладно так надо.... но тогда зачем такие сложности, ведь можно написать код, а затем сделать по нему обычный(бинарный) патч, который и использовать. Разного рода фишки в документации помогают выделят суть утилитами, наприме найти FIXME, идея хороша и даже реализуется многими утилитами, но называть её одной из основных фичь нового языка... сложно... |
| Автор: Andrey1 20.12.2004, 17:22 | ||
А зачем их расставлять заранее? Можно потом расставить. |