Ada_Ru форум

Обсуждение языка Ада

10 причин выучить Аду. Страница 2

Оставить новое сообщение

Сообщения

Пример того, как ничего страшного не случится если кто-то из динозавров внезапно вымрет.

Не уловил суть примера. Связь прецедент-антецедент не прослеживается. И хуже того, само употребление слова "динозавр" в данном контексте является явным признаком тупого троллинга.

А Ада таки вымирает, судя по тому же tiobe.

Причем тут tiobe? он является не более чем хроникой слетевшего с катушек и катящегося в тартарары общества потребления, которое полностью утратило ориентиры и понимание того, что важно, а что нет. Количество ежегодно открываемых собачих парикмахерских сравнивается с количеством ежегодно открываемых АЭС, на основании чего делается вывод что общество функционирует благодаря собачим парикмахерским.

Т.е. она безвозвратно ушла по тропе COBOL'a, и оттуда уже не вернётся. Вот С++ ещё трепыхается и там еще есть какой-то шанс.

Бла-бла. Пока что мы видим как раз наоборот что к нам идут новые сектора индустрии, с которыми мы раньше вообще не имели никакого дела, именно потому что они начинают утрачивать контроль за сложностью своих систем, и хотят поучиться у авиации. Медицинские приборы, автомобили. Да автомобили. У нас люди не вылезают из японских командировок, эта страна у нас на радаре несколько лет назад отсутствовала вообще.

В наших АЭС вон, даже Оберон используют, для некоторых вещей. :-)

Ну и отлично.

А в марсоходе нет Го ровно по той же причине, почему в Вояджере нет Ады :-)

Понимаю вас. В каком году предлагаете вернуться к этой теме?

Но напомню, что речь шла о том, что мол любой современный индустриальный язык невозможно знать полностью.

Это просто старый дед-пасечник кошмарил молодёжь.

Я просто показал контрпример - Go это современный промышленный язык программирования. Он обозрим.

Ну так и индустриальная ада прекрасно обозрима, и представляет из себя малююююсенькое подмножество полной ады. Это же верно и для С++. Кто же будет полный язык высокого уровня использовать в сертифицированных системах. Дураков нет.

Если конечно вы считаете что промышленный язык программирования это только такой язык, который используется в точности той же нише (а все другие ниши - это не промышленное использование вовсе), что и Ада, и обладает всеми качествами присущими Аде, то да, увы, там только Ада, и тогда тезис верен, ибо выраждается в тезис, что "любую современную Аду невозможно знать полностью".

Я ничего такого не считаю. Ада и С++ вполне взаимозаменяемы. Но статистика показывает, что проекты на С++ имеют серьезные проблемы с обеспечением качества, и имеют более высокую стоимость жизненного цикла на строку кода. Язык С++ выбирается теми, кто посмотрел tiobe. А так в целом - ССЗБ, были бы деньги.

Повторюсь только, что у нас проблем нет, пока не вымираем)))

2017-01-19 15:15 GMT+03:00 Vadim Godunko vgodunko@gmail.com [ada_ru] < ada_ru@yahoogroups.com>:

>

>

On 01/19/2017 11:34 AM, Alexey Veselovsky alexey.veselovsky@gmail.com [ada_ru] wrote:

>

Что такое "индустриальный язык"?

>

Наверное это то, что используется для проектов живущих не одно

десятиление.

>

При такой постановке вопроса, "современные языки" - это языки которые были 20 лет назад и более. Эти современные языки не очень современны :-)

И любой язык - проживший десятилетия - обрастёт таким

количеством фигни...

>

Или не обрастает. Зависит же от того, как именно он эти годы жил и жил ли. Если у нас уникальный язык под этот проект, и проект живет десятки лет и в эти десятки лет ничего в проекте менять не нужно (встроенка, всё написано без ошибок и так далее - так бывает), то он за эти десятки лет и не изменится никак. Вон, язык на котором писано ПО (и которое обновлялось относительно недавно, кстати) Вояджера отличненько сохранился с 77 года, и ничем не оброс. Эталон!

Если же язык постоянно используют в новых проектах, то вот тогда он начинает обрастать свежими тенденциями из софтверной индустрии, вон стало модно в конце 80-х начале 90-х ООП в той самой современной программной индустрии в С++ и других ЯП из за широкого распространения GUI и революции в пользовательских интерфейсах для ПК - в Аду рраз, и завезли ООП, и внедрили как получилось.

>

В современной программной индустрии, которую наблюдают все, ничто не живет, скажем, больше трёх лет. Через три года (а всё чаше и чаще это шесть месяцев) хотите-ли или не хотите-ли, но Вас вынудят обновиться, улучшиться, проапдейтиться, проапгрейдиться и т.д. При такой "спешке" логично что ставятся иные задачи и цели. Тут не важно на чём писать, очень скоро это всё будет в помойке. Тут важно насколько быстро можно наструячить, снять бабки и забыть.

>

Эмм.. Нет. Обычно нужно еще и поддерживать и развивать. Кодовая база обычно да, постоянно меняется (см. те же браузеры), но очень редко переписывается полностью с нуля (см. например servo - как раз попытка переписать).

>

В какой-то мере это относится и к марсоходам. Это единичное изделие. Второго такого не будет - да оно и не нужно.

>

Относительно марсоходов замечание - там (по крайней мере когда они по марсу активно ползали) ПО обновлялось ежедневно. При этом любая ошибка в ПО могла обернуться потерей марсохода.

Т.е. марсоход единичный, штучный, ПО - нет.

Коллеги, мне бы хотелось услышать Ваше мнение почему надо изучать/осваивать язык программирования Ada, а не наоборот. Как вариант – почему лично Вы применяете язык Ada. Если не удобно в публично – напишите мне напрямую ksiby@... . Очень нужна “помощь зала”.

 

С уважением, Сергей.

Email: ksiby<A>mediascan.by

http://www.mediascan.by

 

From: Alexey Veselovsky alexey.veselovsky@... [ada_ru]

Sent: Thursday, January 19, 2017 2:56 PM

To: ada_ru@yahoogroups.com

Subject: Re: [ada_ru] 10 причин выучить Аду

 

 

А какая принципиальная разница между С++ и адой? вы их вроде через запятую как динозавров перечислили, нет?

 

 

Пример того, как ничего страшного не случится если кто-то из динозавров внезапно вымрет. А Ада таки вымирает, судя по тому же tiobe. Т.е. она безвозвратно ушла по тропе COBOL'a, и оттуда уже не вернётся. Вот С++ ещё трепыхается и там еще есть какой-то шанс.

В АЭС - напополам. Если система управления от ATOS то будет Ада, не сомневайтесь. Не знаю что на марсоходах, но перед тем как по марсу ходить туда следовало долететь, и это вы будете смеяться тоже ада.

 

 

В наших АЭС вон, даже Оберон используют, для некоторых вещей. :-)

Чего не просматривается от слова никак - так это всяких растов и го. Но когда у марсохода будет своя страница в твиттере - это напишут на го, уверен)))

 

А в марсоходе нет Го ровно по той же причине, почему в Вояджере нет Ады :-)

Но напомню, что речь шла о том, что мол любой современный индустриальный язык невозможно знать полностью. Я просто показал контрпример - Go это современный промышленный язык программирования. Он обозрим.

 

Если конечно вы считаете что промышленный язык программирования это только такой язык, который используется в точности той же нише (а все другие ниши - это не промышленное использование вовсе), что и Ада, и обладает всеми качествами присущими Аде, то да, увы, там только Ада, и тогда тезис верен, ибо выраждается в тезис, что "любую современную Аду невозможно знать полностью".

>

>

Бла-бла. Пока что мы видим как раз наоборот что к нам идут новые сектора индустрии, с которыми мы раньше вообще не имели никакого дела, именно потому что они начинают утрачивать контроль за сложностью своих систем, и хотят поучиться у авиации. Медицинские приборы, автомобили. Да автомобили. У нас люди не вылезают из японских командировок, эта страна у нас на радаре несколько лет назад отсутствовала вообще.

>

Японцы вообще оченно странные ребята. Особенно если вспомнить как они программируют свои машины, ту же западающую педаль газа в Toyota вспомнить. Хотя может они у вас на горизонте как раз и появились после того, как 16 миллиардов баксов выплатили... Ибо, блин, ну нельзя же НАСТОЛЬКО рукожопо писать. Так даже вебщики на жабаскрипте не пишут. Вот на PHP - да, могут.

Кстати, о птичках, т.е. медицине - я бы может и рад бы попробовать Аду в мед. приборе нашем, но увы, она туда никаким боком не влезет, ибо 8051 с каплями ОЗУ и жесткими ограничениями по питанию. Так что только Си. Только хардкор!

Ада неплохо подходит для расширения кругозора, чтобы узнать, что, оказывается, в императивщине еще и вот так бывает. Возможность

задавать/создавать числовые типы в Аде хороша, ну и вообще, видно что включали мозг при проектировании языка.

Другое дело, что изучать все нюансы Ады 2012 не нужно. Для расширения кругозора может быть достаточно даже просто Ады 83.

Да, и еще из ценного - около Ады есть SPARK.

