На базарной площади довольно часто можно слышать высказывания об
Обероне. Мне кажется, что на базарной площади пора появиться ветке об
этой системе и языке, что-то вроде "Мысли об Обероне". Что это такое, перспективы
этой системы, что
полезного можно извлечь из него для программирования на Дельфи
(например) и др.
Ответ на
»сообщение 4445« (студент)
___________________________
Владимир Лось, ответьте, пожалуйста, на такой вопрос. Вы сказали, что разрабатываете ПО для систем управления(ракетоносителей?).
Системы управления антенн космической связи (со всем комплексом задач: от самого управления силовыми приводами и до обработки и распределения информационных потоков).
Очень интересно узнать, каким инструментом пробовали пользоваться и какой используется сейчас в вашей конторе. Спасибо.
Гы-гы-гы..... Прошу прощения! Невольно вырвалось... Это не конкретно в вашу сторону, это - о наболевшем.
Тут на 50 человек программистов я единственный, кто Си++ ЗНАЕТ и УМЕЕТ его применять.
Про Аду вообще половина или не слышала, или была в твёрдой уверенности, что это – интерпретатор...
Слова "ООП", "метод", "класс", "UML", "диаграмма взаимодействия" - для местных кадров - полная "абракадабра"...
Об Оберонах, Планах9, Инферно только от меня первого и услышали...
Вокруг – " женщины за 30" и дядьки предпенсионного возраста сидят. Оно им надо? :о)
Молодёжи практически нет, а та, что есть, побыв "молодыми специалистами", сваливает веб-странички лабать. И не только потому, что "плотют больше" (хотя, скорее всего именно поэтому :о) ). Но здесь и уровень ответственности и требований к качеству продукта на выходе несоизмерим. Это – по идее... А что на практике?...
Вы можете себе представить профессиональный уровень людей, проектирующих систему управления РВ на основе винды? А мы с этим сталкиваемся у субподрядчиков. То есть, народ даже не представляет, что такое инверсия приоритетов, чем она опасна, почему архитектура винды только и годится для "реального времени", которое в самой MS, стыдливо и пряча глаза, называют "мягким"... Почему из-за этого не то, что кадры по сети не все доходят (винда-то оказывается настолько "умная", что сама начинает по ICMP поток в сети регулировать! :о) ), но и по элементарному rs232 они не всё иногда принять могут...
Продуктов новых не создаётся. Идёт поддержка того, что есть со времён Союза.
Если пишется что-то новое, то по принципу Copy-Paste. Практически без учёта изменений требований и возможностей аппаратуры, подходов к проектированию и появления новых языков программирования.
Воевать с этим? А – смысл?
Зацените код:
typedef struct {
pid_t prima_pid;
pid_t second_pid;
short program_type;
} WIN_SEM;
WIN_SEM *Wsem=NULL;
int WinSemId=0;
int coint;
void sem_create(void)
{
Wsem=NULL;
WinSemId=0;
WinSemId=shm_open("/popup_win_sem",O_RDWR|O_CREAT,0777);
if(WinSemId!=-1)
{
ftruncate(WinSemId,sizeof(WIN_SEM));
Wsem=(WIN_SEM*)mmap(0, sizeof(WIN_SEM), PROT_READ|PROT_WRITE|PROT_NOCACHE, MAP_SHARED, WinSemId, 0);
if(Wsem)
{
memset(Wsem,0,sizeof(WIN_SEM));
munmap(Wsem,sizeof(WIN_SEM));
Wsem=NULL;
}
close(WinSemId);
}
}
И это – в уже работающем коде!!!
А когда я к автору подошёл и сказал, что здесь ошибка на ошибке сидит и это "работает" только по доброй воле ядра QNX – мне было сказано: "мы не будем это исправлять, оно работает!"
Или вот ещё:
adr_fdcsad=mmap(0, sizeof(struct csad_om), PROT_READ|PROT_WRITE|PROT_NOCACHE,MAP_SHARED, fd_csad, 0);
ptrcsad=(char*)adr_fdcsad;
csad_om=(struct csad_om*)ptrcsad;
переменные adr_fdcsad и ptrcsad потом просто нигде никак не используются...
Это я просто код "навскидку" из одного файла взял...
Такой код (создания/открытия) shared-области встречается в проекте, по меньшей мере в 40 файлах...
И это – не просто невладение конкретным инструментом (языком). Это – элементарное неумение программировать, отсутствие чувства хорошо выполненной работы, наконец, это же просто некрасиво, а отсюда – нерационально!
А после этого удивляются, почему мой С++ код ( да ещё с использованием STL ) работает быстрее их поделок на "чистом" Си... :о)
Причём учтите, что в QNX в ядре и библиотеке стараются ВООБЩЕ никаких проверок не делать. Всё вылизано для получения максимальной производительности. Считается, что программист сам понимает, чего творит. Ага, щаз! Села "тётка" за компьютер и прошлась индексом, аки бульдозером по памяти... Это просто будет везением, если случится аппаратное прерывание по нарушению доступа – тогда начинаем чесаться "а чего-то там не то...", а, бывает, иногда неделями смотрим и удивляемся: и чего это мусор всякий откуда-то берётся?...
QNX ценна своим механизмом обмена сообщениями – мощнейшим средством разделения и защиты модулей. Но и это не спасёт, если элементарно нет общих знаний по алгоритмизации и по языку... А то ведь получается: между модулями – непробиваемая стена аппаратной защиты (слався, ОСь! :о) ), а внутри каждого модуля – форменный ЗООПАРК!
Я вот свои части перепроектировал и переписал после товарища, что наваял их и свалил в Канаду (я вообще-то тихо охреневаю, что за спец туда поехал! Ну, может и правильно, может оно и к лучшему - "главное, - что б человек хороший был!" :о) ). Причём ещё больше я удивился, когда мне сказали, что оный программист проработал в Юниксах 10(!) лет...
Он им там наработает...
А что использовать, если народ о формальном представлении проектных решений просто не слышал? Рисунки, если такие приходится приводить, - на уровне "облачков" и стрелок - с нотациями-то никто не знаком!
Продукты специально никакие здесь (пока!) не использую. Слава богу, что хоть удалось убедить в целесообразности внедрения систем поддержки версий...
Начинаю собирать "заинтересованных товарищей". Веду агитацию и "сманиваю", даю книги читать, ссылки, показываю им Аду, Bluebottle, Inferno, Plan 9, NetBSD... Потому, что если хоть чего-нибудь не менять - будет полная Ж.ПА.
Очень тяжело! Я – как иностранец, не владеющий языком в чужой стране. Народ просто не понимает методик, подходов и ОО-языков...
Понимаете, какая дилема: отсюда не хочется уходить, потому, что тематика ЖУТКО интересная (и не хочется опять на "биллинг" и ещё какую "автоматизацию бизнеспроцессов и складского учёта с бухгалтериями") , а здесь что-то в устройстве конторы и подходах к проектированию менять – самому на творчество времени не хватит. Вот постепенно и "вербую" единомышленников... :о)