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

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]cousin_it@lj
2004-09-18 12:29 (ссылка)
По поводу понятности для человека - мне кажется, есть варианты лучше Паскаля. Вот, например, небезызвестный Trevor Blackwell собрал "на коленке" самобалансирующийся самокат, программное обеспечение написал на языке Python (http://tlb.org/scooter.html). Самому мне нравится Ruby, но тут возможны разные мнения.

А вот по поводу этой фразы:

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

позволю себе не согласиться. Моя, по крайней мере, работа программистом - процентов на 70 общение с клиентами и попытки понять, чего они на самом деле хотят. Еще процентов на 20 - чтение литературы. И оставшиеся 10 процентов - написание кода, отладка и так далее; дело действительно несложное, и времени занимает немного.

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

Вот так как-то вот.

(Ответить) (Ветвь дискуссии)

Мы говорим несколько о разных вещах
[info]ex_chistyak@lj
2004-09-18 12:45 (ссылка)
Я говорю о программах сложных технических комплексов, например, о программах для комплекса ДПЛА. Мне как Главному конструктору гораздо проще самому ЛИЧНО написать некоторые программы, чем разговаривать с Вами в качестве "клиента". А потом, на лётных испытаниях обнаружить, что Вы ни фига не поняли, и всё работает совсем не так, как я хочу.
Проблема формулировки технических заданий -- главнейшая и коварнейшая проблема сложных технических систем.

Умоляю Вас не обижаться, если мой текст покажется Вам резким. Эта резкость адресована не Вам:).

{+}

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

Re: Мы говорим несколько о разных вещах
[info]lazyreader@lj
2004-09-19 01:04 (ссылка)
Вы уверены, что сложность именно программ Вашего комплекса велика? Комплекс сложный, спору нет; а программы?

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

Re: Мы говорим несколько о разных вещах
[info]ex_chistyak@lj
2004-09-19 02:53 (ссылка)
Так комплекс -- это и есть программы. В программах вся логика, мозги комплекса. Аппаратура только перегоняет данные. Я умышленно отвлекаюсь сейчас от механики и аналоговой электроники: мотора, транспортно-пусковой установки, следящей антенны, ТВ тракта, самого самолёта...
Программы комплекса по своей сути являются кладезем наших знаний о том, как комплекс должен работать в той или иной ситуации. По мере проведения новых и новых исытаний программы уточняются и проверяются вновь, c уточнёнными алгоритмами. ПОэтому читабельность программ исключительно важна.
С точки зрения программирования программы, наверное, несложные. Условия, циклы, вычисления... Сортировок, поисков данных в больших объёмах, естественно, нету. Кнуту с его "Искусством..." не разгуляться:)
Если программы сложны, то именно большим количеством разнородных одновременно решаемых задач, взаимосвязями между программами, в том числе между наземными ЭВМ и бортовыми ЭВМ. Эта сложность характерна тем, что человек просто не может предсказать подчас, а что сейчас сделает комплекс? Куда повернёт ДПЛА? Откуда зайдёт на цель? Есть только уверенность, что он всё сделает правильно и оптимально. Человек, естественно, может выразить свою волю, и она будет безоговорочно Исполнена (за исключением абсурдных действий, ведущих к катастрофе)... Да ещё одна сложность! Это диапазон уровней, так сказать. Программа занимается большой задачей проводки самолёта (характерное время десятки минут) и в то же время занимается формированием управляюжщего сигнала на рулевые машики (характерное время 1 мс). Ну, и много таких штучек.
Примерно так. Программы простые. Но их много и связей много. Человеку не под силу удержать в голове все связи и реальные текущие условия. Если что-то пошло неправильно, надо разобраться, почему, и что-то поправить, уточнить, запретить... Ну, я уже повтроряюсь. Коротко: сложность как проблема.
Ну, и дороговизна лётных экспериментов, то есть отладки.

{+]

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

Re: Мы говорим несколько о разных вещах
[info]gnuzzz@lj
2004-09-20 09:27 (ссылка)
>Человеку не под силу удержать в голове все связи и реальные текущие условия.
Одновременно все удерживать, имхо, и не надо. Надо писать побольше юнит-тестов
>Ну, и дороговизна лётных экспериментов, то есть отладки.
Отладка на стенде чем не вариант?

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