И еще одна штука, на которую в современных ЯП ну совсем уж забили - это разделение модуля/пакета на спецификацию и реализацию. А ведь это сильно помогает при чтении/навигации по исходникам прямо через скажем вебморду гитхаба, без всяких IDE. Подобная штука есть только ещё в Modula (но оно уж совсем малодоступно простому люду) ну и что-то похожее есть в ocaml (но там это всё значительно хуже, и вообще, опционально. там с организацией кода внутри модуля вообще есть некоторые странности из за изначальной repl-ориентированной природы языка, вроде того, что можно в одном scope переопределить функцию или переменную на что угодно еще, любого типа).

2017-01-19 15:33 GMT+03:00 ksiby@tut.by [ada_ru] <ada_ru@yahoogroups.com>:

При такой постановке вопроса, "современные языки" - это языки которые были 20 лет назад и более. Эти современные языки не очень современны :-)

Да как это не современны? Когда значительной части ключевой инфраструктуры по 50 лет и более? Как раз то, что построено "всего" 20 лет это по масштабам тамошних жизненных циклов - еще новое с иголочки!

Если же язык постоянно используют в новых проектах, то вот тогда он начинает обрастать свежими тенденциями из софтверной индустрии, вон стало модно в конце 80-х начале 90-х ООП в той самой современной программной индустрии в С++ и других ЯП из за широкого распространения GUI и революции в пользовательских интерфейсах для ПК - в Аду рраз, и завезли ООП, и внедрили как получилось.

Вот только использование ООП в сертифицированных системах было запрещено до самого недавнего времени, и наши клиенты только-только начинают изучать вопросы применимости "чуть-чуточки" ООП в своих проектах. Потому что при сертификации там вылезают вопросы, о которых 99,99% людей, считающих что знают ООП, не то что не задумывались, но вообще не слыхали. Весь этот СОЛИД и прочее умереть-невстать.

Повторюсь, развитие языка и развитие его индустриального подмножества - это две большие разницы.

Японцы вообще оченно странные ребята.

Ну так ведь они странными стали не вчера, но адой до недавнего времени не интересовались. Однако японцы - это только наиболее заметный пример, аналогичное шевеление наблюдаем и у французских автопроизводителей.

Хотя может они у вас на горизонте как раз и появились после того, как 16 миллиардов баксов выплатили...

Конечно. Связь с многомиллиардными потерями самая прямая. А также с тем фактом, что регламентирующие органы тоже начинают просыпаться и готовятся припечатывать автостроителей такими же требованиями по сертификации как в авиации/желдоре. По старинке соответственно делать уже нельзя, а учиться в иных местах, кроме как у уже умеющих это делать областей - негде.

Ибо, блин, ну нельзя же НАСТОЛЬКО рукожопо писать.

Ну вот понимаете ли, - можно. Не думайте, что тойота уникальна. Оговорюсь, что именно *написанного* кода в машинах относительно немного, в основном он сгенерированный. Так что пресловутая рукожопость - она на уровне генераторов и на уровне моделей. В результате фактический код никто не знает и не понимает. Собственно и эксперты в том судебном процессе на конкретную строчку кода со словами "тут ошибка" после пяти месяцев копания указать так и не смогли, все что они сказали - это что код абсолютно чудовищный, тестами не покрытый, контроль ошибок отсутствует, и там может водиться все что угодно.

Так даже вебщики на жабаскрипте не пишут.

Да ладно, я думаю количество дефектов в программе на джаваскрипт длиной 10 миллионов строк (да, 10 миллионов!) будет тоже будьте здоровы. Просто джаваскрипт никто в здравом уме не пустит жизнями людей управлять.

Кстати, о птичках, т.е. медицине - я бы может и рад бы попробовать Аду в мед. приборе нашем, но увы, она туда никаким боком не влезет, ибо 8051 с каплями ОЗУ и жесткими ограничениями по питанию. Так что только Си. Только хардкор!

Я конечно извиняюсь, но компилятор ады генерирует такой же ассемблерный код, как и си. Не "похожий", а просто такой же, вплоть до распределения регистров. И у нас есть компилятор для устройств уровня tinyAVR и им подобных. Проблем никаких нет, ибо понятно что "if (a == b) ...;" и "if a = b then ... end if;" на целевую платформу отображаются идентичным образом. Естественно, при этом используется рантайм с нулевым профилем, и соответственно ряд возможностей языка, требующих поддержки времени исполнения, отключены или как минимум обрезаны.

Коллеги, мне бы хотелось услышать Ваше мнение почему надо изучать/осваивать язык программирования Ada, а не наоборот. Как вариант – почему лично Вы применяете язык Ada. Если не удобно в публично – напишите мне напрямую ksiby@mediascan.by . Очень нужна “помощь зала”.

Ну, главную лично для меня причину, которую я для себя определил в 1994 году и с тех пор не передумал, я озвучил. Аду надо изучать, потому что занимаясь Адой ты почти наверняка будешь заниматься важным для человеческой цивилизации делом. Даже если неблагодарная человеческая цивилизация об этом не подозревает :)

>

Коллеги, мне бы хотелось услышать Ваше мнение почему надо

изучать/осваивать язык программирования Ada, а не наоборот. Как вариант – почему лично Вы применяете язык Ada. Если не удобно в публично – напишите мне напрямую ksiby@mediascan.by . Очень нужна “помощь зала”.

>

Ну, главную лично для меня причину, которую я для себя определил в 1994 году и с тех пор не передумал, я озвучил. Аду надо изучать, потому что занимаясь Адой ты почти наверняка будешь заниматься важным для человеческой цивилизации делом. Даже если неблагодарная человеческая цивилизация об этом не подозревает :)

>

>

Ну, это при условии если ухитришься найти и устроиться на вакансию где используется Ада, имея 0 лет работы программистом на Аде (изучение в свободное время - не в счет).

On 2017-01-19 20:46, Alexey Veselovsky alexey.veselovsky@... > Ну, это при условии если ухитришься найти и устроиться на вакансию где

используется Ада, имея 0 лет работы программистом на Аде (изучение в свободное время - не в счет).

 

Бывает так, что работодателю до фонаря на чем ты будешь делать проект. Лично у меня были такие работодатели 2 раза.

Ну, это при условии если ухитришься найти и устроиться на вакансию где используется Ада, имея 0 лет работы программистом на Аде (изучение в свободное время - не в счет).

Насчет карьеры увы не подскажу, ибо сам являюсь выпускником ВМК МГУ, работающим во Франции, и это неспроста. Мое общее впечатление от профильных для Ады отраслей в России - это что коллективы, в них занятые, с одной стороны молодеют а с другой стороны переформатируются, поэтому в общем для экспериментирования с ранее не используемыми технологиями условия стали получше, а наличие профильного опыта не обязательно критично.

Я же говорю исключительно с той позиции, что занятие Адой настроит мозги в правильном (в моем понимании) направлении, и заставит человека задуматься о конкретной категории проблем и профессий, что уже само по себе неплохо. Легкой жизни - обещать не могу :)

ksiby@... [ada_ru] wrote:

 

 

Коллеги, мне бы хотелось услышать Ваше мнение почему надо

изучать/осваивать язык программирования Ada, а не наоборот. Как

вариант – почему лично Вы применяете язык Ada. Если не удобно в

публично – напишите мне напрямую ksiby@...

<mailto:ksiby@...> . Очень нужна “помощь зала”.

 

Вы абсолютно правы. Простите, что спровоцировал флуд, но флуд в такой теме

неизбежен, к сожалению. Попробую помочь. Простите, что буду многословен и

буду повторяться, возможно, сформулирую больше 10 причин. Как говорил классик,

