The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Eiffel Studio 6.8 - IDE для языка Eiffel. Новая модель многопоточного программирования SCOOP.

15.06.2011 12:47

Вышла версия 6.8 EiffelStudio, интегрированной среды разработки для языка Eiffel. Eiffel - это объектно-ориентированный язык, поддерживающий технологию проектирования по контракту. Версия 6.8 практически целиком посвящена внедрению принципиально новой модели многопоточного программирования SCOOP - Simple Concurrent Object-Oriented Programming.

В настоящее время в таких языках, как Java, C++ и C# многопоточность реализуется с помощью специальных низкоуровневых библиотек, которые предоставляют механизмы синхронизации и взаимодействия потоков. Эти библиотеки основаны на концепциях 1960-х годов (например, мьютексы и семафоры), и, по мнению разработчиков языка Eiffel, плохо совместимы с современными объектно-ориентированными концепциями. Всё это заставляет разработчика существенно менять способ своего мышления при переходе к многопоточности. Но даже в случае успешного освоения соответствующих инструментов, программы достаточно сложны для написания, понимания и поддержки. Трудно гарантировать их корректность, так как традиционные средства тестирования и отладки не применимы.

Модель SCOOP является расширением объектно-ориентированного подхода и добавляет всего лишь одно ключевое слово "separate" для написания многопоточных программ. В качестве примера можно привести обычную (не многопоточную) подпрограмму (метод класса), служащую для перевода денежных средств с одного счёта на другой:



   transfer (amount: INTEGER ; source, target: ACCOUNT)
       -- Перевести amount долларов со счёта source на счёт target.
     require
       enough: source.balance >= amount
     do
       source.withdraw (amount)
       target.deposit (amount)
     ensure
       removed: source.balance = old source.balance – amount
       added: target.balance = old target.balance + amount
     end

Тело подпрограммы (do...) описывает необходимые действия: извлечь (withdraw) необходимую сумму со счёта source и пополнить (deposit) этой же суммой счёт target. Предусловие (require...) проверяет условие применимости данной операции, а именно требование того, чтобы на балансе счёта было достаточно денежных средств (не менее amount). Постусловие (ensure...) описывает конечное состояние баланса счетов source и target.

При переходе к многопоточному выполнению нельзя допускать произвольного чередования операций. Например, если на исходном счёте 1000 долларов, и есть две операции на снятие средств со счёта по 800 долларов каждая, то эти операции не могут быть выполнены параллельно, так как в этом случае для каждой из них будет удовлетворено предусловие, что приведет снятию 2*800=1600 долларов. При обычном подходе пишутся сложные операции синхронизации, гарантирующие последовательное исполнение двух операций. В рассмотренном примере методы withdraw и deposit не должны чередоваться с операциями другого экземпляра подпрограммы transfer. В дополнение к этому, необходимо обеспечить ожидание операции при недостаточности средств на балансе счёта.

При использовании SCOOP для обеспечения многопоточного исполнения необходимо изменить лишь одну строчку вышеприведенного кода:


   transfer (amount: INTEGER ; source, target: separate ACCOUNT)
       -- Остальной код без изменений

Объявление счёта сепаратной сущностью указывает компилятору на обработку счёта несколькими потоками. Детали реализации скрыты от программиста, все необходимые проверки выполняются планировщиком SCOOP.

Модель SCOOP была разработана в начале 90-х создателем языка Eiffel Бертраном Мейером и описана в книге "Объектно-ориентированное конструирование программных систем". С тех пор модель развивалась, но основные принципы остались неизменными. Более подробно узнать о SCOOP можно из соответствующей документации. Детали реализации SCOOP и система типов описаны в статье и диссертации. С полным списком изменений версии 6.8 можно ознакомиться здесь.

Также стоит отметить, что последнее время технология проектирования по контракту находит свое применение в современных языках программирования:

  1. .Net 4.0 C# - библиотека Code Contracts, о которой можно подробнее узнать здесь или здесь;
  2. Java - библиотека Contracts for Java, разработанная компанией Google (подробнее здесь);
  3. C++ - библиотека Contract++

В заключение стоит упомянуть о том, что в мае 2011 года издательством "БИНОМ. Лаборатория знаний" выпущена на русском языке книга Бертрана Мейера "Почувствуй класс: учимся программировать хорошо с объектами и контрактами". Эта книга, предназначенная для обучения студентов объектно-ориентированному программированию на основе языка Eiffel, является обобщением многолетнего опыта преподавания соответствующих дисциплин в Швейцарском федеральном технологическом институте в г. Цюрихе (ETH).

Основные характеристики языка Eiffel и среды программирования Eiffel Studio :

  • Кроссплатформенная реализация - существуют версии EiffelStudio для FreeBSD, Linux, OpenBSD, Solaris (в том числе и Solaris SPARC), Windows
  • Автоматическая сборка мусора
  • Технология "Проектирование по контракту" - предусловия, постусловия, инварианты поддерживаются непосредственно самим компилятором языка (не требуются дополнительные инструменты и библиотеки)
  • Поддержка множественного наследования; разрешение конфликта имен (компоненты, наследованные от разных классов имеют одно и тоже имя) путем переименования конфликтующих компонентов у класса наследника; возможность выбора версии компонента при дублируемом наследовании
  • Обобщенное программирование
  • Возможность вызова функций языка C и компонентов классов C++
  • Melting Ice Technology - время компиляции при внесении изменений пропорционально объему измененного кода
  • Статическая типизация
  • Байткод, полученный в результате компиляции, транслируется в эквивалентные конструкции языка C, которые затем компилируются компилятором языка C (для Linux - GCC, для Windows - MinGW или компилятор Visual Stuido)
  • Void-safety - технология, позволяющая избавиться от ошибки разыменования NULL-указателя, контроль осуществляется компилятором.


  1. Главная ссылка к новости (http://www.eiffel.com/general/...)
  2. OpenNews: EiffelStudio 6.6 - IDE для языка Eiffel
  3. OpenNews: EiffelStudio 6.4 - IDE для языка Eiffel
Автор новости: croster
Тип: К сведению
Ключевые слова: Eiffel
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (49) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, vle (ok), 13:38, 15/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://www.eiffel.com/products/studio/

    EiffelStudio
    A Complete Integrated Development Environment
    ...
    Pricing for the Windows, Linux, and Mac versions of EiffelStudio
      is US$ 5,999.00 per license.
    Pricing for the Unix and VMS versions of EiffelStudio
      is US$ 8,999.00 per license.


    Вот это да!!!

     
     
  • 2.2, croster (ok), 13:40, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Это только для создания коммерческих приложений. Для создания программ под GPL и обучения программированию никаких отчислений не требуется.
     
     
  • 3.46, Аноним123321 (ok), 20:44, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это только для создания коммерческих приложений. Для создания программ под GPL и обучения программированию никаких отчислений не требуется.

    а для создания коммерческих-GPL-приложений -- требуется ? %) %)

     
     
  • 4.49, cobold (ok), 12:13, 16/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    скорее всего тоже нет, если достаточно тех библиотек что идут с GPL версией. А если приложению нужны крутые фишки от мелкософта, то наверное оно уже не GPL.
     
  • 2.4, Andrey Mitrofanov (?), 13:45, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот это да!!!

    ...смотрите также в нашей передаче "Профессиональные Программеры Завидуют"...

     
  • 2.23, umbr (ok), 15:43, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да... но не для всех.
    http://www.eiffel.com/licensing/licensing.html
     

  • 1.3, Аноним (-), 13:43, 15/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Господа аппрувящие новости, вы там прикалываетесь чтоли? Новость про какое-то IDE для языка который я впервые вижу - это у вас "главное". Зато критичная дырка в флеше - это мини-новость?! Вы там что, для определения важности кубики подбрасываете?

    Более того, новость про убунту и хромиум претенциозно вещает в заголовке что дескать, браузер будет заменен. Хотя разработчики только рассмотрели возможность. Маразм! Может быть, пора уже что-то делать с качеством материала? А то станете как секуритилаб.

     
     
  • 2.6, vle (ok), 13:52, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Господа аппрувящие новости, вы там прикалываетесь чтоли?
    > Новость про какое-то IDE для языка который я впервые вижу - это у вас "главное".

    То, что аноним не знает про Eiffel -- это проблемы анонима.
    Я вот знаю, даже писал как-то пару hello-world-ов на нем.
    Одно скажу, то, что Eiffel жив - это прекрасно.

     
     
  • 3.14, Аноним (-), 14:33, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Одно скажу, то, что Eiffel жив - это прекрасно.

    Да никто не спорит. Просто не понятно почему это - суперважно для всех. Данный язык врядли попадает даже в десятку самых используемых. Поэтому оно "суперважно" для пары человек, и "перпендикулярно" - для остальных. Поскольку новости для всех, получается что с расстановкой важности скорее всего не угадали. С другой стороны, с флешом иметь дело приходится почти всем, так или иначе. Дырка в нем и возможность взлома системы - это важно, да.

     
     
  • 4.17, vle (ok), 14:46, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а никто не спорит. Просто не понятно почему это - суперважно для всех.

    Потому что opennet - не только новостной сайт, но и немного образовательный.
    Вот ты, например, узнал о существовании нового для себя языка программирования.
    Кто знает, может быть кто-то незнающий откровет документацию и через полгода
    не сможет без него жить.

    Не бузи. Нормальная новость. Получше обсуждалова
    нумерации релизов бубунту, и сплетен из стана раработчиков.

     
     
  • 5.19, Аноним (-), 15:26, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только вот зачем смешивать образование с новостями Чтобы получить кашу Да И я... текст свёрнут, показать
     
     
  • 6.26, croster (ok), 15:58, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >должна быть релевантна не для кого-то одного, а (в идеале) для всех посетителей

    А эта новость косвенно затрагивает почти всех, просто Вы этого не понимаете. Сейчас многоядерные процессоры получили широкое распространение, а вот языки программирования за гонкой ядер не поспевают. Поэтому постоянно ищутся новые пути к многопоточному программированию. И от выбранного подхода будет зависеть и качество конечных программных продуктов, в том числе и количество багов. Один из таких подходов (реализованный на практике) и представлен в этой новости.
    >И я не считаю того что мне он нужен и важен.

    Не понимаю, что держит Вас в этой ветке? Идите в ветку про Flash и обсуждайте дальше дыру. А приоритеты новостей устанавливает не автор новости, так что с претензиями обращайтесь к руководству проекта.

     
     
  • 7.27, Andrey Mitrofanov (?), 16:05, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А эта новость косвенно затрагивает почти всех, просто Вы этого не понимаете.

    Кстати, напомнило, кто же такой Генерал Фэйлур и почему он читает мой диск??!

    > Сейчас многоядерные процессоры

    ...бороздят просторы Большого Театра!

     
  • 6.39, klalafuda (?), 18:23, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Да. И я не считаю того что мне он нужен и важен. И что мне это было важнее чем узнать про дырку в флеше.

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

     
  • 6.50, anonymous (??), 02:53, 17/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    просто ты невежда, вот и всё. гoвнoфлэш — это так, плесень. а вот Eiffel — это как раз штука важная, о которой не забудут и через пол-века.
     
  • 4.42, iZEN (ok), 19:05, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Eiffel — это прежде всего АКАДЕМИЧЕСКИЙ язык программирования с реализацией концепций ООП в таком виде, в котором они должны быть, но не полностью реализованы в популярных ООП-языках программирования Java, C#, C++. Этот язык является эталонной реализацией практического ООП, невзирая на синтаксис.

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

     
     
  • 5.51, anonymous (??), 02:55, 17/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А-А-А! верните старого iZEN'а, а то этот поддельный умные вещи говорит!
     
  • 2.7, croster (ok), 13:55, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >критичная дырка в флеше - это мини-новость?

    Это не первая, думаю и не посленяя дырка в этом глюкавом поделии.
    >какое-то IDE для языка который я впервые вижу

    Новости про Eiffel уже были:
    http://www.opennet.ru/opennews/art.shtml?num=26795

     
     
  • 3.11, Аноним (-), 14:18, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не первая, думаю и не посленяя дырка в этом глюкавом поделии.

    Да, но это поделие стоит у ~70% пользователей, в отличие от чудесатого IDE для чудесатого языка. Что несколько повышает важность проблемы.

     
  • 3.15, Аноним (-), 14:37, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Особенно прикольно выглядит:
    > Это не первая, думаю и не посленяя дырка в этом глюкавом поделии.

    И ...
    > Новости про Eiffel уже были:

    Внимание, вопрос: вы любите двойные стандарты? А как вам понравится заява что "новость про эйфель - тоже не первая и не последняя"? А если еще и про глюки ввернуть? Новости по логике вещей должны быть нейтральными, а кому и что (не)нравится - это уже личные предпочтения индивидуалов, не имеющие ничего общего с новостями.

     
     
  • 4.18, croster (ok), 15:01, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >новость про эйфель - тоже не первая и не последняя

    Речь идет не о новостях, а о проблемах уязвимости. А новостями о выходе новых версий Flash не обделен:
    10.1: http://www.opennet.ru/opennews/art.shtml?num=27585
    10.2: http://www.opennet.ru/opennews/art.shtml?num=29547
    10.3: http://www.opennet.ru/opennews/art.shtml?num=30552

    >Новости по логике вещей должны быть нейтральными

    Новость написана нейтрально, никто Вас не принуждает пользоваться этими инструментами.

     
     
  • 5.20, Аноним (-), 15:30, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Новость написана нейтрально,

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

    > никто Вас не принуждает пользоваться этими инструментами.

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

     
     
  • 6.24, croster (ok), 15:46, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >можно вдувать даунлоад-бар или еще какой-нибудь аддон браузерам
    >Инициируя даунлоад без спроса.

    Какой даунлоад-бар, какой даунлоад без спроса? Что за чушь Вы здесь порите? Похоже на то, что Вы просто не понимаете, о чем здесь идет речь.
    >Это больше на пиар-акцию похоже

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

     
  • 2.8, vadiml (ok), 13:59, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Сам язык довольно известен.
    И если Вы впервые "видите" Eiffel, то это скорее проблема "впервые видящих".

     
     
  • 3.21, Аноним (-), 15:34, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Сам язык довольно известен.

    Какой критерий довольно? В топ10 например - входит? А то знаете, брейнфак тоже достаточно известен. Давайте начнем постить новости всех интерпретаторов брейнфака как "важные"?

    > И если Вы впервые "видите" Eiffel, то это скорее проблема "впервые видящих".

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


     
     
  • 4.22, vadiml (ok), 15:39, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Я на Eiffel тоже не пишу, но когда не знают основных направлений программирования и их реализаций в языках программирования, то это говорит только о квалификации незнающего.
     
     
  • 5.30, Аноним (-), 16:30, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Конечно, говорит что он профессионал и занимается делом, а не метается между новомодными неработающими "серебряными пулями" типа Go и этого поделия.
     
  • 4.28, croster (ok), 16:11, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >В топ10 например - входит?

    А причем здесь топ-10? На основании каких критериев Вы составляете свой топ-10? Вы считаете, что те языки, которые не попали в Ваш топ, не имеют права быть в новостях?
    >инкарнацию каждого из них, используемую некоторым количеством маргиналов надо вывесить в важные

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

     
  • 2.10, tavaaver (?), 14:11, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А что, критичная дыра во флеше — это так важно?

    Ну я с утра прочитал про дыру, дошел до работы — уже обновление вышло и автоматически поставилось. Зато минут 15 читал про язык Eiffel, про который мало знаю. И что?

    Раз уж вы так радеете за инфу про дыры, то расскажите нам, пожалуйста, как вы с этой конкретной дырой во флеше бороться будете? Напишете и отправите в Адоб патч?

     
     
  • 3.13, Аноним (-), 14:28, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > обновление вышло и автоматически поставилось.

    Это как? При том что в новости написано что будет исправлено только к концу недели?

     
     
  • 4.29, foss (?), 16:16, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> обновление вышло и автоматически поставилось.
    > Это как? При том что в новости написано что будет исправлено только
    > к концу недели?

    :-)

     
  • 4.38, tavaaver (?), 17:42, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну значит это предыдущее обновление, а новое в конце недели будет.
    Какая в общем разница?
     
     
  • 5.54, anonymous (??), 03:21, 17/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну значит это предыдущее обновление, а новое в конце недели будет.
    > Какая в общем разница?

    по-ходу, никакой. более того: какое отношение «новости» про флэш вообще имеют к открытым технологиям — я до сих пор понять не могу.

     
  • 2.12, Аноним (-), 14:22, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Наверное потому что это малоизвестный и интересный проект Что не так Заголов... текст свёрнут, показать
     
     
  • 3.16, Аноним (-), 14:45, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот вам - интересный А мне - перпендикулярный Зато мне вполне себе интересн... текст свёрнут, показать
     
     
  • 4.32, Аноним (-), 16:32, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Предложение и намерение - немного разные вещи.

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

    В толковом словаре "намерение" кстати трактуется, как "предположение сделать что-нибудь, желание, замысел Иметь н. Без всякого намерения (без определнной цели, неумышленно). Благие намерения (ирон.)" или "мысль, замысел, умысел, план, предположение, проект (ирон.: прожект), расчет"

     
  • 2.57, Клыкастый (ok), 11:41, 17/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Дырка во флеше, стотыщнаццатая, который приличные люди выпилили со своих машинок либо заменили - новость мелкая. Что не так?
     

  • 1.9, dRiZd (?), 14:00, 15/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая новость!
    Я уж думать о нем перестал, уж очень давно с ним работал.
    Для тех кому важно время разработки - хорошее подспорье.
     
  • 1.25, lucentcode (ok), 15:50, 15/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересный язык, и контрактное программирование тоже Ъ, но стоимость среды(для создания не GPL-софта) и является той преградой, которая не дала этому языку подняться. Популярность C/C++/Java как раз во многом объясняется большим выбором бесплатных(и платных, но не дорогих) компиляторов и сред.
     
     
  • 2.31, Аноним (-), 16:30, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хочется контрактного программирования, но неохота брать Eiffel?
    Изучаются основы, затем берется любой язык с метапрограммированием вроде Лиспа, и в него пихаются макросы - вот и все.
     
     
  • 3.34, Аноним (-), 16:35, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Хочется контрактного программирования, но неохота брать Eiffel?
    > Изучаются основы, затем берется любой язык с метапрограммированием вроде Лиспа, и в
    > него пихаются макросы - вот и все.

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

     
  • 3.40, cobold (ok), 18:43, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Хочется контрактного программирования, но неохота брать Eiffel?

    Не надо ничего никуда пихать, нужно взять D если Eiffel не подходит. А если вопрос только в лицензии, то можно взять gobo eiffel http://www.gobosoft.com/eiffel/gobo/index.html , он полностью свободный. Только для коммерческого проекта дешевле он не выйдет, Eiffel Studio реально прорабатан чтобы Вам лишних движений не делать, и IDE там очень хорошая.

     
  • 2.43, cobold (ok), 19:24, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Популярность C/C++/Java как раз во многом объясняется большим выбором бесплатных(и платных, но не дорогих) компиляторов и сред

    да, толковые расширения для netbeans / eclipse сделали бы его более популярным. Хотя реальные проблемы слегка другие, контрактное программирование само по себе оказалось слишком абстрактно и сложно для большинства реальных задач. Попадались интересные статьи от разработчиков, которые после нескольких лет на eiffel постепенно переползали на яву, соответственно с контрактного программирования на юниттесты. Суть в том, что контракты в программе вам нужны, если заказчик ожидает математически корректное доказательство соответствия программы спецификациям. А поскольку 99.9% заказчиков при всём желании не могут составлять такие спецификации, где это имело бы смысл, реальная ниша у контрактного программирования всётаки довольно маленькая. Зато практически везде и всегда возникает необходимость симулировать определённое взаимодействие с программой, в чём контракты сами по себе не помогают, зато юниттесты прекрасно справляются.

    Конечно, это всё ни сколько не касается самого языка eiffel - язык сам по себе очень мощный и гармоничный. IMHO студентам для серьёзного обучения "крупнокалиберному" программированию это самый лучший выбор.

     

  • 1.33, Аноним (-), 16:33, 15/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Проектирование по контракту - очередная теоретическая ничего не решающая ересь, средство разработки проприетарное (!!!) - зачем это здесь? Хотя больше я удивлён что оно компилируется в нативный код, а не в jvm/clr мусор.
     
     
  • 2.35, croster (ok), 16:57, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Проектирование по контракту - очередная теоретическая ничего не решающая ересь

    На основании чего Вами сделаны такие выводы? Есть опыт разработки с использованием этой технологии?
    >средство разработки проприетарное (!!!) - зачем это здесь?

    Исходный код открыт (GPL), есть инструкция по сборке:
    http://download.origo.ethz.ch/eiffelstudio/3067/PorterPackage_68_86627_gpl.ta
    http://dev.eiffel.com/Compiling_EiffelStudio
    Open source и коммерческая версия отличаются лишь возможностью создания коммерческих приложений в последней.

     
     
  • 3.36, Sergey722 (ok), 17:17, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Исходный код открыт (GPL)

    Чего-то я не понимаю как можно на GPL-ном продукте запретить писать коммерческие продукты. Там библиотеки что ли нужны для работы программы? Сама ГПЛ-то не запрещает создавать что-то коммерческое. Я вот могу в LO писать книги и продавать (вот только купят ли?).

     
     
  • 4.37, Nxx (ok), 17:23, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Рантаймы. Также как было с Qt и сейчас с KBasic.
     
  • 3.45, cobold (ok), 19:33, 15/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Open source и коммерческая версия отличаются лишь возможностью создания коммерческих приложений
    > в последней.

    Там, если не ошибаюсь, десктопные виджеты можно было только в коммерческой версии делать, и .net компилятор тоже коммерческий. Плюс саппорт конечно

     

  • 1.48, Вова (?), 08:34, 16/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто-то сказал, что знания программиста устаревают наполовину каждые полгода. По моему мнению, это сильное преувеличение, но суть подмечена точно. Лично мне интересно видеть такие новости, потенциально можно выхватить что-то полезное даже из языка, который ты никогда не будешь использовать.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Fornex
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру