Комментарии 22
Звучит-то как! Почему вам стоит использовать язык Ада… Адские старые исходники, действительно, естественно писать на языке Ада.
if ... then
...
elsif
...
end if
Серьезная заявка в конкурсе на самый идиотский синтаксис условного оператора — почему elsif слитно-то?
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.
Компилятор выдаст ошибку, поскольку Integer и MyInt – это не одно и то же. Главное преимущество такого подхода в том, что если программист потом изменит определение типа, тысячи неявных приведений типа по всей базе кода не взорвут программу. Вместо этого нужно явно приводить типы – это пропагандирует хороший код, предотвращая смешение типов, которые «достаточно схожи».
Только мне кажется этот пример надуманным? Что мешает программисту явно привести тип в определённых местах, после чего замена своего типа всё так же ломает поведение программы?
ИМХО: Использование Ады это городить костыли на ровном месте, чтобы сделать элементарные вещи. Т.е. тратить полезное время на всё новое и новое изобретение велосипедов.
В каких то случаях — это может быть оправдано, но в большинстве случаев причина использования Ады есть клинический консерватизм.
Любой современный компилятор находит несоответствия типов чуть ли не на шаге синтаксического анализа. К примеру любимая мною и миллионами разработчиков Visual Studio — помещает информацию о подобных подозрениях о несовместимых типах как Warnings, которые постоянно висят как напоминания после каждого билда и, которые, можно засупрессить — но надо полагать, что делая это разработчик знает что он делает.
И для того, чтобы избежать нессоответствия типов теперь не надо оправдываться использованием древнего языка и городить кучу других костылей только для того, чтобы избежать столь примитивной ошибки.
ИМХО!
В прошлом использование "надёжной Ады" было оправдано тем, что компиляторы были недостаточно надёжны. Ненадёжность компиляторов не устраивала разработчиков, которые, для решения задач, в которых нужна была дополнительная степень защиты — придумывали дополнительные утилиты и ту же Аду.
Сейчас же, при наличии современных компиляторов, хождение по граблям с Адой не так необходимо, как многие консервативные разработчики хотят нам показать. Основная фишка Ады — дополнительная степень защиты — переложена на плечи улучшенных компиляторов и даже, местами, на операционную систему. А без своей фишки Ада всего лишь просто устаревший язык. Один из многих языков, чьи задачи больше не соответствуют духу времени.
Сложно называть язык устаревшим
Почему? Как раз таки очень просто, если учесть, что стандарт не менялся аж с какого там? 1983 года? :D
Я глянул в Википедии: действительно есть версии 95, 2005, 2012 и даже порт на .NET версия имеется… Итого 4 версии (пока что)
Хм. C# появился в 2002 и уже наклепали 8 версий. С++ — в последнее время чуть ли не каждый год новые плюшки.
А тут — 4-ре версии с момента создания.
Ну да лан — чего это я в самом деле придираюсь? Язык развивается — и это хорошо. Кому он нужен — рад за них.
Ну всё-таки подавляющее большинство ошибок делаются нечаянно. И если какие-то языковые средства позволяют существенно уменьшить вероятность их возникновения – стоит их использовать.
Только мне кажется этот пример надуманным?
Вам кажется, ибо юзкейс очень распространённый. Почитайте, например, [эту статью].(https://habr.com/en/post/198568/)
Помню в универе был курс с ним. Только там был акцент на параллельные вычисления.
А во что компилируется язык Ада?
Почему вам стоит использовать язык Ада для программирования вашей системы