Вышла (http://www.eiffel.com/general/news/2013/eiffelstudio72_relea... версия 7.2 EiffelStudio - интегрированной среды разработки для языка Eiffel (http://ru.wikipedia.org/wiki/Eiffel). Eiffel - это оъектно-ориентированный язык, поддерживающий технологию проектирования по контракту (http://www.rsdn.ru/article/design/Code_Contracts.xml), основанную на принципе (http://habrahabr.ru/post/83269/) подстановки Барбары Лисков. Технология проектирования по контракту и юнит-тесты являются взаимодополняющими (http://habrahabr.ru/post/146702/), позволяя повысить корректность ПО.
Основные характеристики языка Eiffel и среды EiffelStudio:- Полностью объектно-ориентированный подход, основанный на классах, межклассовые отношения только двух видов: быть клиентом класса и быть наследником класса.- Статическая типизация, автоматическая сборка мусора, обобщенное программирование.- В языке Eiffel отсутствуют: глобальные переменные, объединения (union) и структуры, перегрузка методов классов, инструкция goto, неявные преобразования типов, указатели.- Принцип разделения команд и запросов (http://ru.wikipedia.org/wiki/CQRS) направлен на улучшение структуры проекта и читаемости исходного кода.- Технология "Проектирование по контракту" (http://www.opennet.me/soft/DesignByContract.pdf) - предусловия, постусловия, инварианты поддерживаются непосредственно самим компилятором языка (не требуются дополнительные инструменты и библиотеки).- Поддержка множественного наследования; разрешение конфликта имен (компоненты, наследованные от разных классов имеют одно и тоже имя) путем переименования конфликтующих компонентов у класса наследника; возможность выбора версии компонента при дублируемом наследовании.- Void-safety (http://www.opennet.me/soft/VoidSafety.pdf) - технология, позволяющая избавиться от ошибки разыменования пустого указателя с помощью прикрепленных и открепляемых типов, контроль осуществляется (http://eao197.blogspot.com/2009/10/compprog-void-safety-eiff... компилятором.- SCOOP (http://www.opennet.me/soft/SCOOP.pdf) - специальная модель многопоточного программирования, добавляющая всего одно ключевое слово в язык.- Кроссплатформенная реализация - существуют версии EiffelStudio для FreeBSD, Linux, OpenBSD, Solaris (в том числе и Solaris SPARC), Windows.- Возможность вызова функций языка C.- Байткод, полученный в результате компиляции, транслируется в эквивалентные конструкции языка C, которые затем компилируются компилятором языка C, что позволяет добиться высокой скорости выполнения программ.- Melting Ice Technology - время компиляции при внесении изменений пропорционально объему измененного кода.
Некоторые изменения в новой версии:
- Поддержка кодировки Unicode в именах файлов, переменных среды, аргументах командной строки, сообщениях об исключениях с сохранением совместимости с текущим кодом.- Улучшения в подсистеме Eiffel Information System.- Возможность переименования в утилите рефакторинга компонента или класса путем повторного использования существующего имени.- Добавлены запросы is_first и is_last к итераторам.- Устранены задержки в технологии SCOOP, касающиеся клиента SCOOP и процессора. - Поддержка SQL запросов в кодировке Unicode.- Поддержка неизменяемых строк.- Выполнение выборки/обновления/удаления из БД как единой транзакции.
В следующей версии 7.3 планируется внести следующие изменения (http://dev.eiffel.com/Environment_Roadmap):- Улучшение окна автодополнения кода (http://eiffelroom.org/node/656), отображение комментария и контрактов выбранного компонента.- Улучшение мастеров, включающих технологии void-safety и SCOOP.- Улучшения технологии void-safety.- Улучшение настроек void-safety путем добавления дополнительного уровня проверки, контролирующего только согласованность типов (без проверки инициализации), чтобы упростить миграцию существующих проектов.- Интервалы типа для избежания вызовов с неверными аргументами.- Всплывающая подсказка, вычисляющая выражение, при наведении курсора на выражение.- Улучшение производительности технологии SCOOP.
С полным списком изменений текущей версии можно ознакомиться здесь (http://docs.eiffel.com/book/eiffelstudio/release-notes-eiffe... (на английском). Существуют две версии EiffelStudio - коммерческая и открытая под лицензией GPL, отличие между ними заключается только в возможности создания приложений с закрытым кодом в коммерческой версии. Свободная версия для различных платформ доступна для загрузки (http://sourceforge.net/projects/eiffelstudio/files/EiffelStu....URL: http://www.eiffel.com/general/news/2013/eiffelstudio72_relea...
Новость: http://www.opennet.me/opennews/art.shtml?num=36363
Что-то последнее время участились новости про Eiffel на опеннете. Аж поковырять его интересно стало.
Очень рекомендую Object-Oriented Software Construction (Объектно-ориентированное конструирование программных систем) Бертрана Мейера (автор Eiffel) — лучшая книга по ООП. Ну и примеры там на Эйфеле.
Спасибо большое! Обязательно посмотрю.
Для начала можно посмотреть более современную книгу Мейера "Почувствуй класс" (Touch of Class), там попроще все написано.
А кто в курсе - это чисто академ-язык вроде оберонов всяких или на нём кто-то что-то пишет?
Да. На nix os с 85 года. Финансы и тд. По-видимому Европа.
Это не академический язык, но проекты в основном корпоративные и в открытый доступ не выкладываются.
Qt биндинг есть?
Для GUI там своя библиотека EiffelVision 2 на основе GTK:
http://docs.eiffel.com/book/solutions/eiffelvision-2