Отладка на стенде чем не вариант?
[info]ex_chistyak@lj
2004-09-20 09:43 (ссылка)
Это не вариант. Это необходимый этап. Но недостаточный.
Комплекс полностью работает только в полёте. Например, траекторный алгоритм и автопилот ГрАНТа могут работать только при реальном движении. Есть и другие алгоритмы, которые невозможно полностью сыграть на полунатурной модели. Типа, как нельзя на Земле смоделировать невесомость в течение длительного времени. Во многом по тем же причинам.

{+}

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

Re: Мы говорим несколько о разных вещах
[info]golosptic@lj
2004-09-19 21:58 (ссылка)
Проблема ТЗ действительно тяжёлая, но вполне решаемая.
Особенно, если действовать в рамках технических стандартов.

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

Re: Мы говорим несколько о разных вещах
[info]ex_chistyak@lj
2004-09-19 22:12 (ссылка)
Конечно, проблема ТЗ решаемая. Я всю жизнь этим занимаюсь. И стандарты помогают, только обжествлять их не надо.

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

Re: Мы говорим несколько о разных вещах
[info]krlz@lj
2005-03-12 14:34 (ссылка)
Есть хорошая книжка по теме :
http://www.amazon.com/exec/obidos/ASIN/0321125215/qid=1110648839/sr=2-1/ref=pd_bbs_b_2_1/002-2302719-5049641

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

Re: Мы говорим несколько о разных вещах
[info]ex_chistyak@lj
2005-03-12 16:42 (ссылка)
Спасибо

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

Про мотороллер
[info]ex_chistyak@lj
2004-09-18 21:18 (ссылка)
Штука, принципиально и структурно подобная ДПЛА. Правда, ДПЛА ещё и летает. Летание сопряжено с некоторыми фундаментальными проблемами на уровне законов Ньютона, которые недоступны пониманию программистами и отсутствуют, если объект ездит по земле.

_______________
Очень похоже, как на ГрАНТе:

Цитата с Вашей ссылки:

An 8-bit microcontroller from Atmel, running code written in C using floating point arithmetic. It sends speed control commands out the serial port at 9600 baud in ASCII to the motor driver. $10 from Digikey.

Конец цитаты

Процессор точно как у ГрАНТа. Правда, язык Си (у меня Паскаль), и символьная передача в интерфейсе (у меня в двоичных числах).

И никаких "Питонов":)

{+}

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

Re: Про мотороллер
[info]yurri@lj
2004-09-18 21:30 (ссылка)
Штука, принципиально и структурно подобная ДПЛА. Правда, ДПЛА ещё и летает. Летание сопряжено с некоторыми фундаментальными проблемами на уровне законов Ньютона, которые недоступны пониманию программистами и отсутствуют, если объект ездит по земле.

Вы уж не обижайтесь, но запрограммировать ездящий объект куда проще, чем летающий.

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

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

Re: Про мотороллер
[info]yurri@lj
2004-09-18 21:30 (ссылка)
Извиняюсь, очепятка. Ездящий куда сложнее запрограммировать, чем летающий.

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

Re: Про мотороллер
[info]ex_chistyak@lj
2004-09-18 22:09 (ссылка)
Не понимаете, дорогой программист, не понимаете...
Сколько степеней свободы у твёрдого тела? Три... и три... (подсказка). Проявите познания, тогда продолжим обсуждение мотороллера, ладно? Жду ответа.

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

Re: Про мотороллер
[info]yurri@lj
2004-09-19 01:26 (ссылка)
Само движение запрограммировать легко. Добавление лишней степени свободы принципиально задачу не усложняет.

Тем более, что задача эта уже неоднократно была решена в авиации.

А вот на земле есть препятствия, и движущиеся в том числе, которые надо замечать и объезжать. И это гораздо сложнее, чем просто выдерживать азимут и угол атаки.

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

Re: Про мотороллер
[info]lazyreader@lj
2004-09-19 01:30 (ссылка)
Нет, Python там был - использовался для построения прототипа.

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

Re: Про мотороллер
[info]ex_chistyak@lj
2004-09-19 02:05 (ссылка)
Но в окончательном образце его нет? Впрочем, это совершенно неважно:)

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


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