D_S__ писал(а):
Вот такие вопросы бы задал:
1) Многие из мейнстримеров знают что работают с плохим кодом, и то что сами его пишут. И этим никого не удивить.
Потому что сроки всегда жмут, потому что подавляющее большинство не доучились официально, либо неофициально (диплом получили, а знаний по факту недостаточно), потому что работаем по "странным" постановкам задач (собственными ушами слышал постановку от заказчика: "Сделайте точно такое же как там, только по-другому. Показ через 3 недели" - это почти дословная фраза), потому что в IT очень все быстро меняется и больше знаний получаешь самообразованием т.д. Но все же такие люди сначала искренне надеются, что уж в критических то отраслях - в атомной энергетике. в космической отрасли и т.д. - там настоящие профессионалы, эксперты, на которых надо равняться. Но по той информации, что иногда из этих отраслей "вылетает", вдруг многие "менстримеры" с ужасом осознают, что там работают точно такие же, как и они - только опыта в предметной сфере побольше. Мало того, "мейнстримеров" туда зовут работать. Какие направления выхода из этого всего? Ведь не набрать столько преподавателей, сколько потребуется для переобучения на создание именно надежных программ. Есть же люди, которым интересно разрабатывать более надежное ПО, чем они делают сейчас, но у них нет возможности заново учиться в университетах (да и тут возникает вопрос - в каких именно?). Какие источники восполнения знаний по разработке именно надежных программ порекомендуете (книги, курсы, сайты, и т.д.)? Как вообще развиваться в этом направлении?
2) Есть очень много разных IT-конференций - но докладов по надежности программ "днем с огнем" - в основном речь идет о производительности программ, либо об улучшении поддерживаемости кода.
Не пускают или какие-то другие причины? Ведь интерес точно есть. Обозвать доклад "Почему мы ушли с С++ на Оберон" на конференции С++ или "Почему Java не может использоваться для написания надежных программ" на джава конференции - и люди в аудитории будут на полу сидеть. Будет конечно много хейтеров и споров - но внимание обеспечено.
3) Очень озадачила новость об использовании JavaScript в интерфейсах (GUI) операторов. Или может не так понял. Как вообще тестируются интерфейсы и какие самые важные требования к ним при разработке надежных
(подразумевается и к странным действиям оператора) программ?
Вопросы я зафиксировал. Можно будет через некоторое время и на радио обсудить.
Пару слов вкратце;
1. Информацию, составляющую коммерческую (или другую) тайну я, естественно, давать не буду. Критически важные отрасли гораздо более консервативны. Вещи, связанные с безопасностью, построены на более простых решениях: жесткая логика, ПЛИСы, контроллеры без ОС. Проблема выбора людей, принимающих для отраслей технические решения стоит также жестко, как и в других областях - специалистов мало, работает ухудшающий отбор. Какие сидят специалисты на технике - такие последствия. Атомная область, особенно в предыдущие годы, отличалась более высоким уровнем образования.
2. Есть понятие "интеллектуально-управляемой программы" (Дейкстра). Вы не управляете ни ядром Linux, ни Виндой, ни gcc. Это ПО управляет Вами. "Кто девушку ужинает, тот ее и танцует". Получая ужин в виде бесплатного сопровождаемого ПО, вы понимаете, что можете стать спецом в разработке прикладного ПО. Но попадаете в отношения зависимости от этого ПО - Вами будут танцевать.
Профессионал должен легко переходить от одного языка к другому (если жизнь заставит). Но если выбирать то, чем Вы сможете управлять в долгосрочной перспективе, то - Оберон.
Java гуляет в плане памяти. С Safety-Critical Java не работал, может для западных разработчиков это и приемлемо, для нас - нет. Ada - точно да. Но там только одна фирма поддержи с штаб-квартирой в Нью-Йорке. Но и Ada, и Рыбин вызывают уважение.
3. JS у Подольного. Я же говорил, что он там в процессе полета, пока не внедрено. И не могу я ругать Подольного за его спиной - столько мы с ним общались, и за рюмкой и без...