Oberon space
General Category => Общий раздел => Тема начата: valexey от Декабрь 13, 2011, 12:31:02 am
-
В эйфеле нет typedef'а. Совсем. И нельзя создавать внутри класса другие классы или иные типы. То есть нет nested классов аля жаба и нет объявления структур и классов внутри класса аля С++. Хочешь ввести новый тип? Изволь завести еще один файлик и в нем определить новый класс. Это все равно что в Обероне или в Хаскеле на каждый новый тип создавать новый модуль. Жуть.
Зато есть tuple, которые можно таки использовать и у которых могут быть именованные поля. Но поскольку typedef'a нет, то получается много копипасты в декларациях переменных, и это смотрится убого, но все равно лучше чем на каждый чих плодить по классу/модулю.
В результате получается как-то так (это объявление переменной такое. справа тип):
games : ARRAY[TUPLE[name : STRING;
players : ARRAY[TUPLE[name : STRING;
is_winner: BOOLEAN;
sk_group : INTEGER;
on_blind : BOOLEAN;
hand_rank: INTEGER;
preflop : TUPLE [raise : INTEGER;
see : INTEGER;
fold : INTEGER];
flop : TUPLE [raise : INTEGER;
see : INTEGER;
fold : INTEGER];
turn : TUPLE [raise : INTEGER;
see : INTEGER;
fold : INTEGER];
river : TUPLE [raise : INTEGER;
see : INTEGER;
fold : INTEGER]
]]]]
Если захочется еще одну переменную того же типа - изволь скопипастить этот тип целиком.
-
А еще мне не нравится диагностика ошибок компиляции. Оно просто говорит мол, ошибка вот в этой строке. И почему как и зачем она там - не говорит. То есть скажем диагностика у современных С++ компиляторов много лучше, не говоря уже о например Аде (где диагностика ошибок чуть ли не лучшая вообще из всего того, что я видел, а видел я не мало).
С другой стороны синтаксически Эйфель весьма прост, поэтому синтаксических ошибок в среднем вылазит весьма и весьма мало. То есть оно больно вначале, когда только-только начинаешь на нем писать.
-
А еще мне не нравится диагностика ошибок компиляции. Оно просто говорит мол, ошибка вот в этой строке. И почему как и зачем она там - не говорит. То есть скажем диагностика у современных С++ компиляторов много лучше, не говоря уже о например Аде (где диагностика ошибок чуть ли не лучшая вообще из всего того, что я видел, а видел я не мало).
С другой стороны синтаксически Эйфель весьма прост, поэтому синтаксических ошибок в среднем вылазит весьма и весьма мало. То есть оно больно вначале, когда только-только начинаешь на нем писать.
1. Ну это вопросы к реализации компилятора - хотя текущая версия Студио -7 , могли бы создатели и улучшить потреб. качества своего творения
2. Скорее пока не "въедешь " в его идеологию - а это не так уж и трудно... Но вот я например не могу въехать в идеологию разработчиков среды - какая -то она (среда) противоестественная... например - проект это совокупность классов размещенных в нескольких кластерах, казалось бы дай пользователю возможность навигации по ним и редактирования в редакторе нескольких классов= так нет - есть только возможность выбирать класс из комбо и редактировать его в одной вкладке... или я ошибаюсь?
хотя вру , конечно, роль браузера классов играет вкладка диаграммы, а доп вкладки с классами открываются по двойному щелчку на пиктограмме класса в этой диаграмме.. необычно как-то...
-
Такое ощущение , что разработчики Иде положили на все общепринятые правила проектирования оного...
-
Алексей, вы не оценивали степень деградации производительности кода написанного с по всем правилам методики Мейера?