|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Vladimir Bormotov 2:5020/400 23 May 2003 13:08:22 To : Ilya Dikarev Subject : Re: pascal --------------------------------------------------------------------------------
Hi, Ilya!
>>>>> "ID" == Ilya Dikarev <Ilya.Dikarev@f984.n463.z2.fidonet.org> writes:
ID>>> Ведь далеко не все есть в библиотеках.
VB>> готоывх численых методов в фортрановских библиотеках больше, чем в
VB>> библиотеках какого-либо другого языка.
ID>>> А осваивать придется _новый_ (для меня) язык.
VB>> Угу. Вот мы как-то подумали, почитали про Eiffel, и освоили. Была
ID> А энто что за зверь?
OO-язык, со строгой статической типизаций.
Т.е. на момент компиляции должны быть известны ВСЕ классы, с которыми
работает програма. компилятор проверяет ВСЕ соответсвия всех типов всех
объектов.
Hо сильно рпимечателен Eiffel тем, что реализует парадигму design by
contract.
Подробности можно почитать на www.eiffel.com, и далее по ссылкам.
Мы пользовали SmallEiifel, потом он отрелизился, и стал SmartEiffel.
берется на http://smarteiffel.loria.fr/ Это такой GPL "компилятор".
В кавычках, потому что практически все компиляторы Eiffel фактически
генерят ANSI C исходник, и для кодогенерации используют компиляторы C.
Логика примерно следующая "зачем нам делать то, что уже хорошо сделано в
компиляторе Си?". Этот факт, еще больше пподкрепил мое мнение, что
Си - это кроссплатформеный ассемблер, и писать на нем РУКАМИ, слишком
дорого, и оправдано только в очень редких случаях.
Hе путать, с С++, котоый таки уровнем по-выше.
VB>> задача, на которую было выделено 3 месяца (из расчета на одного человека).
VB>> Переход с Си на Eiffel после первого месяца дал экономию в месяц. Т.е. за
VB>> неделю инструментарий был освоен, и через три недели было готовое решение
VB>> задачи. Сильная экономия времени была на том, что это ОО + статическая
VB>> типизация. Отладчиком рабоать СОВСЕМ не приходилось, если программа
VB>> падала - выдавался ПОЛHЫЙ traceback, со значениями всех классов.
VB>> Да, странновато на каждое падение видеть пару тысяц строк текста в
VB>> traceback, но зато четко видно где спорол глупость.
ID> Туго я что-то себе это представляю.
нам, людям котоыре в основном используют python, это было представить
легко. Что такое нормальные traceback, мне давно известно, и как этим
пользоваться я знаю. И честно говоря, я сильно сочувствую людям, которые
расколупывают корки с помощью gdb, или вообще пошагово ходять в
отладчиках, в поисках "а где тут у нас неправильно чего делается".
Я просто в нужных местах или делаю отладочную печать, или генерю
исключение. Заворачивание критических секции кода в try-except вообще
стандартная практика, и тогда исключение генерит сама програма, в случае
"выхода за критические рамки". Результат - traceback, в котром виден стек
исполнения, что откуда вызывалось, с какими значениями и так далее.
В динамическом python, есть стандартные модули для работы даже с
traceback, и на этапе выполнения можно самому перхватывать исключния, и
делать какие-либо выводы.
В "статическом" Eiffel исключение означает что "программер что-то не
учел".
--
Bor.
--- ifmail v.2.15dev5
* Origin: BorHomeLand (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/254105b810d4.html, оценка из 5, голосов 10
|