Автор Тема: Впечатления от Eiffel.  (Прочитано 9482 раз)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Впечатления от Eiffel.
« : Декабрь 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]
                                   ]]]]

Если захочется еще одну переменную того же типа - изволь скопипастить этот тип целиком.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Впечатления от Eiffel.
« Ответ #1 : Декабрь 13, 2011, 12:59:30 am »
А еще мне не нравится диагностика ошибок компиляции. Оно просто говорит мол, ошибка вот в этой строке. И почему как и зачем она там - не говорит. То есть скажем диагностика у современных С++ компиляторов много лучше, не говоря уже о например Аде (где диагностика ошибок чуть ли не лучшая вообще из всего того, что я видел, а видел я не мало).

С другой стороны синтаксически Эйфель весьма прост, поэтому синтаксических ошибок в среднем вылазит весьма и весьма мало. То есть оно больно вначале, когда только-только начинаешь на нем писать.
« Последнее редактирование: Декабрь 13, 2011, 01:07:27 am от valexey »
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

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

С другой стороны синтаксически Эйфель весьма прост, поэтому синтаксических ошибок в среднем вылазит весьма и весьма мало. То есть оно больно вначале, когда только-только начинаешь на нем писать.
1. Ну это вопросы к реализации компилятора - хотя текущая версия Студио  -7 , могли  бы создатели и улучшить потреб. качества своего творения
2. Скорее пока не "въедешь " в его идеологию - а это не так уж и трудно... Но вот я например не могу въехать в идеологию разработчиков среды - какая -то она (среда) противоестественная... например - проект это совокупность классов размещенных в нескольких кластерах, казалось бы дай пользователю возможность навигации по ним и редактирования в редакторе нескольких классов= так нет - есть только возможность выбирать класс из комбо и редактировать его в  одной вкладке... или я ошибаюсь?
хотя вру , конечно, роль браузера классов  играет вкладка диаграммы, а доп вкладки с классами открываются по двойному щелчку на пиктограмме класса в этой диаграмме.. необычно как-то...
« Последнее редактирование: Декабрь 14, 2011, 12:12:22 pm от DIzer »

DIzer

  • Гость
Re: Впечатления от Eiffel.
« Ответ #3 : Декабрь 14, 2011, 12:14:51 pm »
Такое ощущение , что разработчики Иде положили  на все  общепринятые правила проектирования оного...

DIzer

  • Гость
Re: Впечатления от Eiffel.
« Ответ #4 : Декабрь 15, 2011, 01:06:29 am »
Алексей, вы не оценивали степень деградации производительности кода написанного с по всем правилам методики Мейера?