Re[19]: Нужна ли Оберон-ОС защита памяти?
От: AVC Россия  
Дата: 15.02.05 11:37
Оценка: 3 (1) :)
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, AVC, Вы писали:


AVC>>Правда, в Обероне таких проблем вообще нет. (Он просто грамотно сделан.)

AVC>>Но ведь это такой скучный язык.
AVC>>А вот Си++ — это романтика.
К>На самом деле, указатели в Си — с одной стороны, крайне небезопасный, а с другой — очень выразительный механизм, в том числе — механизм абстракции.
К>Как в языках со слабой типизацией абстрагируются от типа данных, так в Си (ещё не С++) — от размещения данных.
К>В обоих случаях — это паттерн "простота (хуже воровства)", для слабо типизированных языков — получается более простой транслятор, для Си — облегчённый рантайм.

Мысль понятна.
Но согласиться с ней трудно.
Действительно, рантайм в Си "облегченный" (и "облегчается" он, похоже, в самых неожиданных местах оперативной памяти. ).
Но вот только компиляторы Си "весят" больше, чем компиляторы Оберона, и код в них — запутаннее. (Си++ я, по понятным причинам, вообще не упоминаю.)

К>Красивое развитие идеи указателей — это итераторы STL. Хотя с таким же, а то и с большим успехом можно было вместо итераторов ввести понятие "диапазон", и такие попытки делаются.


Согласен.
Вероятно, именно STL дала новую жизнь Си++.
На удивление, именно адресная арифметика и перегрузка операторов хорошо вписываются в STL.
(Здесь сишный синтаксис отпразновал незапланированный успех.)
Но, с другой стороны, это означает, что все соответствующие дефекты Си/Си++ проникли (как этакие синтаксические вирусы ) в STL, boost и т.д.

К>Оберон — да, действительно скучный язык. Типизацией по пальцам надавал, размещением по пальцам надавал, а средств абстракции — не надавал


Сорока-ворона кашу варила...
Почему же это вдруг не надавал?
Модули и расширение типов позволяют реализовать любую абстракцию.
Причем инкапсуляция не в пример лучше, чем в Си++.
(Дискуссию о плюсах и минусах перегрузки операторов пока разворачивать не будем. Я знаю диалекты Оберона, где такая перегрузка есть. Но вот хорошо ли это?)
Вообще, для меня в языках программирования очень важна возможность введения абстрактных типов данных.
Даже мое первый пост на RSDN был именно об АТД (и их связи с математическими моделями; я же все-таки прикладной математик).
Многие программисты почему-то думают, что настоящая абстракция возможна только на Си++.
Побывал недавно в своей старой конторе. (Там где все сидели в отладчике Watcom C++. ) Сказал, что увлекся Обероном. До драки дело не дошло (я всерьез опасался ). Но народ удивлялся и ссылался как раз на мою страсть к АТД и математизированному подходу. А я отвечал: в Обероне все есть (как в Греции ).

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.