суббота, 22 ноября 2014 г.

Замечания по новой книге Н.Н. Полещука о программировании в AutoCAD 2013-2015

Замечания и пожелания по книге Н.Н. Полещука, не пропущенные цензурой Autodesk, я буду опубликовывать в этом блоге. То, что цензура пропустит, будет размещаться в соответствующей теме на форуме. Пишу замечания в Блокноте и затем копирую в блог или на форум, полагая, что выбранный мною способ обособления цитат и ссылок на их размещение в книге не вызовет каких-либо проблем в понимании. То, что я пишу - это моё личное мнение, не претендующее на абсолютную истину.

Замечания и пожелания публикуются с позиции рядового читателя, дополнительно обозначая круг интересующих меня тем, отсутствующих в указанной книге. Интересы читателя, могут отчасти не совпадать с интересами Autodesk. Возможно в будущем кто-нибудь и напишет книгу с учётом этих замечаний и пожеланий, не связывая при этом себя цепями "Autodesk Authorized Author" (хотя в это слабо верится). Я всегда выступаю за то, чтобы предоставлять информацию в как можно более точном и непредвзятом виде, без её обработки "цензурой" той или иной компании. Поскольку у меня свои собственные "политические убеждения" то, по мере необходимости, в тексте могут появляться замечания, в той или иной степени не угодные Autodesk. 

Если какая-либо излагаемая мною информация содержит ошибки, то об этом можно (и нужно) аргументированно заявлять в комментариях.

Итак, первая запись, не пропущенная цензурой в обозначенной выше теме на форуме Autodesk:

#=============================
стр. 11, Предисловие.
Абзац 2:
#=============================
> Если это для читателя критично, то он должен с особой тщательностью подойти к
выбору языка разработки. А иначе с каждой новой версией AutoCAD придётся
выпускать новую версию своего приложения.
*******************************
На мой взгляд это достаточно сомнительное утверждение. Как правило код ARX работает
во всех версиях AutoCAD, имеющих идентичное значение Major в номере сборки
(*если в них присутствует нужный программисту функционал).
Обычно это три версии (AutoCAD 2015 перескочил через одну). В то же время .Net
сборки имеют ещё большую совместимость: например, нередко можно ограничиться
двумя-тремя версиями DLL, которые будут успешно загружаться и работать в AutoCAD
2009-2015 любой разрядности (при соблюдении того же уточнения (*), что было обозначено выше).
У AutoLISP и Visual LISP совместимость с разными версиями AutoCAD ещё выше, чем
у .NET.

Что касается VBA, то до версии 7 в нём нередко наблюдались проблемы, связанные
с разрядностью AutoCAD (x86\x64), но с выходом VBA версии 7, эта проблема была в
значительной степени устранена. Касательно совместимости кода, написанного на
VBA с разными версиями AutoCAD я не силён, т.к. не пишу на этом языке. Более
точную информацию смогут дать специалисты, использующие этот язык на практике. Тем не
менее, все мы прекрасно помним, что Autodesk уже давно и весьма настоятельно
рекомендует уходить с VBA на VB.NET (или на любой др. .Net язык), предупреждая,
что планирует вовсе отказаться от использования VBA. Правда с выходом VBA 7,
Autodesk (насколько я помню), отсрочил "похороны" VBA, по
прежнему продолжая рекомендовать "уходить" с этого языка. В виду этого изучение
VBA под AutoCAD вряд ли целесообразно.

Резюмируя цитату хочу отметить, что при надлежащем отношении к процессу
разработки, компилировать код под каждую версию AutoCAD не придётся, во всяком
случае в C++, .Net языках и AutoLISP\Visual LISP. В свете обозначенной мною
информации я не вижу связи между выбором языка и потребностью компилировать код
под каждую версию AutoCAD отдельно.

#=============================
стр. 11, Предисловие.
Абзац 5:
#=============================
> Центральной можно назвать главу 2...
*******************************
Пожалуй, это всё же несколько субъективное мнение... В данном случае координаты
"центра" будут складываться из двух составляющих: предрасположенностью читателя
к тому или иному языку программирования, а так же из объёма страниц, отведённых
в книге под материал, отведённый под тот или иной язык. Например, мне в равной
степени интересен как материал, написанный на C++, так и материал, написанный на
.NET (и не только применительно к данной книге, но и вообще). Так же мне был бы
интересен материал, написанный на managed C++ (смесь C++ и .Net). Поэтому лично
я для себя не выделяю "отдельно C++" и "отдельно .Net", но смотрю на это в
комплексе.

#=============================
стр. 11, Предисловие.
Абзац 6:
#=============================
> Это можно сделать только на C++.
*******************************
Это можно сделать только на C++, если речь идёт о программировании под
AutoCAD средствами ObjectARX
. Однако используя, к примеру, MultiCAD можно в т.ч.
и средствами .Net создавать пользовательские объекты, которые будут работать в
AutoCAD, при условии подгрузки в AutoCAD соответствующих Enabler'ов (в противном
случае такие объекты будут представлены в виде proxy). Более того, один и тот же
такой управляемый DLL файл, написанный с использованием MultiCAD, может быть
успешно загружен и использован не только в AutoCAD, но и в nanoCAD, а так же в
BricsCAD. То, является ли сам по себе MultiCAD приложением ARX, выступающим в
роли обёртки - это другой вопрос. Для меня, как для программиста, интересен
набор предоставляемого им функционала, а пользователя интересует конечный
результат. Соответственно, если нужный мне пользовательский объект может быть
создан кодом .Net через обёртку MultiCAD, то наличие такой возможности так же не
стоит отрицать.
На мой взгляд это достаточно интересная информация и может дать некоторый повод
к размышлению, тем более, что книга называется "Программирование для AutoCAD
2013-2015" и из названия вовсе не следует, что контент должен ограничиваться
только тех API, которые предоставляет компания Autodesk. Я не призываю к тому,
чтобы в книгу включали информацию о MultiCAD или Teigha, но я за то, чтобы не
давать искажённой информации, вводя читателя в заблуждение, мол "вот ваша
песочница и за её границами ничего нет". Читатель имеет право получать как можно
более объективную информацию, не зависимо от того вписывается ли данный материал
в "религиозные взгляды" менеджеров Autodesk или нет. Анализ информации - это уж
дело читателя (главное, чтобы информация была действительно объективной, не однобокой).

Комментариев нет: