История изменений
Исправление byko3y, (текущая версия) :
with ada.text_io; use ada.text_io;
with ada.integer_text_io;
procedure hello3 is
i, j: Integer;
f, g: Float;
begin
i := 3;
ada.Integer_text_io.put(i);
ada.text_io.put(i'img);
-- 'img and 'Image are similar to toString
end hello3;
Хотя я соглашусь, что по сравнению с жавой выглядит не так страшно. Создатели Ады были наглухо заморочены на типах, на математике и физике, создав сложный механизм типов и подтипов, арифметики с превращением типов:
https://www.adahome.com/articles/1997-06/am_cando_a2.html — Appendix 2: Variable-length argument lists, code examples
https://learn.adacore.com/courses/intro-to-ada/chapters/records.html - Records
Примерно как в расте с его бесконечными ёлочками, с той лишь разницей, что создатели Ada жили на 40 лет раньше, а потому прошли едва ли треть того пути, который прошел раст с его трейтами, макросами, выводом типов, более продвинутым (чем у ады) контролем видимости ссылок на переменные, и косвенное следствие последнего — замыкания. Я сам выступаю за то, чтобы строить язык вокруг типов данных, а не вокруг классов, но даже в 1980 году можно было сделать лучше, и тот же ML с выводом типов Hindley-Milner уже был в 1973 году.
Но все это новомодные для того времени идеи были выше уровня создателей Ада (или создатели посчитали себя выше этого), потому они слепили эдакий паскале-алголо-PL/I. Напоминаю, что паскаль ранее назывался Algol W, также был Algol 68, а PL/I — это дальний родственник Algol 60.
Отдельно заслуживает внимания куцый механизм многозадачного взаимодействия. Уже в 1978 году Дейстра описывал алгоритм параллельного сборщика мусора, а всё, что смогли придумать создатели Ады — это примитивный канал производитель-потребитель. По крайней мере в раннем Аде, а не том, что него со временем наросло. Этот механизм начисто скопирован с Concurrent Pascal 1974 года.
То есть, не было никакой фантазии у комитета «зеленого языка» (как тогда именовался проект Ада). Они попытались из довольно узкого набора готовых кубиков скомпоновать низкоуровневый язык со строгой безопасностью памяти, а в итоге получилось форменное издевательство над программистом, который этим будет пользоваться. А ведь был лисп, Scheme, был ML со статическими типами, Smalltalk — нет, нам нужен только алгол.
Исправление byko3y, :
with ada.text_io; use ada.text_io;
with ada.integer_text_io;
procedure hello3 is
i, j: Integer;
f, g: Float;
begin
i := 3;
ada.Integer_text_io.put(i);
ada.text_io.put(i'img);
-- 'img and 'Image are similar to toString
end hello3;
Хотя я соглашусь, что по сравнению с жавой выглядит не так страшно. Создатели Ады были наглухо заморочены на типах, на математике и физике, создав сложный механизм типов и подтипов, арифметики с превращением типов:
https://www.adahome.com/articles/1997-06/am_cando_a2.html — Appendix 2: Variable-length argument lists, code examples
https://learn.adacore.com/courses/intro-to-ada/chapters/records.html - Records
Примерно как в расте с его бесконечными ёлочками, с той лишь разницей, что создатели Ada жили на 40 лет раньше, а потому прошли едва ли треть того пути, который прошел раст с его трейтами, макросами, выводом типов, более продвинутым, чем у ады, контролем видимости ссылок на переменные, и косвенное следствие последнего — замыкания. Я сам выступаю за то, чтобы строить язык вокруг типов данных, а не вокруг классов, но даже в 1980 году можно было сделать лучше, и тот же ML с выводом типов Hindley-Milner уже был в 1973 году.
Но всё это было выше уровня создателей Ада (или создатели посчитали себя выше этого), потому они слепили эдакий паскале-алголо-PL/I. Напоминаю, что паскаль ранее назывался Algol W, также был Algol 68, а PL/I — это дальний родственник Algol 60.
Отдельно заслуживает внимания куцый механизм многозадачного взаимодействия. Уже в 1978 году Дейстра описывал алгоритм параллельного сборщика мусора, а всё, что смогли придумать создатели Ады — это примитивный канал производитель-потребитель. По крайней мере в раннем Аде, а не том, что него со временем наросло. Этот механизм начисто скопирован с Concurrent Pascal 1974 года.
То есть, не было никакой фантазии у комитета «зеленого языка» (как тогда именовался проект Ада). Они попытались из довольно узкого набора готовых кубиков скомпоновать низкоуровневый язык со строгой безопасностью памяти, а в итоге получилось форменное издевательство над программистом, который этим будет пользоваться. А ведь был лисп, Scheme, был ML со статическими типами, Smalltalk — нет, нам нужен только алгол.
Исходная версия byko3y, :
with ada.text_io; use ada.text_io;
with ada.integer_text_io;
procedure hello3 is
i, j: Integer;
f, g: Float;
begin
i := 3;
ada.Integer_text_io.put(i);
ada.text_io.put(i'img);
-- 'img and 'Image are similar to toString
end hello3;
Хотя я соглашусь, что по сравнению с жавой выглядит не так страшно. Создатели Ады были наглухо заморочены на типах, на математике и физике, создав сложный механизм типов и подтипов, арифметики с превращением типов:
https://www.adahome.com/articles/1997-06/am_cando_a2.html — Appendix 2: Variable-length argument lists, code examples https://learn.adacore.com/courses/intro-to-ada/chapters/records.html - Records
Примерно как в расте с его бесконечными ёлочками, с той лишь разницей, что создатели Ada жили на 40 лет раньше, а потому прошли едва ли треть того пути, который прошел раст с его трейтами, макросами, выводом типов, более продвинутым, чем у ады, контролем видимости ссылок на переменные, и косвенное следствие последнего — замыкания. Я сам выступаю за то, чтобы строить язык вокруг типов данных, а не вокруг классов, но даже в 1980 году можно было сделать лучше, и тот же ML с выводом типов Hindley-Milner уже был в 1973 году.
Но всё это было выше уровня создателей Ада (или создатели посчитали себя выше этого), потому они слепили эдакий паскале-алголо-PL/I. Напоминаю, что паскаль ранее назывался Algol W, также был Algol 68, а PL/I — это дальний родственник Algol 60.
Отдельно заслуживает внимания куцый механизм многозадачного взаимодействия. Уже в 1978 году Дейстра описывал алгоритм параллельного сборщика мусора, а всё, что смогли придумать создатели Ады — это примитивный канал производитель-потребитель. По крайней мере в раннем Аде, а не том, что него со временем наросло. Этот механизм начисто скопирован с Concurrent Pascal 1974 года.
То есть, не было никакой фантазии у комитета «зеленого языка» (как тогда именовался проект Ада). Они попытались из довольно узкого набора готовых кубиков скомпоновать низкоуровневый язык со строгой безопасностью памяти, а в итоге получилось форменное издевательство над программистом, который этим будет пользоваться. А ведь был лисп, Scheme, был ML со статическими типами, Smalltalk — нет, нам нужен только алгол.