Воспоминания о языках программирования в авиации (и не только)

Реклама
Я на МК-61 биоритмы расчитывал - очень была популярная тема в те годы. Рассчитал себе на 5 лет вперёд, программа всю ночь работала
А мы рулетку на нём сделали. Упрощённую, конечно – "красное" (чётное), "чёрное" (нечётное) и "зеро" через датчик случайных чисел. Прикольно было...
 
Вот смотрите, сейчас стремительным домкратом развиваются нейросети и прочий ИИ. И они уже могут сами писать код. А что если запилить такую прослойку в среде разработки на основе нейросети, которая сможет
.
Уже было:
=============
- Интересная пожарная сигнализация, - заметил Хаамеа, - Специально блокирует двери, чтобы в случае распространения огня никто не ушел живым. В этом что-то есть.
- У программиста кривые руки, - предположила Маи Ку, шлепаясь за столик в кресло. Велосипед она уже успела приставить к стойке.
- Тут в редакции весь софтвер с сертификатом и лицензией, - уверенно сказал Макдэйл, наливая кофе из автомата последовательно в три бумажные чашечки.
- Ну и что? – спросила китаянка, - сертификат и лицензия от кривых рук не спасает.
Переместив чашечки на столик и поставив рядом коробку с пакетиками сахара, Макдэйл авторитетно сообщил:
- Кривые руки тут не при чем. Сейчас программы пишет программа, которую написала третья программа, которую черт его знает, кто написал. По крайней мере, так нам это объясняли в колледже на занятиях по computer science.
- У черт знает кого тоже могли быть кривые руки, - резонно ответила Маи Ку.
=================
 
А мы рулетку на нём сделали. Упрощённую, конечно – "красное" (чётное), "чёрное" (нечётное) и "зеро" через датчик случайных чисел. Прикольно было...
У нас для этого был МИР-2.
Генераторы случайных чисел и ипподром на пять дорожек с тотализатором. Но только в обеденный перерыв 8-)
Так создавался советский криогенный самолет! ))
 
Это ж надо быть настолько далёким от индустрии.
Почему же, Ада и ST, распространённые языки для PLC/Embedded systems, действительно паскалеподобные.
Строгая типизация, жёсткая структура, простота и строгость синтаксиса очень приветствуются в промышленной автоматизации.
 
Бывает ещё, что заказчик, формулируя задание, не всегда представляет себе все последствия в полной мере. Вот я пару месяцев назад сделал по желанию заказчика одну штуку. Всё было хорошо, но пару недель назад на почту их отдела стало приходит по 100 с лишним email'ов в день.🙂 Они говорят: мы не думали, что их будет так много! Вот теперь у меня change request на столе лежит.🙂
 
Почему же, Ада и ST, распространённые языки для PLC/Embedded systems, действительно паскалеподобные.
Строгая типизация, жёсткая структура, простота и строгость синтаксиса очень приветствуются в промышленной автоматизации.
PL/SQL от Oracle тоже на базе Ады создан. Это если кто непосредственно в базе данных Oracle процедуры пишет, а таких много. Я, например, иногда.🙂
 
У нас для этого был МИР-2.
Генераторы случайных чисел и ипподром на пять дорожек с тотализатором. Но только в обеденный перерыв 8-)
Так создавался советский криогенный самолет! ))
Если не ошибаюсь, то в уже упоминавшейся здесь "Техника-Молодёжи" где-то в конце 80-х про Ваш самолёт читал. О многом тогда мечталось!..
 
Реклама
Ну вот, например, вчера у меня заняло 2 минуты, чтобы поправить три строчки на Python.

20 минут назад это изменение наконец-то прошло через CI.

Это к теме о скорости разработки.

Ада и ST, распространённые языки для PLC/Embedded systems, действительно паскалеподобные.
Нет "паскалеподобных" языков. Есть алголоподобные.

Покажите мне хоть один проект на Паскале для, например, esp32. Ну или ладно, покажите хотя бы на Аде.
 
Ну вот, например, вчера у меня заняло 2 минуты, чтобы поправить три строчки на Python.

20 минут назад это изменение наконец-то прошло через CI.

Это к теме о скорости разработки.
Всё правильно, языки высокого уровня затем и нужны, скрывать от программиста рутину. Эти три строки, вполне возможно, транслируются в сотни тысяч строк на ассемблере, разбираться в которых пришлось бы несколько месяцев.
Нет "паскалеподобных" языков. Есть алголоподобные.
"Жопа есть, а слова нет")
Допускаю, что паскалеподобные языки одновременно являются алголоподобными (с Алголом не знаком по причине его полной невостребованности, но знаю, что Паскаль основан на Алголе-60).
Покажите мне хоть один проект на Паскале для, например, esp32. Ну или ладно, покажите хотя бы на Аде.
Не работал с мелкими контроллерами, но поиск показал, что для ESP32 можно писать в среде Arduino PLC IDE или OpenPLC на паскалеподобном ST.

Однако не вижу смысла затевать бессмысленный спор ради спора.
Являюсь профессиональным программистом АСУТП, писал ПО на десятках разных языков (школьником начинал с машинного кода PDP-11: был такой советский компьютер БК-0010...),
поддерживаю подход: задаче - подходящий инструмент (включая Python, естественно;))
 
Ну например затем что программа написанная без всяких тредов на голом C работает примерно в 100 (СТО!!!) раз быстрее и жрет в 100 (СТО!) раз меньше памяти, чем новомодный код на питоне (пример прямо передо мной работает до сих пор, написана основа была в 1992 году еще). А код на Жабе всегда, без малейших исключений, истекает памятью, я еще ни единого исключения не встретил (даже во встроенных системах там память всегда утекает).

И были уже примеры когда хорошие программисты брали приложение которое занимало огромные объемы, писали свой вариант и он получался раз в 100 (не в 10) компактнее и быстрее. Последние примеры - код написанный когда то Бутенко и Флеровым. Так что для встроенных систем где нужна компактность - оно зачастую лучше на голом C писать и не извращаться. КОд на Вояджере до сих пор работает. Потому что его писали не быдлокодеры.

Язык Ада внедряли американские вояки решив что им нужно что то с типами. Изобрели верблюда в итоге (как известно верблюд это лошадь созданная комитетом по стандартизации). Им мало кто пользуется.
Для специфических задач безусловно. Для задач более широкого назначения и не имеющих таких жёстких требований к компактности и безопасности, питон, си шара, джаваскрипт намного более удобны и оправданы, как и использование все возможных библиотека, фреймворков, дополнений под них. Можно называть это быдлокодерство, но по факту это просто прагматичный подход. Также от внедрения нейросетей в процесс разработки, тестирования и анализа никуда уже не деться. Мир меняется, нравится это кому-то или нет
 
школьником начинал с машинного кода PDP-11: был такой советский компьютер БК-0010...
Ближе всего к PDP-11 -- это Электроника-60
Да, было время, когда приходилось самому изображать компилятор из Ассемблера в эту, не к ночи будет упомянута, систему команд и архитектуру
 
Раз уже пошла тут такая пьянка, то задам вопрос. Возможно тупой. А может и очень тупой. Вот смотрите, сейчас стремительным домкратом развиваются нейросети и прочий ИИ. И они уже могут сами писать код. А что если запилить такую прослойку в среде разработки на основе нейросети, которая сможет переводить современный высокоуровневый код на низкоуровневые языки. Вот, допустим, погромист написал код на современном высокоуровневом быдлоязыке, а ИИ его изучила, проанализировала и перевела на что-нибудь низкоуровневое и ресурсосберегающее, хоть на С, хоть прям на ассемблер. Ну а потом уже чтобы это компилировалось. Кто в теме, скажите, возможно ли это в принципе или то, что написано на всяких питонах и жабах, то на ассемблере выразить невозможно?
А смысл? Компиляторы сразу преобразуют код в исполняемую программу. От того, что они код из одного языка в начале создадут код в другом более низко уровне во ничего не изменится, кроме того, что на более низкоуровневом языке программирования так просто не воссоздать все фишки и библиотеки более высокоуровневого. То есть ии нужно будет по сути из условного фортрана создать какой-нибудь с шарп со всем функционал ом дот нет? А если речь о простой задаче, не требующий мощи более сложного языка, так и писать логичнее сразу на более низкоуровневом. А вот с этой задачей тот же дипсик справляется неплохо. На разных языках проверял его, не без косяков, но часто даёт рабочие блоки кода
 
Напишите за полчаса-час какой-нибудь простой REST-Webservice на голом С, который будет обрабатывать HTTP-запросы от клиента, а для работы с данными использовать БД. На Яве я Вам такой напишу. И ничего там утекать не будет, просто сборщик мусора работает циклически, и между циклами может что-то накапливаться, но всё в итоге нормально убирается. Да и это процесс управляемый.
Си это сильно просто (шучу конечно на счёт просто), пусть сразу на упомянутой Фортране и Ада напишут :)
 
Реклама
Никакой ИИ такое не переделает в первое. Ему просто негде научиться. ИИ то тупой, он просто угадывает _наиболее вероятный ответ на заданный ему запрос_. И того что он не делал он не сделает. ну разве что кто то ему подсунет тысячу примеров такой конвертации. Но кто бы это сделал то?
Люди делают ровно тоже самое. Я на практике проверял некоторые задачи на том же дипсике и ответы меня приятно удивили. Правда я по большей части с субд работаю kotlin/python/c# или транзскционные расширения на oracle/postgres по необходимости, а не с ассемблерами, фортранами и бэйсиками вашими.
 
Назад