LINUX.ORG.RU

История изменений

Исправление 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 — нет, нам нужен только алгол.