Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет chistyakov ([info]chistyakov)
@ 2004-09-18 22:26:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Настроение:кипение замысла БРАТа-фоторобота
Музыка:Итальянская 60-х

ГрАНТ. О программировании и инженерах
ИЗ-ЗА ПЕРЕГРУЗКИ ТЕМЫ ОБСУЖДЕНИЕ ЗДЕСЬ ЗАКРЫТО, СВОИ КОММЕНТАРИИ ОСТАВЛЯЙТЕ ЗДЕСЬ (у меня всё и всегда открывается в новом окне. Давите, это окно не пропадёт, почитаете ещё)

ГрАНТ привлёк внимание ЛЖюзеров. Многим понравился этот ДПЛА:



В дискуссиях по ГрАНТу появились какие-то странные люди, позиционирующие себя как "программисты". Мне удивительно.

Программирование -- это низко квалифицированный труд, типа черчения. Я считаю, что инженеры в процессе создания технических систем должны реализовывать свои замыслы и программируя на ЭВМ, в том числе. Инженер должен уметь находить и реализовывать конструктивные, аппаратные и программные технические решения.

Профессия "программист" -- это нечто типа секретарь-машинистка, что ли? Чертёжник? Что это за односторонне развитый специалист, который может только программировать? Главное, ведь ЧТО программировать, правда? Задача -- главное.

Сам я услугами программистов не пользуюсь уже 20 лет, ввиду огромного количества ошибок, которые они вносят в замысел Главного конструктора. Искажения замысла выявляются уже на поздней стадии, на лётных испытаниях, как правило.
Кажущаяся экономия времени квалифицированных инженеров при проектировании системы за счёт привлечения специалистов-программистов потом оборачивается огромными потерями невосполнимого времени и других ресурсов, включая моральные.

Меня поучают какими языками программирования пользоваться. Это удивляет. Возникает ощущение, что молодые люди думают, что до их появления на свет никто ничего не знал, не умел делать, или вообще никого и ничего не было. Слава Богу, с появлением этих людей на свет всё встало на свои места. Русская техника спасена, наконец-то!

Для меня важнейшим свойством программы является её понятность для ЧЕЛОВЕКА. А вовсе не какая-то надуманная "эффективность кода". Программа -- это прежде всего конструкторский документ, на основании которого можно и через годы, когда уже не будет в живых автора программы, понять, по какому алгоритму всё это на самом деле работает. Ни один документ, кроме текста программы, не обладает достаточной для этой цели достоверностью. В наглядности и алгоритмичности нет равных языку Паскаль. Поэтому я и пользуюсь им. Когда надо что-то посчитать действительно быстро, то нет труда написать критический кусок на Ассемблере. Таких кусков набирается совсем немного.

Дополнение (навеяно комментарием [info]ob_zor@lj:

Известны 10 преимуществ Паскаля перед Си:)
Я приведу только одно, но самое важное:

10. На Си Вы можете написать:

for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

На Паскале Вы НЕ МОЖЕТЕ написать:

for(;P("\n").R-;P("|"))for(e=3DC;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);

Кстати, может кто-нибудь перевести эту абракадабру на Паскаль?
_______________________________________________________________________









Для тех, кто не посмотрел ранее выложенные фотки ГрАНТа:

ГрАНТ. Эвакуация с места посадки. Зима 2002 года
ГрАНТ в полёте. Зима 2002 года
Старт ГрАНТа. Зима 2002 года
Комплекс ДПЛА ГрАНТа -- венец советского тактического ДПЛАстроения

{+}



(Читать комментарии) - (Добавить комментарий)


[info]pavloff@lj
2004-09-20 01:49 (ссылка)
>И когда надо будет через два года переделывать большой фрагмент кода, а человек, его разрабатывавший, уже уволился, вот тогда и становится видна разница между хорошим и плохим языком, между хорошим и плохим программистом.
И ещё как видна.

Тьфу, блин! Да не разница будет видна между хорошим и плохим языком, а разница между хорошей и плохой системой организации производства ПО! В нормальной системе должно быть таколе понятие как ДОКУМЕНТИРОВАНИЕ. Про doxygen слышали?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]alexclear@lj
2004-09-20 01:56 (ссылка)
И что doxygen?
Уже спасает от memory leaks?
Или от buffer overrun?

(Ответить) (Уровень выше)


[info]yurri@lj
2004-09-20 03:20 (ссылка)
Слышали и про RUP. Но вы вот что скажите.

Поддерживать документированный код на асме всё же тяжелее, чем на языке высокого уровня. Так или не так?

Когда Чистяков отойдёт от дел, его "профессиональный" код на Паскале, скорее всего, будет переписан преемником заново. Вот и весь итог.

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

Вот где фигня-то.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]pavloff@lj
2004-09-20 08:18 (ссылка)
>Поддерживать документированный код на асме всё же тяжелее, чем на языке высокого уровня

Я так понимаю, что вопрос подразумевает недокументированный код на ЯВУ?
Если да - хм... Вот тут я был бы не столь категоричен в оценках, ибо документирование документированию рознь. Да и потом - чисто из своей практики (конечно, не претендуя на абсолютное знание) могу заметить, что, к сожалению, код программистами либо документируется либо нет. Документирование типа "ну вот функция MyFunk1 вызывает MyFunc2, кроторая тривиальна" - я б документированием не назвал. Документирование, как я считаю, должно дать возможность человеку, не писавшему код, без проблем его понять.
По поводу величины проекта - мне сейчас приходится (в числе проектов) руководить разработкой проекта маленького (всего-то 50.000 строк кода ядро) но с весьма запутанной архитектурой. И документирование было введено мной в приказном порядке, "железной рукой", поскольку стало ясно, что во всех взаимосвязях в ядре создаваемого продукта сам чОрт себе ногу сломит без документирования.
Вообще, как мне кажется, "величина" проекта - несколько надуманная категория (ну если как метрику брать количество кода, файлов и т.д.). Она мало что показывает. А вот некая "алгоритическая сложность" - это иное... Тут как еще посмотреть, насколько сложны проекты для ДПЛА...
Там уже начинаются проблемы, опять же на мой взгляд, с пониманием сути того, что должна делать программа. Пусть и маленькая.
Нашшот Паскаля, как мне кажется, у автора журнала выбор обусловлен тем, что при создании ДПЛА программирование его бортовых ЭВМ - одна из задач. И городить ради маленького кусочка проекта какой-нить "отдел программистов" (со всем причитающимся - CASE'ами, автоматической системой документирования, bugzill'ой какой) нет смысла. Потмоу взят Паскаль, как язык, "заточенный" под структурное программирование (насколько я могу представить себе програмирование БЭВМ летательных аппаратов - там ООП какого даже близко нет), с хорошо понимаемым кодом, легкий для освоения инженерами. Инжеенру-то авиатору нужно воплотить в коде свой алгоритм (типа "элерон правого крыла - вниз на столько-то градусов, затем мощность двигателя увеличиваем на 30%, затем ..."), и воплотить самому, а не объяснять месяц программисту что сделать надо. Вот так мне думается...

P.S. Вообще обсуждение под этим постом лично мне все больше напоминает "меренье х@ями"... В конце концов - прекращать надо... Помоему есть проблема, которую я осветил внизу комментов - непонимание между программистами и спецами в других областях. Вот это - да, проблема...

(Ответить) (Уровень выше) (Ветвь дискуссии)

Верно
[info]ex_chistyak@lj
2004-09-20 08:33 (ссылка)
Работающие люди всегда поймут друг друга. А любители попиздеть всегда найдут повод.

(Ответить) (Уровень выше)


[info]yurri@lj
2004-09-20 18:46 (ссылка)
Да, у Чистякова частная задача, где его методы действий наверняка окупаются. Никто и не спорит.

Проблема в том, что на основании своей конкретной задачи Чистяков утверждает, что программирование и информатика - это вообще лженауки, профессии "программист" не существует, а "выпуск программного продукта" - детский лепет перед выпуском его летучей перделки. Почитайте ветки дискуссии.

Вот о чём речь-то идёт.

А нравится если ему писать на Пасквиле - да пусть пишет, мне-то какое дело.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]pavloff@lj
2004-09-20 21:49 (ссылка)
Я уже там внизу писал о проблеме взаимопонимания между разработчиками ПО и инженерами в тех областях, где оно нужно. Когда программисты пишут ОС, СУБД или там тесктовый редактор пускай какой навороченный - все, вроде, ничО. Им вполне хватет своих знаний для понимания предметной области, с которой работают.
А вот шаг в сторону (авиация, космос, например) - тут то "дурь каждого становится видна". Проичем - обеих сторон. Программист, в случае программирования БЭВМ, выступает как бы в роли подрядчика, делающего кусочек большой системы. А, допустим, г-н Чистяков - в роли закзачика этого кусочка. Он-то понимает, какую роль кусочек в системе играет, а программист - нет. Образование не то... Вот и получается, что господину Чистякову проще писать на Паскале самому, чем объяснять программисту что и зачем.
Можно пофантазировать и представить себе обратную ситуацию - допустим вы решили создавать информационную систему, в которой надо использовать ДПЛА Чистякова. Ну... пусть они пароли, предположим, юзерам по городу доставляют, назначаемые админом ;o))
И Чистяков выкатывает вам ДПЛА, у которого пароль пишется на борту агромнейшими буквами и так он летит к клиенту ;o)) Вы, естественно, в ужасе - теперь грош цена всем вашим выстраданным криптомодулям, прахом пошли ночи, проведенные за программированием мощных криптоалгоримов, бессмысленны системы аутентификации пользователя... Вы, в бешенстве, приходите к Чистякову и начинаете его пинать - "Да что ты мне подсунул!!!???". А он вам начинает рассказывать, что вы ну ничерта не понимаете в проектировании, строительстве и управлении ДПЛА. А красочкой-то какой на борту написано, а!
А все почему? Да потому, что ну совершенно Чистяков не понимает, зачем в вашей системе пароли, а вот зато вешать дополнительную бронированную коробочку на ДПЛА, куда админ бумажку полжит - уперся - ну уж нет, вес не тот, центровка сместилась, аэродинамика ухудшилась...
И получается конфликт заказчика и исполнителя, в основе которого непонимание исполнителем сути того, зачем заказчику то, что он делает.
Вот и все проблема, до копейки.
А дальше уже в тредах пошла ругань, взаимное калометание и мерянье половыми органами...

(Ответить) (Уровень выше) (Ветвь дискуссии)

Прекрасно!
[info]ex_chistyak@lj
2004-09-20 22:20 (ссылка)
Очень понравилось с паролем. Должны понять. Хотя мне кажется, что стремления понять немного, увы.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Прекрасно!
[info]yurri@lj
2004-09-21 03:19 (ссылка)
К сожалению, ситуация с паролем тут не при чём. Ниже я написал, почему именно.

Претензии к вам лично я предъявляю вовсе не по этим поводам.

(Ответить) (Уровень выше)

Вы опять не поняли
[info]yurri@lj
2004-09-21 03:17 (ссылка)
Так если бы Главный наш Конструктор говорил, что в его в проекте программирование - эпизод... Никто бы тогда не спорил.

Просто наш ГлавныйИнженерУтверждённыйЦККПСС™ на основе своей сторонней по отношению к предмету спора работы утверждает:

а) Выпустить программный продукт - не стоит труда, майонез проще выпускать.
б) Профессии программист не существует.
в) "Лучший код пишут Главные Конструктора" - это цитата.

Понимаете, не "достаточно хороший код", не "подходящий для моей задачи код", а именно что "самый лучший". А вы все, мол, говно.

В этом конфликт.

(Ответить) (Уровень выше)


(Читать комментарии) -