Можем ли мы использовать EiffelBuild для большого проекта или нам следует ограничить его использование для прототипирования?

EiffelBuild — это графический инструмент для создания графического интерфейса ISE, предназначенный для Eiffel.

Я попробовал его и нашел его очень удобным для пользователя, но я немного обеспокоен использованием такого инструмента для большого проекта. Использование инструмента для создания графического интерфейса может быть ограниченным.

Поскольку наследование Eiffel упрощает создание компонентов, в долгосрочной перспективе может быть лучше использовать наши собственные специализированные версии графических объектов, а не стандартные.

Знаете ли вы о каких-либо ограничениях EiffelBuild, которые оправдывали бы отказ от его использования для крупных проектов?


person Christian Lemer    schedule 12.09.2009    source источник
comment
Вау, я думал, что Эйфель совсем умер. У него почти не было пульса, когда он был в своем расцвете.   -  person duffymo    schedule 12.09.2009


Ответы (2)


Я бы ограничил использование EiffelBuild созданием прототипов. Это хороший инструмент, но в долгосрочной перспективе управление проектами EiffelBuild будет становиться все сложнее (и это верно для большинства дизайнеров):

  • Новые версии estudio выпускаются каждые 6 месяцев, что затрудняет поддержание ваших проектов EiffelBuild в рабочем состоянии при переходе от одной версии к другой, ожидая, что время от времени вам придется иметь дело с миграциями. Теперь весь ваш код Eiffel будет подвергаться одним и тем же проблемам, но с проектами в EiffelBuild вам придется иметь дело как с изменениями языка, так и с EiffelBuild (а иногда и с теми и другими одновременно...)
  • Если версии N+1 и N несовместимы, вам придется создать ветку ваших проектов EiffelBuild для поддержки обеих версий, пусть только в течение переходного периода.
  • Может быть сложно интегрировать несколько проектов EiffelBuild.
  • Некоторые графические компоненты могут быть трудны для повторного использования в EiffelBuild, например, специализированный компонент диаграммы (например, набор классов...), особенно если этот компонент сам по себе не является проектом EiffelBuild.
  • Мне было трудно повторно использовать детали, сделанные из одного приложения EiffelBuild, в другом, тогда как с достаточно хорошо спроектированными компонентами это гораздо меньшая проблема.

Надеюсь это поможет.

person Zoran Simic    schedule 19.09.2009

Я попробовал его и нашел его очень удобным для пользователя, но я немного обеспокоен использованием такого инструмента для большого проекта. Использование инструмента для создания графического интерфейса может быть ограниченным.

Как это "ограничительно"? И как влияет размер проекта?

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

Поскольку наследование Eiffel упрощает создание компонентов, в долгосрочной перспективе может быть лучше использовать наши собственные специализированные версии графических объектов, а не стандартные.

Какую специализацию вы добавляете? Я бы тщательно обдумал это, потому что это означает написание, отладку и постоянное поддержание большой иерархии классов. Будьте абсолютно уверены, что специализация необходима, стоит затрат и недоступна никакими другими способами, прежде чем делать этот шаг. Приложите честные усилия, чтобы количественно оценить стоимость, прежде чем принять решение.

Я бы проголосовал за написание вашего собственного генератора кода, как только вы достаточно напишете вручную, используя классы графического интерфейса библиотеки. Это устойчивое решение, ИМО.

ОБНОВИТЬ:

Я изучил Eiffel в рамках программы для выпускников, которая в середине 90-х решила, что это лучший доступный объектно-ориентированный язык. В то время C++ был превосходным, но считался сложным, Java не вышла из лабораторий Sun, а C# даже не мелькнула в глазах Андерса. Преподаватели в этом учреждении были очарованы дизайном по контракту и подразумеваемой им академической строгостью.

Я прочитал "Объектно-ориентированное программное обеспечение" Мейерса. Первое издание представило DbC и сделало Мейерса чем-то вроде звезды в объектно-ориентированном мире. На мой взгляд, второе издание было раздутой вещью, положившей конец его восхождению.

Честно говоря, если вы пишете эту большую систему для работодателя, я бы посоветовал вам отказаться от Eiffel и перейти на более распространенный язык ради них и вас самих. C# может быть хорошим выбором, если вы работаете на платформе Windows; используйте Java, если у вас гетерогенная среда или вы не можете позволить себе стек Microsoft.

У SO есть все четыре помеченных вопроса об Eiffel. Я думаю, объем говорит о чем-то. Возможно, вы правы в том, что популярность не всегда является лучшим показателем качества. Мне говорили, что бета-версия была лучшим техническим решением, чем VHS, но факт в том, что она потеряла свою популярность на рынке и сегодня ее нигде не найти. То же самое с Эйфелем. Я бы бросил это, если бы я был тобой.

ОБНОВЛЕНИЕ 2:

Очень хорошо - я не мог сказать из вашего исходного сообщения, каков был ваш опыт работы с другими языками.

«Высокое ожидание качества» означает, что вы верите, что Eiffel будет поддерживать качество на уровне языка таким образом, что вы не сможете воспроизвести его с другими языками. Я бы не согласился с этим. Качество кода больше зависит от навыков и практики разработчиков, чем от самого языка.

Дизайн по контракту полностью перепродан, ИМО. Я читал, что его часто отключают в производстве, потому что это действительно является хитом производительности. Если это верно для вас, как еще вы ожидаете, что Eiffel будет способствовать повышению качества?

Я хотел бы убедиться, что клиент, для которого вы пишете это приложение, понимает все последствия, которые принесет решение использовать Eiffel: ограниченный пул разработчиков для его поддержки, персонал, маргинализированный из-за использования мертвого языка и т. д. Убедитесь, что вы не переоцениваете его из-за субъективного желания.

person duffymo    schedule 12.09.2009
comment
У меня более 7 лет опыта работы с Java, и совсем недавно я занялся C#, чтобы оценить возможный переход к разработке приложений для Windows. Я по-прежнему убежден, что в моей области, где мы предъявляем очень высокие требования к качеству, Eiffel по-прежнему подходит. Но я прекрасно понимаю, что отсутствие мейнстрима имеет некоторые недостатки. - person Christian Lemer; 12.09.2009
comment
в моем домене, где у нас очень высокие требования к качеству - пожалуйста, укажите домены, которые не заботятся о качестве. Все делают, имхо. Системы реального времени и системы для медицинских устройств, авионики, управления силовыми установками и т. д. имеют особый стандарт по сравнению с другими, но они обычно не используют Eiffel. - person duffymo; 12.09.2009
comment
Я работаю с медицинскими приборами. Вы правы в том, что они не используют Eiffel... но, может быть, они могли бы извлечь из этого пользу. Я не преувеличиваю, я просто оцениваю. Кроме того, ISE, кажется, очень поддерживает своих клиентов, поэтому я бы не сказал, что Eiffel мертв... Я предпочитаю рассматривать его как надежное нишевое решение. - person Christian Lemer; 14.09.2009
comment
Действительно, очень маленькая ниша. Вы смелый человек, рассматривающий Эйфель для этого места. Удачи. - person duffymo; 15.09.2009
comment
Конечно, ISE очень поддерживает - по цене 5000 долларов США за платформу они действительно должны. Я использую SmallEiffel на постоянной работе уже 8 лет. Я люблю Eiffel, но ISE не для меня. - person Lothar; 16.10.2009