Oberon space

General Category => Общий раздел => Тема начата: valexey от Декабрь 13, 2011, 12:31:02 am

Название: Впечатления от Eiffel.
Отправлено: 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]
                                   ]]]]

Если захочется еще одну переменную того же типа - изволь скопипастить этот тип целиком.
Название: Re: Впечатления от Eiffel.
Отправлено: valexey от Декабрь 13, 2011, 12:59:30 am
А еще мне не нравится диагностика ошибок компиляции. Оно просто говорит мол, ошибка вот в этой строке. И почему как и зачем она там - не говорит. То есть скажем диагностика у современных С++ компиляторов много лучше, не говоря уже о например Аде (где диагностика ошибок чуть ли не лучшая вообще из всего того, что я видел, а видел я не мало).

С другой стороны синтаксически Эйфель весьма прост, поэтому синтаксических ошибок в среднем вылазит весьма и весьма мало. То есть оно больно вначале, когда только-только начинаешь на нем писать.
Название: Re: Впечатления от Eiffel.
Отправлено: DIzer от Декабрь 14, 2011, 12:00:10 pm
А еще мне не нравится диагностика ошибок компиляции. Оно просто говорит мол, ошибка вот в этой строке. И почему как и зачем она там - не говорит. То есть скажем диагностика у современных С++ компиляторов много лучше, не говоря уже о например Аде (где диагностика ошибок чуть ли не лучшая вообще из всего того, что я видел, а видел я не мало).

С другой стороны синтаксически Эйфель весьма прост, поэтому синтаксических ошибок в среднем вылазит весьма и весьма мало. То есть оно больно вначале, когда только-только начинаешь на нем писать.
1. Ну это вопросы к реализации компилятора - хотя текущая версия Студио  -7 , могли  бы создатели и улучшить потреб. качества своего творения
2. Скорее пока не "въедешь " в его идеологию - а это не так уж и трудно... Но вот я например не могу въехать в идеологию разработчиков среды - какая -то она (среда) противоестественная... например - проект это совокупность классов размещенных в нескольких кластерах, казалось бы дай пользователю возможность навигации по ним и редактирования в редакторе нескольких классов= так нет - есть только возможность выбирать класс из комбо и редактировать его в  одной вкладке... или я ошибаюсь?
хотя вру , конечно, роль браузера классов  играет вкладка диаграммы, а доп вкладки с классами открываются по двойному щелчку на пиктограмме класса в этой диаграмме.. необычно как-то...
Название: Re: Впечатления от Eiffel.
Отправлено: DIzer от Декабрь 14, 2011, 12:14:51 pm
Такое ощущение , что разработчики Иде положили  на все  общепринятые правила проектирования оного...
Название: Re: Впечатления от Eiffel.
Отправлено: DIzer от Декабрь 15, 2011, 01:06:29 am
Алексей, вы не оценивали степень деградации производительности кода написанного с по всем правилам методики Мейера?