Как стать автором
Обновить

Комментарии 22

Давно смотрю в сторону этого языка, но никак не начну писать. C/C++ уже видеть не могу.

Звучит-то как! Почему вам стоит использовать язык Ада… Адские старые исходники, действительно, естественно писать на языке Ада.

НЛО прилетело и опубликовало эту надпись здесь
if ... then
...
elsif
...
end if


Серьезная заявка в конкурсе на самый идиотский синтаксис условного оператора — почему elsif слитно-то?
по той же причине, что и в Python есть elif? Но там что-то никто не жалуется :)
Технически else if и elsif / elif / elseif не являются одним и тем же. else if не просто пишется отдельно, это два отдельных оператора: else относиться к предыдущему if, следующий if создает новое выражение. Следующие два выражения эквивалентны:
if (x == 0) puts("first");
else {if (x == 1) puts("second");}

if (x == 0) puts("first");
else if (x == 1) puts("second");

Компилятор Ada вполне успешно работает даже на 8080 под CP/M. Можно скомпилировать и поиграть в текстовый StarTrek.

Всем известный PL/SQL является диалектом Ады.
Там тоже с военщины же начинали
Компилятор выдаст ошибку, поскольку Integer и MyInt – это не одно и то же. Главное преимущество такого подхода в том, что если программист потом изменит определение типа, тысячи неявных приведений типа по всей базе кода не взорвут программу. Вместо этого нужно явно приводить типы – это пропагандирует хороший код, предотвращая смешение типов, которые «достаточно схожи».

Только мне кажется этот пример надуманным? Что мешает программисту явно привести тип в определённых местах, после чего замена своего типа всё так же ломает поведение программы?


ИМХО: Использование Ады это городить костыли на ровном месте, чтобы сделать элементарные вещи. Т.е. тратить полезное время на всё новое и новое изобретение велосипедов.
В каких то случаях — это может быть оправдано, но в большинстве случаев причина использования Ады есть клинический консерватизм.

Использование производных типов полезно, оно предохраняет от ошибок, например чтобы случайно не сложить количество бит с количеством байт. Компилятор обнаружит это сразу, если вы используете разные типы, иначе — долгие поиски в отладчике.

Любой современный компилятор находит несоответствия типов чуть ли не на шаге синтаксического анализа. К примеру любимая мною и миллионами разработчиков Visual Studio — помещает информацию о подобных подозрениях о несовместимых типах как Warnings, которые постоянно висят как напоминания после каждого билда и, которые, можно засупрессить — но надо полагать, что делая это разработчик знает что он делает.
И для того, чтобы избежать нессоответствия типов теперь не надо оправдываться использованием древнего языка и городить кучу других костылей только для того, чтобы избежать столь примитивной ошибки.


ИМХО!
В прошлом использование "надёжной Ады" было оправдано тем, что компиляторы были недостаточно надёжны. Ненадёжность компиляторов не устраивала разработчиков, которые, для решения задач, в которых нужна была дополнительная степень защиты — придумывали дополнительные утилиты и ту же Аду.
Сейчас же, при наличии современных компиляторов, хождение по граблям с Адой не так необходимо, как многие консервативные разработчики хотят нам показать. Основная фишка Ады — дополнительная степень защиты — переложена на плечи улучшенных компиляторов и даже, местами, на операционную систему. А без своей фишки Ада всего лишь просто устаревший язык. Один из многих языков, чьи задачи больше не соответствуют духу времени.

НЛО прилетело и опубликовало эту надпись здесь
Сложно называть язык устаревшим

Почему? Как раз таки очень просто, если учесть, что стандарт не менялся аж с какого там? 1983 года? :D

НЛО прилетело и опубликовало эту надпись здесь

Я глянул в Википедии: действительно есть версии 95, 2005, 2012 и даже порт на .NET версия имеется… Итого 4 версии (пока что)
Хм. C# появился в 2002 и уже наклепали 8 версий. С++ — в последнее время чуть ли не каждый год новые плюшки.
А тут — 4-ре версии с момента создания.
Ну да лан — чего это я в самом деле придираюсь? Язык развивается — и это хорошо. Кому он нужен — рад за них.

Ну всё-таки подавляющее большинство ошибок делаются нечаянно. И если какие-то языковые средства позволяют существенно уменьшить вероятность их возникновения – стоит их использовать.


Только мне кажется этот пример надуманным?

Вам кажется, ибо юзкейс очень распространённый. Почитайте, например, [эту статью].(https://habr.com/en/post/198568/)

Помню в универе был курс с ним. Только там был акцент на параллельные вычисления.

А во что компилируется язык Ада?

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории