The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"0-day уязвимость в IPv6-стеке Linux, позволяющая удалённо вы..."
Отправлено WatchCat, 18-Май-23 13:02 
Наиболее известное из отечественного - бортовое программное обеспечение самолёта Бе-200. Самолёт успешно летает. В отличие от Боинг 737 MAX.
Применительно к теме данного обсуждения надежности операционных систем - ОС Muen. 64-bit only,увы. Если тут есть любители экспериментов,имеющие свободный 64-разрядный комп - интересно было бы узнать о результатах попытки запуска. Я-то нынче в деревне живу,возраст знаете ли, поэтому провести этот эксперимент мне технически затруднительно.

Из написанного на Аде мной лично за деньги - самое большое это как ни странно был складской учет для типичной в 90х торгово-посреднической конторы. Тогда было время полной свободы так сказать индивидуального творчества для программистов. Я еще и СУБД использовал довольно экзотическую,не табличную,а иерархическую, и очень быструю,пиратскую копию MDBS. Исходников набралось на полмегабайта,работало вполне нормально. Компилятор бы Meridian ADA for DOS, тоже конечно пиратская копия как и всё в то время.

Ада несколько опередила свое время - тридцать лет назад язык, у которого описание стандарта занимало полтысячи страниц, казался многим слишком сложным для освоения в сравнении с распространенными тогда языками. В то же время уровень сложности большинства проектов еще не требовал использования таких серьезных инструментов. Сейчас документация такого размера на язык программирования - даже и не самая большая из существующих. Переведенные на русский язык книги описывают только базовую часть стандарта Ады. Хотя и достаточную для многих,если не большинства, случаев также как в большинстве случаев достаточно С89. По дополнениям стандарта ADA95 и ADA2012 документация только англоязычная. Хотя надо сказать что написана она достаточно удобно для восприятия даже при не самом хорошем знании иностранного языка.

Отличный компилятор GNAT - есть в репозиториях многих линуксов. Он не единственный но самый доступный и свободно распространяемый. Даже сейчас,в условиях новой холодной войны. Это к вопросу связанности Ады с военными. Она ничуть не больше чем например у протокола TCP/IP который тоже первоначально разрабатывался для военных применений но ничего "мирного" ему на замену так всё еще и не доделали до готового к массовому внедрению вида. GNAT есть и под архитектуру ARM. Работает. Можно софт для всяких "малинок" и "апельсинок" писать. Причем вопреки мифу о тяжеловесности Ады - даже прямо на этих "фруктах" можно. Это тяжеловесна Ада была для IBM PC AT 286. Хотя с некоторыми ухищрениями работала и там (личный опыт - см.выше про складской учет). А так я несколько лет назад извратился,поставив полноценный Дебиан на "морально устаревший" смартфон HTC HD2 - c Иксами, всё по-взрослому,клава,мышь и сеть - через usb-host. Получился маленький но вполне настоящий ARM-комп. И смотрел что на этом способно работать. Ада и ее компилятор были полностью работоспособны.

Основная сложность для программистов,переходящих с Си на Аду - отличие в методологии создания программ. Если использовать Аду "по-сишному" то это будет и неудобно для программиста и неэффективно с точки зрения использования возможностей самого языка. После сишной привычки к вольному обращению с типами - компилятор Ады будет жестко бить по рукам и этим изрядно бесить. Придется себя переучивать на более строгий стиль,что безусловно полезно. Получится не сразу,потребуется время чтобы разобраться как надо писать код чтобы контроль типов помогал,а не мешал. Возможность создания хитрых производных типов и последующей удобной работы с ними - это сильная сторона Ады. В современном Си это тоже можно,но из-за того что Си допускает всякие вольности с привидением типов - обычно не заморачиваются и поэтому методологию типизации данных знают слабо.
Если же начать с изучения методологии,положенной в основу этого языка - то всё там выглядит разумно,логично и удобно. И существенно проще для понимания чем какой-нибудь Хаскель или упаси Боже Лисп.
Согласен,что что-то небольшое будет быстрее сляпать на Си,а малый размер исходника позволит отловить ошибки. На Аде мелочь писать тоже можно,но это отчасти стрельба из пушки по воробьям. Впрочем - если есть такая хорошая пушка и умеешь из нее стрелять - то почему бы и нет. А вот когда в проекте становится столько кода,что начинаешь в нем тонуть и путаться - тут от Ады очень даже польза будет так как она не дает делать простых ошибок. Которые тем не менее потом надо долго вылавливать. Впрочем, возвращаясь к теме вышеописанной уязвимости в ядре линукса - в подобных случаях Ада не поможет. Потому что тут виноват не язык,а программист,написавший на нем весьма странную обработку ошибочной ситуации. Ни в Си ни в Аде детектирование ошибочной ситуации не отменяет необходимости корректно её потом разруливать не роняя ядро в panic.
Основное же на мой взгляд неудобство "адского" программирования - это отсутствие библиотек на все случаи жизни,к чему мы все привыкли за последние годы. Библиотеки есть,но их существенно меньше и не все сделаны удобно.
Я еще застал времена когда интернета небыло и скачать готовое было негде. Поэтому приходилось напрягать мозги и писать самому руками то,что сейчас не думая дёргают из готовых библиотек. Потом правда пользователи нередко получают dll hell, но это уже становится головной болью этих пользователей,а не программистов.

Сишные библиотеки подключать можно,но это обычно требует написания "переходников" для правильного и удобного приведения внутреннего представления типов данных,ну и понятно что надежность снижается так как "сишные" ошибки в библиотеках остаются. Разве что адский контроль типов (в прямом и переносном смысле:) поможет не передать в библиотечные функции чего-нибудь такое от чего им станет плохо.
Сложнее всего ситуация с преобразованием представления строковых данных. Хотя поддержку "сишных" строк(с нулём в конце) в Аде написать можно,я именно так когда-то для себя и сделал именно потому что приходилось стыковать свой адский код с чужим сишным. А сейчас для Ады существует даже готовая поддержка юникодных строк с многобайтовыми символами если кому-то потребуется.
Готовые переходники к сишным библиотекам тоже есть,но по моему наблюдению нередко сделаны слишком примитивно,а то и вообще каким-нибудь скриптом-автогенератором. От этого пользоваться ими из Ады оказывается неудобно. Такое ощущение что некоторые из них сделаны лишь для демонстрации самой возможности,а не для реального применения.

На мой взгляд если у Ады какая проблема и есть - то только отсутствие популяризации. Молодежь часто или вообще не знает об этом языке ничего кроме названия или слышала только какие-нибудь мифы типа того что этот язык используются только военными и мирных применений иметь не может.
Хуже всего что о возможностях и достоинствах Ады не знают те кто принимает решения в области руководства программными проектами. Вспоминается известная в интернетах фраза "А что,так можно?".
Даже один заинтересованный и более-менее квалифицированный (на уровне советского ВУЗа хотябы) программист вполне способен сконфигурировать удобное рабочее окружение для написания кода на Аде,найдя и настроив готовые компоненты и дописав недостающее под свою область. Но да,такого чтобы запустить один инсталлятор, проставить галочки и всё сразу поставилось и настроилось - такого нет. Да и невозможно оно без введения существенных ограничений на применимость инструментов.
  

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру