ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
21 мая
40665
bialix (04.10.2005 04:16, просмотров: 6226)
Уважаемые пирамидостроители и пирамидопользователи Посмотрел я на ваше детище, увидел, что проект как-то развивается. Появилась 2я версия спецификации, не совместимая с первой. Меня это нисколько не шокирует, я немного о другом хочу сказать. Меньше года назад (примерно прошлой зимой) я глядел на Пирамиду и размышлял как бы ее идеи приспособить в разрабатываемом тогда на мое работе дивайсе. В итоге я пришел к другой версии (можно ее назвать плоская пирамида или пирамида-лайт, как угодно), которая была основана не на дереве узлов, а на списке разнородных значений. Тогда это здорово упростило мне жизнь, пока количество элементов в списке не стало приближаться к сотне. Однако, меня это уже мало заботит, предыдущую работу я покинул, но кое-какие мысли и наработки остались. Я хотел бы взглянуть и покритиковать вашу пирамиду с несколько другой стороны. Пирамида имеет какую-то базовую документацию, не исчерпывающую, но это хоть какой-то существенный плюс. Имеются готовые наработки у отдельных фирм/отдельных товарищей. И хоть проект открытый, не особо видно горячего энтузиазма и пылких поклонников этого подхода. Нет коммьюнити пользователей пирамиды. Либо оно глубоко законспирировано. Можете считать это глупым выпадом, но развитие любого проекта по моему мнению, невозможно без большой практической базы, без использования в массовом порядке. В противном случае она так и останется уникальным достоянием немногих посвященных. Мне кажется, одна из причин такого положения дел в том, что с одной стороны реализация со стороны ПК является практически тривиальным решенным делом (в доке даже упоминается некий ActiveX компонент, ссылка на скачивание которого скромно умалчивается, равно как и цена его продажи). С другой стороны все упирается в маленький умненький приборчик. В котором все это дерево пирамидных данных должно рождаться, жить и умирать. Будем говорить прямо: программирование больших деревообразных структур вручную на языке Си или ассемблера — занятие не слишком приятное, творческое. Это рутина, подверженная множеству механических ошибок. И подозреваю, что после того, как однажды такое дерево будет героически создано, любая попытка отредактировать его будет вызывать резкую боль во всем теле разрабочика. Что я этим пытаюсь сказать? Только то, что любую рутинную механическую работу, поддающуюся формальному описанию, целесообразно перекладывать на плечи машины. А именно: заставлять сам компьютер генерировать на основе простого читаемого описания структуры данных требуемое дерево в виде Си-кода для дальнейшей компиляции. Если у вас такой генератор есть, то прошу прощения за весь этот пост, у меня плохо со зрением, упоминание о таком инструменте в описании я не нашел, между строк читать у меня не получается. Если вы дочитали до этого места, то вероятно вам все еще интересно узнать, что я в своем прошлом проекте занимался так сказать инструментальной частью, и для генерации сишного кода, описывающего данные упрощенной пирамиды, использовал автоматический генератор кода. И поскольку я имею некоторый опыт в этой области, то мог быть поделиться ним с разработчиками пирамиды. Немного технических деталей. В моей версии входным описанием структуры данных была простая программа на языке Python, каждый элемент списка данных описывался некоторой структурой данных языка Питон. Сам транслятор в Си-код тоже был написан на Питоне и прекрасно справлялся со своими обязанностями. Для полноценной деревообразной версии пирамиды я считаю, что целесообразно использовать входное описание структуры данных в виде XML-файла, благо его синтаксис очень удобен для описания иерархических деревоподобных стуруктур. Сам язык XML несложен в освоении, к тому же имеется огромное число коммерческих и, если поискать, то и свободных редакторов для XML. Что я могу предложить для развития проекта? Свой движок обработки XML-данных, который я могу адаптировать под специфику пирамиды, плюс генератор целевого кода на языке Си (для асма напишете сами по образу и подобию). От заинтересованных пирамидостроителей будут нужны определенные консультации, плюс тестирование моих наработок на реальных проектах. Мой язык программирования — это Python. Так что имейте это ввиду. Любой желающий потом сможет переписать мой код на Дельфи или на любом другом языке, если ему это нужно. Мне это не нужно. Чего бы я хотел взамен? Да собственно ничего. Мне бы хотелось, что бы пирамидостроители уделили немного больше внимания своему детищу и довели его до продакшн-уровня, до уровня готового решения, которое можно использовать без глубокого проникновения в разные технические детали, на первых порах не относящихся к сути. Еще бы мне хотелось, чтобы для проекта была бы собрана универсальная библиотека кода под разные процы (я помню видел пробегал пример для АВР). Для развития коммьюнити пользователей пирамиды необходимо выделение домена третьего уровня вида pyramid.caxapa.ru, написание информационных статей для печатных изданий по электронике/автоматизации, плюс перевод документации на английский язык и анонсирование этого проекта в англоязычных сообществах разработчиков. Приток обширной массы англоговрящих специалистов, число которых пожалуй будет поболее наших прекрасных спецов, приведет к следующему витку развития проекта. В дальнейшем я вижу несколько вариантов зарабатывания денег на дополнительных инструментах для пирамиды (на готовых утилитах и проч.), но основная идея открытости проекта должна сохраняться, т.е. вся документация и базовые инструменты для пирамидостроительства должны быть доступны по открытой лицензии. Если кому интересно, могу вкратце описать свою вариацию плоской пирамиды. Мы даже начинали этой зимой общаться по электронке с товарищем под ником undefined, если я ничего не путаю, но тогда в виду непрекращающегося цейтнота, полного отсутствия времени и как следствие желания, дискуссия быстро заглохла. Если упрощенный вариант имеет право на жизнь, то его можно довести до ума в рамках имеющейся спецификации.