нет времени писать коротко :(

 

На мой взгляд, вопрос "почему лично Вы применяете язык Ada". Потому что практически

у каждого, здесь присутствующего - ситуация нестандартная, со своим набором обстоятельств.

У меня так получилось, что Ада оказалась первым языком, с которым я стал серьезно

работать (причем не как программист - а как разработчик тестов для трансляторов), и

после этого все остальные языки в меня просто не полезли. Уж больно бестолковыми

и убогими они казались после Ады. В лихое время - в начало 90-х - я попал в

проект по разработке С++-ного компилятора. Ухитрился успешно отработать руководителем

команды тестировщиков, не зная практически ничего про С++. Тогда казалось, что у

проекта были хорошие перспективы (иноземный заказчик), но для их реализации надо

было таки изучить С++. Так он в меня не полез. Чисто физически. Мозг отказывался

воспринимать этот кошмар. И это - в хреновейщей личной финансовой ситуации, когда

было не до выпендривания.

 

Так что попробую именно про 10 причин. Не стреляйте в пианиста - играет как умеет

 

--------

-- 1 --

--------

Всегда полезно знать и понимать историю развития своей профессиональной области. Ада

в программной инженерии - явление уникальное. Это единственный язык, который:

- был задуман как средство решения важной проблемы, причем существование и специфика

этой проблемы были тщательно исследованы до того;

- был разработан систематически, начиная с выработки детальных технических требований

к языку;

- был разработан в ходе тщательно и грамотно организованного международного конкурса;

- сразу возник на свет в виде американского национального стандарта, который очень быстро

был утвержден как стандарт ISO;

- средства контроля соответствия реализаций стандарту были готовы раньше, чем возникла

первая реалтзация нового языка;

- в результате у Ады никогда не было, нет и не будет диалектов и версий, слово "Ада" в

каждый момент времени обозначала для всех одно и то же - то, что написано в стандарте

языка, и каждый компилятор реалтзовывал (с точностью до ошибок) именно это;

- Эволюция языка осуществляется путем пересмотра его международного стандарта с близкой

к 100% процентов совместимостью (созранение работоспособности существующего кода);

 

Какие-то из перечисленных пунктов справедивы и для других языков, но все вместе - только

для Ады,

 

-------

-- 2 -- -------

Ада - это не столько язык программирования, сколько философия и идеология прогаммирования,

краеугольным камнем которых является забота о надежности программного обеспечения на всех

этапах его жизненного цикла, включая многолетнее сопровождение и модификацию. Практика показала,

что эта философия и идеология прекрасно себя проявляют на практике - время, проводимое в отладчике,

для программиста, работающего на Аде, в разы меньше, чем для других языков.

 

Существенным элементом Адской философии является то, что с точки зрения Ады и Ада-программиста

разработка программы - это не создание кода, а определение набора абстракций подходящего уровня,

которые соответствовали различным компонентам и аспектам решаемой задачи, с последующим использованием

этих абстракций. Причем Ада нацеливает программиста на создание надежных и защищенных абстракций,

то есть тех, которые обладают ровно теми и ТОЛЬКО теми свойствами, которые от них требуются,

и НЕ ПОЗВОЛЯЮТ использовать себя некорректным образом. В результате большинство проблем, которые

в случае других языков выявляются в результате мучительных часов, а то и дней, проведенных в отладчике,

в случае Ады будут быстренько выявлены компилятором на ранних этапах создания кода.

 

-------

-- 3 --

-------

С технической точки зрения с момента своего возникновения и для всех последующих ревизий стандарта

Ада является уникальным объединением в рамках одного языка технических средств и возможностей,

каждое из которых само по себе уникальным не является.

 

 

-------

-- 4 --

-------

Все современные индустриальные языки программирования предоставляют более-менее сопоставимые

возможности, различаясь не столько тем, *что* они позволяют делать, сколько тем, *как именно*

они это позволяют. Изучив Аду, вы получите знания о том, как еще может быть организована система

типов, модульность и раздельная компиляция, как могут быть реализованы парадигмы ООП по сравнению

с теми языками, что вы знаете. Так, например, Ада предоставляет полноценные возможности ООП, но

вместе с тем в языке нет синтаксически оформленного понятия класса, традиционного для ООП. Ада

показывает, что виртуальные операции совершенно необязательны для обеспечения динамического полиморфизма,

для этого вполне достаточно диспетчирезации, которая может оказаться более эффективной. И т.д.

Подобное знание (а как еще может быть сделана хорошо известная мне вещь?) никогда не будет лишним.

Языки на самом деле беззастенчиво "воруют" идеи друг у друга. Сейчас об этом практически не говорят

уже, но С++ списал свои классы с пакетов Ады-83.

 

-------

-- 5 --

-------

На самом деле пункт 4 (про то, что все современные языки предоставляют более-менее одинаковые

наборы возможностей) - вранье. Ада умеет все, что умеют ее прямые конкуренты (С++, Java) - и еще

много чего полезного и интересного, чего ее конкуренты не умеют в принципе. В частности:

- высокоуровневые средства управления асинхронными процессами (как конструкции языка, а не

библиотечные вызовы!) с возможностью выбора процессом вариантов поведения в зависимости от

ситуации;

- иерархическая модульность, позволяющая минимизировать перекомпиляции и, что еще возможно,

развивать существующий код, не разрушая защищенные абстракции;

- система ПОДтипов и связанный с ней механизм исключений;

- исполняемые спецификации и контрактное программирование (Ада 2012 - все эти пре- и пост-условия

и разнообразные инварианты);

 

-------

-- 6 --

-------

Ада позволяет легко выделять технологические подмножества в зависимости от решаемой задачи. Например,

не нужно вам ООП - так и забудьте о нем! И это не будет вам стоить никаких дополнительных неудобств.

При этом вы по-прежнему сможете создавать и использовать в своем коде надежные защищенные абстракции

Легко ли в С++ программировать, не используя классы?

 

-------

-- 7 --

-------

Несмотря на то, что Ада умеет существенно больше, чем конкуренты, сам язык устроен куда проще и понятнее

конкурентов. Достаточно сравнить объемы стандартов Ады и С++. Более того, описание Ады "замкнуто" в том

смысле, что не использует мифических понятий, подобных "пространству имен" в С++. Все особенности семантики

языка описаны в терминах структурных компонент кода, то есть - синтаксиса, определенного БНФ.

 

Все предопределенное окружение Ада-программы также описывается в терминах языка - в виде набора

спецификаций пакетов, написанных на Аде. Для Ады ответ на вопрос "А что такое Integer?" - ровно такой

же, как и на вопрос о любом другом типе, можно пальцем показать то место, где Integer определен.

А что такое int в С++?

 

--------

-- 8 --

--------

У Ады - простой, понятный, легко читаемый синтаксис, который существенно снижает риск ситуаций, когда случайная

опечатка приводит к тому, что код не становится формально неправильным, но существенно меняется

его семантика (если нужны примеры таких ошибок в С - скажите)

 

---------

-- 9 --

---------

Выбор индустрии. Да, Ада возникла по инициативе Пентагона для проектов Пентагона. Но это уже - далекая

история. Сейчас никто никого не заставляет использовать Аду. Однако не случайно же многие проекты в областях,

где цена ошибки может быть не просто высока, а нериемлемо высока, выбрали и продолжают выбирать Аду?

 

---------

-- 10 --

---------

 

Ада - язык, специально заточенный на разработку встроенных систем. С одной стороны - кросс-компиляторы, с другой -

перенос по максимуму всей тяжести языка на компилятор и на инструментальную машину так, чтобы в целевой

среде выполнялось лишь то, что там и должно выполняться.

 

--------

-- 11 --

--------

Не сочтите за рекламу, но если вы собрались попробовать Аду, то в вашем распоряжении - абсолютно бесплатно

и абсолютно легально находится GPL-версия системы программирования GNAT, которая является не демо-версией

с обрезанной функциональностью, а практически той же версией (с точки зрения реалтзованной версии

языка и базового инструментария), что используется в то же самое время в индустрии. Более того, забесплатно

можно попробовать даже кросс-компилятор для ... вот забыл, как правильно платформа называется!

Более того, забесплатно

можно попробовать даже кросс-компилятор для ... вот забыл, как правильно платформа называется!

Есть для arm-elf (STM32F4DISCOVERY и тому подобные) и вариант адаптированный для Raspberry Pi 2.

>

Я конечно извиняюсь, но компилятор ады генерирует такой же ассемблерный код, как и си. Не "похожий", а просто такой же, вплоть до распределения регистров. И у нас есть компилятор для устройств уровня tinyAVR и им подобных. Проблем никаких нет, ибо понятно что "if (a == b) ...;" и "if a = b then ... end if;" на целевую платформу отображаются идентичным образом. Естественно, при этом используется рантайм с нулевым профилем, и соответственно ряд возможностей языка, требующих поддержки времени исполнения, отключены или как минимум обрезаны.

Может быть, но компилятора под указанную мною платформу просто нет и, видимо, не будет.

Мне кажется, что правильная постановка вопроса - Какую цену готовы заплатить заказчики за использование модного языка в противовес надёжному. Давайте сравним два языка Эсперанто и Английский. Какой лучше для международного общения и каким пользуются.

 

 

From: "Alexey Veselovsky alexey.veselovsky@... [ada_ru]" <ada_ru@yahoogroups.com>

To: "ada_ru@yahoogroups.com" <ada_ru@yahoogroups.com>

Sent: Thursday, January 19, 2017 1:56 PM

Subject: Re: [ada_ru] 10 причин выучить Аду

 

А какая принципиальная разница между С++ и адой? вы их вроде через запятую как динозавров перечислили, нет?

 

Пример того, как ничего страшного не случится если кто-то из динозавров внезапно вымрет. А Ада таки вымирает, судя по тому же tiobe. Т.е. она безвозвратно ушла по тропе COBOL'a, и оттуда уже не вернётся. Вот С++ ещё трепыхается и там еще есть какой-то шанс. 

В АЭС - напополам. Если система управления от ATOS то будет Ада, не сомневайтесь. Не знаю что на марсоходах, но перед тем как по марсу ходить туда следовало долететь, и это вы будете смеяться тоже ада.

 

 В наших АЭС вон, даже Оберон используют, для некоторых вещей. :-)

Чего не просматривается от слова никак - так это всяких растов и го. Но когда у марсохода будет своя страница в твиттере - это напишут на го, уверен)))

А в марсоходе нет Го ровно по той же причине, почему в Вояджере нет Ады :-)  Но напомню, что речь шла о том, что мол любой современный индустриальный язык невозможно знать полностью. Я просто показал контрпример - Go это современный промышленный язык программирования. Он обозрим.

Если конечно вы считаете что промышленный язык программирования это только такой язык, который используется в точности той же нише (а все другие ниши - это не промышленное использование вовсе), что и Ада, и обладает всеми качествами присущими Аде, то да, увы, там только Ада, и тогда тезис верен, ибо выраждается в тезис, что "любую современную Аду невозможно знать полностью". #yiv1462694972 #yiv1462694972 -- #yiv1462694972ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv1462694972 #yiv1462694972ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv1462694972 #yiv1462694972ygrp-mkp #yiv1462694972hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv1462694972 #yiv1462694972ygrp-mkp #yiv1462694972ads {margin-bottom:10px;}#yiv1462694972 #yiv1462694972ygrp-mkp .yiv1462694972ad {padding:0 0;}#yiv1462694972 #yiv1462694972ygrp-mkp .yiv1462694972ad p {margin:0;}#yiv1462694972 #yiv1462694972ygrp-mkp .yiv1462694972ad a {color:#0000ff;text-decoration:none;}#yiv1462694972 #yiv1462694972ygrp-sponsor #yiv1462694972ygrp-lc {font-family:Arial;}#yiv1462694972 #yiv1462694972ygrp-sponsor #yiv1462694972ygrp-lc #yiv1462694972hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv1462694972 #yiv1462694972ygrp-sponsor #yiv1462694972ygrp-lc .yiv1462694972ad {margin-bottom:10px;padding:0 0;}#yiv1462694972 #yiv1462694972actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv1462694972 #yiv1462694972activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv1462694972 #yiv1462694972activity span {font-weight:700;}#yiv1462694972 #yiv1462694972activity span:first-child {text-transform:uppercase;}#yiv1462694972 #yiv1462694972activity span a {color:#5085b6;text-decoration:none;}#yiv1462694972 #yiv1462694972activity span span {color:#ff7900;}#yiv1462694972 #yiv1462694972activity span .yiv1462694972underline {text-decoration:underline;}#yiv1462694972 .yiv1462694972attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv1462694972 .yiv1462694972attach div a {text-decoration:none;}#yiv1462694972 .yiv1462694972attach img {border:none;padding-right:5px;}#yiv1462694972 .yiv1462694972attach label {display:block;margin-bottom:5px;}#yiv1462694972 .yiv1462694972attach label a {text-decoration:none;}#yiv1462694972 blockquote {margin:0 0 0 4px;}#yiv1462694972 .yiv1462694972bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv1462694972 .yiv1462694972bold a {text-decoration:none;}#yiv1462694972 dd.yiv1462694972last p a {font-family:Verdana;font-weight:700;}#yiv1462694972 dd.yiv1462694972last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv1462694972 dd.yiv1462694972last p span.yiv1462694972yshortcuts {margin-right:0;}#yiv1462694972 div.yiv1462694972attach-table div div a {text-decoration:none;}#yiv1462694972 div.yiv1462694972attach-table {width:400px;}#yiv1462694972 div.yiv1462694972file-title a, #yiv1462694972 div.yiv1462694972file-title a:active, #yiv1462694972 div.yiv1462694972file-title a:hover, #yiv1462694972 div.yiv1462694972file-title a:visited {text-decoration:none;}#yiv1462694972 div.yiv1462694972photo-title a, #yiv1462694972 div.yiv1462694972photo-title a:active, #yiv1462694972 div.yiv1462694972photo-title a:hover, #yiv1462694972 div.yiv1462694972photo-title a:visited {text-decoration:none;}#yiv1462694972 div#yiv1462694972ygrp-mlmsg #yiv1462694972ygrp-msg p a span.yiv1462694972yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv1462694972 .yiv1462694972green {color:#628c2a;}#yiv1462694972 .yiv1462694972MsoNormal {margin:0 0 0 0;}#yiv1462694972 o {font-size:0;}#yiv1462694972 #yiv1462694972photos div {float:left;width:72px;}#yiv1462694972 #yiv1462694972photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv1462694972 #yiv1462694972photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv1462694972 #yiv1462694972reco-category {font-size:77%;}#yiv1462694972 #yiv1462694972reco-desc {font-size:77%;}#yiv1462694972 .yiv1462694972replbq {margin:4px;}#yiv1462694972 #yiv1462694972ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv1462694972 #yiv1462694972ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv1462694972 #yiv1462694972ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv1462694972 #yiv1462694972ygrp-mlmsg select, #yiv1462694972 input, #yiv1462694972 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv1462694972 #yiv1462694972ygrp-mlmsg pre, #yiv1462694972 code {font:115% monospace;}#yiv1462694972 #yiv1462694972ygrp-mlmsg * {line-height:1.22em;}#yiv1462694972 #yiv1462694972ygrp-mlmsg #yiv1462694972logo {padding-bottom:10px;}#yiv1462694972 #yiv1462694972ygrp-msg p a {font-family:Verdana;}#yiv1462694972 #yiv1462694972ygrp-msg p#yiv1462694972attach-count span {color:#1E66AE;font-weight:700;}#yiv1462694972 #yiv1462694972ygrp-reco #yiv1462694972reco-head {color:#ff7900;font-weight:700;}#yiv1462694972 #yiv1462694972ygrp-reco {margin-bottom:20px;padding:0px;}#yiv1462694972 #yiv1462694972ygrp-sponsor #yiv1462694972ov li a {font-size:130%;text-decoration:none;}#yiv1462694972 #yiv1462694972ygrp-sponsor #yiv1462694972ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv1462694972 #yiv1462694972ygrp-sponsor #yiv1462694972ov ul {margin:0;padding:0 0 0 8px;}#yiv1462694972 #yiv1462694972ygrp-text {font-family:Georgia;}#yiv1462694972 #yiv1462694972ygrp-text p {margin:0 0 1em 0;}#yiv1462694972 #yiv1462694972ygrp-text tt {font-size:120%;}#yiv1462694972 #yiv1462694972ygrp-vital ul li:last-child {border-right:none !important;}#yiv1462694972

 

On 01/19/2017 09:19 PM, Alexey Veselovsky alexey.veselovsky@... [ada_ru] wrote:

 

Может быть, но компилятора под указанную мною платформу просто нет и,

видимо, не будет.

 

Всегда есть альтернатива :)

 

1. Портировать GNAT на 8051. Есть проекты, портировавшие C/C++ из GCC, т.е. кодогенератор есть. Осталось пошаманить с GNAT-ом соответствующей версии. Может Ada 2012 он не поймёт, но для имеющихся ресурсов контроллера оно и не подъёмно скорее всего.

 

2. Поменять платформу на что-то ARM образное, сейчас это модно, и намного проще будет GNAT готовый для него найти.

>

>

Может быть, но компилятора под указанную мною платформу просто нет и, видимо, не будет.

>

Всегда есть альтернатива :)

>

1. Портировать GNAT на 8051. Есть проекты, портировавшие C/C++ из GCC, т.е. кодогенератор есть. Осталось пошаманить с GNAT-ом соответствующей версии. Может Ada 2012 он не поймёт, но для имеющихся ресурсов

контроллера оно и не подъёмно скорее всего.

>

gcc не умеет 8051. Если нужен опенсорс Си-компайлер для 8051, то это SDCC.

2. Поменять платформу на что-то ARM образное, сейчас это модно, и

намного проще будет GNAT готовый для него найти.

>

Если поменять на ARMобразное, то это удорожание устройства в 2-3 раза. Это неприемлемо.

Кстати, а насколько GNAT умеет кодогенерить для чего-то типа Cortex-M0 или Cortex-M3?

Может, вы новую тему откроете под это?

 

Alexey Veselovsky alexey.veselovsky@... [ada_ru] wrote:

Я этот текст не читал, но судя по тому что Вы пишете, то-ли авторы, то-ли читатели не понимают о чем идет речь.

Принцип Варвары не соблюдается никогда. Не существует нетривиальных под- или выведенных типов данных для которых подстановка Лисковой выполняется. Это относится к абсолютно любым типам. Например, подтипы Ады 83 элементарно нарушают принцип подставки Лисковой. Тоже относится к неограниченным массивам, дискриминантным типам с выбором и т.д. А уж про подставимость void * в Си я вообще молчу.

Подставимость всегда контекстно зависима. Принцип выполняется в каждом конкретном случае подстановки в корректной программе и НИКОГДА абсолютно. Это никоим образом не связано с объектным-ориентированием. Требовать надо не неисполнимых принципов а статической верификации, т.е. SPARK-а.

Может быть, но компилятора под указанную мною платформу просто нет и, видимо, не будет.

Так это ж совсем другой ракурс. Порт компилятора на новую целевую платформу нам приходится делать регулярно, иногда это минимальные косметические изменения, иногда - разработка с нуля всего вплоть до части gcc-шного бэкенда (или использования совершенно другого бэкенда, скажем JVM или LLVM, такое тоже имело место). Соответственно и стоимость финальная разработки может иметь от трех нулей до шести. Но это уже не вина/проблема языка программирования, а чисто вопрос денег и ресурсов. В конечном результате это будет порт на любую данную платформу, который внешне будет выглядеть как любой другой порт, и не уступать в производительности по ключевым параметрам тому бэкенду, что внутри будет использоваться.

Кстати, а насколько GNAT умеет кодогенерить для чего-то типа Cortex-M0 или Cortex-M3?

Никаких проблем, стандартная поставка arm-elf gnatgpl2016 поддерживает необходимые инструкции. Правда рантайма подходящего там нет, так что руки запачкать немного придется. Но должно работать.

Вот этот пример возможно будет полезен - https://github.com/AdaCore/Ada_Drivers_Library/tree/master/examples/MicroBit

On 2017-01-20 01:35, Alexey Veselovsky alexey.veselovsky@... >

Кстати, а насколько GNAT умеет кодогенерить для чего-то типа Cortex-M0

или Cortex-M3?

 

Вот статейка есть про такую комбинацию, насколько я понял

http://turishev.ru/cgi-bin/book.pl?name=soft/sam4s

Новое сообщение:
< Страницы: 1 2 3 4

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти