понедельник, 26 ноября 2012 г.

О бесплатном сыре и мышеловках...


Как я уже отмечал ранее, приложение Bricscad BonusTools до выхода Bricscad V8 оставалось бесплатным. Конечно, для большинства пользователей ПО слово FREEWARE в лицензионном соглашении или описании программы всегда было и будет весьма притягательным, так как позволяет использовать такую программу абсолютно бесплатно и без особых ограничений. Будет справедливым отметить, что среди бесплатных программ есть действительно качественные продукты, которые постоянно обновляются, имеют полноценную поддержку и активно используются пользователями.  В их числе - операционные системы (Ubuntu, Linux), офисные приложения  (OpenOffice), графические редакторы (Paint.Net) , архиваторы (7Zip) и другие. И многие организации вполне успешно применяют такие программы в своей повседневной работе, что позволяет им существенно снизить затраты на приобретение программного обеспечения без особого ущерба для производительности. В ряде случаев, например, для работы с текстовой документацией вполне достаточно использовать OpenOffice вместо Microsoft Office, полная функциональность которого может быть и не востребована на конкретном рабочем месте.  Подсчитать экономический эффект от такой замены несложно    достаточно умножить количество рабочих мест с установленным OpenOffice на стоимость пакета Microsoft Office

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

В аналогичной ситуации оказался и я после выхода Bricscad V8. Эта версия содержала в себе значительные изменения, которые потребовали переработки большей части написанных ранее функций пакета Bricscad BonusTools. Конечно, можно было по-прежнему ориентироваться только на Bricscad V7 и не форсировать адаптацию приложения к новой версии платформы, т.к. приобретение Bricscad V8 нашим предприятием пока не планировалось. Но с другой стороны, ко мне стали обращаться пользователи из других организаций с вопросом о выходе версии BonusTools, совместимой с Bricscad V8. В итоге я решил последовать рекомендации Александра Сергеевича  Городецкого, которую он мне дал во время  нашей встречи на крымской конференции Госстроя и сделать новую версию Bricscad BonusTools  коммерческим продуктом. Для этого, помимо работы непосредственно над функционалом приложения, потребовалось дополнительно разработать новый инсталлятор, продумать систему защиты и (что также было немаловажно) определиться с ценой программы.

 Что касается первых двух пунктов, то здесь мне на помощь пришел великолепный бесплатный пакет для создания Windows-инсталляторов  Inno Setup (разработчик – Джордан Рассел).  Как справедливо отмечено на страничке Википедии, посвященной этой программе,  «…Inno Setup сегодня конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности», что еще раз подтверждает наличие действительно качественных программных продуктов в так любимой нами категории FREEWARE.

Конечно, пользователей больше устраивало то, что и приложение BonusTools также относилось к этой категории. Но следует отметить, что большинство из этих пользователей с пониманием отнеслось к «коммерциализации» программы и даже помогли установить «демократическую» базовую цену Bricscad BonusTools в ходе своеобразного опроса, который я провел перед выпуском новой версии. И  в феврале 2008 года вышел первый официальный коммерческий релиз Bricscad BonusTools V2, совместимый с Bricscad V8…



понедельник, 14 мая 2012 г.

Как LISP до Киева довел...

Кардинальные изменения платформы Bricscad не могли не коснуться такой важной ее составляющей, как API (Application Programming Interface). В числе основных нововведений Bricscad V8 были поддержка расширения DRX (DwgDirect Runtime eXtension) и новая реализация LISP с поддержкой VL-, VLR-, VLA- и VLAX- функций AutoLISP, которые широко использовались в приложениях для AutoCAD. Технология DRX базировалась на библиотеках DwgDirect от ODA (Open Design Alliance), и представляла собой аналог Object ARX (AutoCAD Runtime eXtension), но имела при этом ряд существенных отличий и ограничений по сравнению с продуктом Autodesk, что не давало оснований назвать DRX полноценной заменой ARX из-за недостаточного уровня совместимости. Но появление расширенного функционала в LISP должно было стать значительным шагом на пути обеспечения совместимости Bricscad и AutoCAD на уровне дополнительных приложений, использующих этот язык программирования. Я уже отмечал ранее, что отсутствие поддержки полноценного «автокадовского» LISP ограничивало интерес к Bricscad, как к возможной платформе для создания дополнительных надстроек и приложений. Это, в свою очередь, снижало интерес к Bricscad конечных пользователей, испытывающих необходимость в использовании таких дополнений к базовой платформе. Поэтому разработчики из Bricsys в числе первоочередных задач при работе над новой версией рассматривали реализацию расширенной версии языка LISP, максимально совместимой по своей функциональности с AutoLISP.



Понятно, что и я не был безразличен ко всем LISP-новшествам, поскольку при написании Bricscad BonusTools использовался именно этот язык программирования. И одним из первых моих действий после установки бета-версии Bricscad V8 была попытка запустить приложение BonusTools на этой платформе. Как и следовало ожидать, эта попытка оказалась неудачной. Во-первых, многие программы, входящие в состав пакета, потребовали «обратной» переработки – те функции, которые раньше писались с учетом особенностей LISP в Bricscad, теперь необходимо было переписать заново с учетом отсутствия этих особенностей, т.е. сделать их такими же, как и для AutoCAD. Во-вторых, новый движок LISP, как и платформа в целом, еще содержали большое количество недоработок и ошибок, которые и предстояло выявить на стадии бета-тестирования. Следует отметить, что на все сообщения о проблемах разработчики реагировали достаточно оперативно и каждую неделю после первого выхода бета-версии Bricscad V8 выходили ее обновления, содержащие исправления обнаруженных ошибок. Но каждое такое обновление непременно ставило и новые вопросы, и говорить о полном переходе на новую платформу пока было рано. Поэтому, работая над версией BonusTools для Bricscad V8, я параллельно занимался и доработкой текущей версии приложения для Bricscad V7.

В сентябре 2007 года на очередной «крымской конференции» Госстроя я снова показывал свои разработки для Bricscad. И совершенно неожиданно для меня мое выступление вызвало интерес у гранда отечественного программостроения в области строительного проектирования д.т.н., профессора, академика РААСН Александра Сергеевича ГОРОДЕЦКОГО – руководителя разработки таких известных программных комплексов как ЛИРА, МОНОМАХ и др.

А.С. Городецкий (фото Е.Сосновского)
В личной беседе Александр Сергеевич положительно отозвался о Bricscad, как о действительно возможной замене дорогостоящему AutoCAD и даже высказал предположение об использовании продукта Bricsys в качестве платформы для комплекса ЛИРА. Но, к сожалению, API Bricscad на тот момент еще не позволял осуществить такое портирование. А когда речь зашла о Bricscad BonusTools, то Александр Сергеевич настоятельно порекомендовал сделать программу коммерческим продуктом, отметив ее достаточный для этого уровень и пригласил выступить на семинаре "Информационные технологии в проектировании" в Киеве. От такого предложения я, конечно, не мог отказаться, т.к. это мероприятие ежегодно собирало большое число участников и ранее я уже посещал его, но только в качестве слушателя. В октябре я выступил в Киеве с докладом «Использование приложения «BricsCAD BonusTools» для оформления рабочих чертежей КМ, КМД», основные тезисы которого были впоследствии опубликованы в журнале «Промышленное строительство и инженерные сооружения» (№4, 2008г.), правда, с небольшой задержкой ровно в один год :).
Но что касалось рекомендаций Городецкого относительно коммерциализации программы, то здесь все было сложнее...

пятница, 6 апреля 2012 г.

Революция начинается...

В целом 2007 год не предвещал ничего особенного. Но как оказалось впоследствии, он стал началом отсчета совершенно нового периода в истории развития Bricscad, что, в какой-то мере, изменило и лично мою «историю развития». В то время, как я копался в функциях и переменных BonusTools, пытаясь заставить работать их на благо пользователей последней на тот момент версии Bricscad V7, в недрах компании Bricsys уже назревала настоящая революция...

В конце мая появилась первая beta-версия Bricscad V8. Работать с ней полноценно пока было сложно — как и положено для бета-версии, она содержала ряд ошибок и недоработок, которые и предстояло выявить бета-тестерам. Но что сразу удивило – это совершенно новый интерфейс. Если все предыдущие обновления не содержали каких-либо значимых внешних изменений, то в Bricscad V8 на смену привычным строгим «интелликадовским» иконкам пришли значки, выполненные в мягком и приятном «карандашном» стиле, изменился вид диалоговых окон, добавились совершенно новые элементы интерфейса, например окно «Параметры», появилась долгожданная «акадовская» Панель свойств, и многое другое...


Но главные изменения затаились в самом сердце Bricscad – его ядре. Начиная с Bricscad V8 компания Bricsys приступила к разработке своей собственной графической платформы. Для этого необходимо было практически заново переписать все исходные коды программы, создать свой фундамент, на основе которого и планировалось дальнейшее развитие Bricscad. В итоге уже первая бета-версия содержала не более 30% старого кода. И если предыдущие версии Bricscad основывались на старых библиотеках OpenDwg, то теперь им на смену пришли новые библиотеки DwgDirect от ODA (Open Design Alliance), что обеспечивало максимальную совместимость с AutoCAD. Одной из основных причин такого шага руководства компании стали узкие рамки и некоторая инертность ITC ( IntelliCAD Technology Consortium), не дававшие возможности полной самореализации Bricsys в разработке конкурентоспособной графической платформы, которая могла бы стать реальной альтернативой бессменному лидеру на рынке DWG САПР — AutoCAD. Все это и привело к возникновению «революционной ситуации», вылившейся в последующий выход компании Bricsys из ITC. Но это произошло несколько позже, в феврале 2010, когда Bricscad стал полностью независимой платформой, находящейся в полном владении компании Bricsys.В мае же 2007 года нам был представлен только прообраз этой принципиально новой графической платформы...