Эта статья посвящена моему отношению к вопросу выбора софта для написания программ.

Прежде всего, хочу определить два "типа" "программистов".

ПРОФЕССИОНАЛЫ - люди, которые занимаются программированием на работе (наемные рабочие). То есть программирование является их основным видом деятельности, зАработка, если хотите.

ЛЮБИТЕЛИ - те, кто работает на стройке, заводе, в нотариальной конторе ...., а программирует в свободное время. Программирование для "любителя" - это хобби. Так сказать, отдых от основной работы.

Нужно отметить, что степень компетентности, качества создаваемых программ ни как не зависит от принадлежности к ПРОФЕССИОНАЛАМ или ЛЮБИТЕЛЯМ. Качество результата труда определяется способностями человека, и не зависит от способа зарабатывая этим человеком хлеба насущного.

ПРОФЕССИОНАЛЫ "связаны по рукам и ногам" условиями своего контракта на работе. Задачи на разработку "спускает" работодатель. Задачи гораздо бОльшие чем у ЛЮБИТЕЛЕЙ. Поэтому ПРОФЕССИОНАЛЫ вынуждены пользоваться "большИми" "камнями", мощным , и как следствие сложным софтом. Наверное, их не встретить на форумах по программированию, да и такую статью, по выбору софта, они читать не будут...

Написанное ниже относиться с ЛЮБИТЕЛЯМ, коим и я являюсь...

Выдвину первый тезис - лучшая программа (редактор) - это та, к которой привык...

По разным причинам человек выбирает тот или иной редактор, компилятор. Начинает "в нем" работать. Привыкает... И, по истечениие какого-то времени, готов вести спор с другим человеком о удобстве "своего" редактора. На мой взгляд, такой спор не имеет истины! Так как каждый из спорящих прав.

Тезис второй - все определения типа: хороший, удобный,... красивый являются субъективными и, следовательно, не могут использоваться для оценки продукта.

В связи с вышеизложенным, считаю главной - проблему НАЧАЛЬНОГО ВЫБОРА продукта (редактора, компилятора)...

Остановлюсь на примере выбора компилятора Си для AVR....CodeVisionAVR и WinAVR, как на самых "доступных" для "приобретения"....

Продукты явно разной "весовой" категории... CV_AVR - проще, WinAVR - сложнее. Возникает вопрос - что выбрать?

Практически на каждом форуме, где знают про AVR, вопрос выбора затрагивается.... И, как правило, мнения таковы - первый из продуктов проще в понимании (освоении), но "делает" более длинный код, а главное - хорош только для малых проектов и не годиться для больших...

Начну с оценки "размера" проекта.... Как определить: проект еще маленький или уже большой? Кто может сказать сколько строк кода должен содержать проект, чтобы быть БОЛЬШИМ? ( "Куча - это сколько?" (с)"38 попугаев".)

Я думаю, что степень сложности проекта - это параметр, который в бОльшей степени субъективенн. Один и тот же проект для одного человека большой и сложный, а для другого он - проше простого...

Для оценки возможностей редакторов в создании "больших" проектов было бы правильным, на мой взгляд, сравнивать редакторы (компиляторы) по принципу: " ....вот в ЭТОМ редакторе ДАННЫЙ проект осуществить можно, а вот в ЭТОМ редакторе - нельзя. Потому что...."

Это объективная оценка... И в связи с этим следующий вопрос: есть ли пример такой ситуации для перечисленных выше программ? Я такого не знаю... Напомню, что речь ведется о ЛЮБИТЕЛЬСКИХ проектах, а не о создании "операционки" реального времени (хотя, мне кажеться, что ограничений на величину (глобальность) создаваемого проекта в CVAVR нет вообще, или же ограничение наступает тогда, когда из-за маштабности проекта, его реализация не под силу одному человеку, а лишь группе программистов)

Теперь о том, что один редактор делает код длиннее чем другой.... Не смотря на то, что длина компилируемого кода - это величина численная, т.е. объективная, для принятия решения о выборе редактора она, так же не годится. Поясню.

Предположим, что задуман проект создания блока управления КВ трансивером... Сколько нужно придумать всевозможных фунцкий для того, чтобы откомпилированый код не уместился во флеш, скажем ATmega16? Да еще, чтобы WinAVR "вписался" в объем, а CVAVR нет... Скорее "создатель" блока управления трансивера устанет от придумывая фуннкий, чем "наполнит" флеш...

И вот теперь, главное в вопросе выбора... - человеческий фактор.

При выборе из двух предметов (устройств, редакторов и т.д.) одинаковой стоимости (доступности), но разных возможностей любой из нас выберет тот, у которого возможностей больше. При этом забывая, или сознательно не беря во внимание, то, что бОльшие возможности предполагают бОльшие затраты на освоение, если это программный продукт, на содежание, если это "железяка" . На мой взгляд такой выбор не всегда оправдан. Простое осваивается быстрее. Значит быстрее будет получен результат - законченное изделие. Если, по каким-либо причинам, простое перстало удовлетворять Вашим потребностям, то всегда можно "перейти" на более сложное. А "имея в багаже" знание простого - сложное осваивается быстрее.

Таким образом, при выборе программного продукта для работы по программированию определяющим, на мой взгляд, является сложность проектируемых устройств (конечного продукта). И только невозможность создать устройство на "простом" ПО может служить основанием для выбора "сложного".

(C)STAS633

30.05.06-03.07.06г.

На главную

Hosted by uCoz