?

Log in

No account? Create an account
Ад Украины и Ада Америки - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Ад Украины и Ада Америки [Jul. 10th, 2015|11:59 pm]
Yuri Panchul
Вы помните, как два года назад жители Украины вели дискуссии по поводу соглашения про Евроассоциацию, которое никто из самых уверенных спорщиков не читал?

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


1) якобы на языке Ада нельзя писать системы реального времени (ядра операционных систем реального времени и код процессов/задач)

2) якобы на языке Ада нельзя писать системы жесткого реального времени (с гарантированным временем ответа)

3) якобы в языке Ада в отличие от языка Си преобразования типов implicit, хотя в действительности все наоборот - в Аде все преобразования типов explicit, а вот в Си - многое implicit включая знаменитое integer promotion (источник хитрых багов при арифметических операциях с short и char)

Еще maxdz выдавал перлы типа "Ada and Erlang are probably just a "buildup" on OS functionality. Maybe even to the extent of translating Ada/Erlang calls into C system calls which will be compiled into platform-dependent assembler". Кто-нибудь объяснит мне что он имел в виду в последнем предложении?

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


Более того, в Аде, как и в Си, есть куча трюков для работы с голым железом - включая всевозможные прагмы для memory-mapped I/O registers (в Си это достигается volatile и преобразованием численных адресов в указатели) (про это спрашивал nicka_startcev).

Это все не означает, что я якобы считаю Аду лучше/популярнее/приятнее, чем Си. Такое утверждение так же неверно, как и популярное в марте 2014 утверждение "если ты считаешь что Америка не пришлет Украине на помощь авианосец - значит ты поддерживаешь Путина". Мне и Путин, и Ада по барабану. Просто Макс несет ересь на основе своих фантазий (наверное он Аду с чем-то перепутал).

Короче, чтобы окончательно и бесповоротно подвести итог в споре по Аде, я записал видео с уже знакомым вам моим приятелем Ридом Котлером, который, работая в компании Intermetrics, был одним из разработчиков компилятора для Ады:


http://en.wikipedia.org/wiki/Intermetrics

Intermetrics, Inc. was a software company founded in Cambridge, Massachusetts in 1969 by several veterans of M.I.T.'s Instrumentation Laboratory who had worked on the software for NASA's Apollo Program including the Apollo Guidance Computer.

The company specialized in compiler technology. It was responsible for the design and implementation of the HAL/S programming language, used to write the Space Shuttle PASS (Primary Avionics Software System). It participated in the design effort leading to the Ada programming language effort, designed the Red language, one of the finalists in the design competition, and wrote one of the first production-quality Ada compilers. The large-scale Ada 95 revision of the language was designed at Intermetrics.


После Intermetrics Рид работал в компании Lockheed Missiles которая известна советским читателям по картинкам в журнале "Крокодил" с изображением баллистических ракет "Трайдент". Там Рид тоже писал много на Аде.

Короче в своей речи Рид Коллер подтвердил, что:

1. На Аде можно делать все то же, что и на Си, включая системы реального времени, включая системы жесткого реального времени.

2. В Аде есть куча прагм и других штучек для контроля размещения данных в памяти (включая memory-mapped registers), пакования, контроля параллельных штучек (которыми также можно не пользоваться)

3. В Аде есть прямой интерфейс для вызова Си-функций без overhead-а.

4. Конечно Ада не так популярна как Си, но это не означает, что на ней нельзя делать все то же, что и в Си в принципе

5. Ада использовалась для создания тонны софтвера для всяких истребителей F-22, космических спутников и т.д. и т.п.



Кто для вас бОльший авторитет в языке программирования Ада и его применимости для создания систем реального времени?

Евробандеровец maxdz, который никогда не изучал Аду, но краем уха слышал, что Ада или что-то на "А" "выше уровнем" чем Си
5(10.0%)
Разработчик компилятора Ады Рид Котлер, который получил премию от NASA за писание на Аде софтвера для Space Shuttle
39(78.0%)
Из-за бугра плюете?
6(12.0%)
LinkReply

Comments:
Page 1 of 2
<<[1] [2] >>
[User Picture]From: ramlamyammambam
2015-07-11 07:43 am (UTC)
Ада такой же низкоуровневый язык как и Си, только типизация построже во многих важных местах. Когда в GCC появилась поддержка Ады, я изучал возможность переписать свою RTOS полностью на Аду, даже спроектировал API. Ада крайне нетребовательна к рантайму, и отлично подходит для микроконтроллеров. Есть только один момент, который ее утяжеляет: переменная нижняя граница массивов. Из-за этого при передаче массива как параметра дополнительно передается указатель на дескриптор массива, состоящий из двух индексов: верхнего и нижнего.
(Reply) (Thread)
[User Picture]From: mutoids
2015-07-11 07:50 am (UTC)
Лай и шер. Ибо ровно тогда же по тем же причинам присматривался к Аде.
(Reply) (Parent) (Thread)
[User Picture]From: raydac
2015-07-11 07:48 am (UTC)
а что, maxdz разве не бот? это он действительно так мыслит "интернетно"?
(Reply) (Thread)
From: realurix
2015-07-11 01:16 pm (UTC)
Недавно он попытался что-то вякнуть по русски, но здесь уже опять только в своём "повышенном" амплуа. Видать, Панчул его это, поучил уму-разуму - боится повторять. Боты так себя не ведут - бота можно только забанить, но он и этого не заметит...
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: ammosov
2015-07-11 07:53 am (UTC)
А как ты наказал maxbzd за бздеж не по делу?
(Reply) (Thread)
[User Picture]From: walter_simons
2015-07-11 07:57 am (UTC)
Я б в программеры пошел, пусть меня научат :)
(Reply) (Thread)
[User Picture]From: ottonturk_g
2015-07-11 07:57 am (UTC)
А Буран на чем писался ( ПО его)?

(Reply) (Thread)
From: realurix
2015-07-11 01:33 pm (UTC)
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: maxdz
2015-07-11 08:46 am (UTC)
1) 2) Please point me on some OS written in Ada.
(Reply) (Thread)
[User Picture]From: ammosov
2015-07-11 08:52 am (UTC)
point TO you pidgin speaker
(Reply) (Parent) (Thread)
[User Picture]From: maxdz
2015-07-11 08:47 am (UTC)
>to the extent of translating Ada/Erlang calls into C system calls which will be compiled into platform-dependent assembler Кто-нибудь объяснит мне что он имел в виду в последнем предложении?

"package Integer_IO is new Ada.Text_IO.Integer_IO (Integer);
procedure Output_Date ( Day : in Integer) is
begin
Integer_IO.Put(Item => Day, Width => 2);
end Output_Date;"


Integer_IO.Put() is a "high-level" Ada call which will be translated in platform-implemented sprintf() C function + some other auxiliary C code. With more or less overhead comparing with "pure" C code.
(Reply) (Thread)
[User Picture]From: Volodymyr Kulyeshov
2015-07-11 10:05 am (UTC)
Я не спец по языку АДА, но зачем компилятору транслировать вызовы вывода в Си-шные функции?
Тем более в такие медленные как sprintf()?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: maxdz
2015-07-11 09:01 am (UTC)
Ada is definitely a higher-level language than C. Because of one simple reason - Ada is a superposition of C.
It means on every platform (unless you Youri show me platform, implemented in Ada) - Ada calls are not compiled directly into platform-dependent assembler, but implemented using C functions.

Thus it is similar to C++ (which is a superposition of C too).

And like every superposition, Ada has an overhead in comparison with C implementation.

Edited at 2015-07-11 09:15 am (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2015-07-11 02:32 pm (UTC)
Это ваше персональное, крайне дурацкое, определение термина "high-level".

Замечу что Фортран ныне тоже использует gcc бэкэнд. И вы что, станете утверждать, что фортран якобы "более высокоуровневый", чем Си?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: misha_makferson
2015-07-11 09:08 am (UTC)
За Аду ничего не скажу, но PLSQL в Oracle сделан по образцу Ады. По моему вполне годно.
(Reply) (Thread)
From: realurix
2015-07-11 01:27 pm (UTC)
Вообще-то все эти языки , в том числе и Pascal, относятся к алгольной группе языков, которые описываются регулярными грамматиками.
(Reply) (Parent) (Thread)
[User Picture]From: freedom_of_sea
2015-07-11 09:25 am (UTC)

всё зависит от цели дискуссии

если критика Ады призвана доказать неэффективность государственного техноложества то max конечно же прав, а американские эксперты ничего не понимают, даже если в чем-то правы.

То что Ада говно, напрямую следует из её низкой распространенности
(Reply) (Thread)
[User Picture]From: panchul
2015-07-11 02:34 pm (UTC)

Re: всё зависит от цели дискуссии


Независимо от цели дискуссии, критиковать то, что не читал - это маразм.
(Reply) (Parent) (Thread)
[User Picture]From: niktos12
2015-07-11 09:45 am (UTC)
перепутал кнопку при голосовании) второй вариант))
(Reply) (Thread)
(Deleted comment)
[User Picture]From: panchul
2015-07-11 02:42 pm (UTC)
Первично: Гарантированное минимальное время обработки высокоприоритетных событий.

Вторично: поддержку всей стандартной ртосовской кухни с приоритетами задач, событиями, семафорами, почтовыми ящиками итд.

Не думаю, что спор о системах реального времени с maxdz способствует просветлению.
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]From: Volodymyr Kulyeshov
2015-07-11 12:46 pm (UTC)
В 95 году вышел Delphi. на тот момент революционное решение.
Мы, как наСИльники очень негодовали что нет чего-то подобного под СИ.
Пришлось учить паскаль и никто не пожалел об этом.
(Reply) (Parent) (Thread)
(Deleted comment)
From: realurix
2015-07-11 01:08 pm (UTC)
> На Аде можно делать все то же, что и на Си, включая системы реального времени, включая системы жесткого реального времени
Это лишь свидетельствует о функциональной полноте языка.

> Ада использовалась для создания тонны софтвера для всяких истребителей F-22, космических спутников и т.д. и т.п.
То-то шаттлы так и не смогли самостоятельно садиться и выбирать оптимальные траектории движения при посадке, как это сделал "Буран", даже озадачив этой своей самостоятельностью своего "папу" Лозина-Лозинского.

Язык Ада такой же монстр, как язык PL-1. Задумывался как язык для всех, а в результате оказался ни для кого конкретно. Меня больше всего прикалывает, что америкосы попытались синтаксисом исправлять и предотвращать семантические ошибки (об этом есть в сообщении о языке Ada как объяснение его параноидальной типизации). ;-)) Америкосы ведь Ляпунова не читали, сами как бы уссатые-полосатые. Флаг, как говорится, в руку...

Edited at 2015-07-11 01:24 pm (UTC)
(Reply) (Thread)
[User Picture]From: nicka_startcev
2015-07-11 05:06 pm (UTC)
кстати, вам не нужен удаленный разработчик? это я.
vhdl со словарем, но есть мелкие свои проекты (spi ввод с малины и параллельный вывод куда попало. пачка ШИМов для сервомашинок и прочая элементарщина).
авр-ки паяю и прошиваю на смеси с/с++/асм, стм32 тоже раза три программировал.
линукс. продвинутый пользователь. плюс умею чуток ядерные драйвера писать -- имею понятия о.
опыт с/с++ около 15 лет.
есть под рукой репрап и пла для быстрого прототипирования.
есть недоделанный неудачный прототип самодельного 3д-принтера. пронкт заглох по причине цен на смолу.
есть остаточные знания по химии и физике на уровне этак 1-1.5 курса физфака.

хочу денег за разработку чего-то полезного, умею работать в большой команде со всей спецификой.
(Reply) (Thread)
[User Picture]From: panchul
2015-07-11 05:47 pm (UTC)
Сейчас - нет, но буду иметь в виду, если что-то появится
(Reply) (Parent) (Thread)
Page 1 of 2
<<[1] [2] >>