OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 22 Октябрь, 2019 14:19

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Интервью с Бертраном Майером
СообщениеДобавлено: Вторник, 26 Апрель, 2011 15:31 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 819
Откуда: Казань
Прочитал главу 17 из книги "Пионеры программирования", в которой берется интервью у Бертрана Майера создателя языка Eiffel.
Вот интересные цитаты из этого интервью:
Цитата:
Нужны, конечно, контракты, что для меня было самым естественным делом. Все так переживают из-за них, а мне до сих пор непонятно, как можно программировать без контрактов.

Цитата:
Один из важных уроков, усвоенных мною из жизни, состоит в том, что люди читают начало книги, поэтому фактически это совет тем, кто пишет книги, — очень тщательно выбирайте, что поместить на первые 50 страниц своей книги, потому что 90% читателей на этих 50 страницах и остановятся, даже если книга очень хорошая.

Цитата:
ООП с самого начала было частью структурных методов. Структурное программирование относилось к более низкому уровню, а объектно-ориентированное — к более высокому, но никакой пропасти между ними не было.

Цитата:
Это был полный абсурд, потому что как бы ни был хорош Си, он плохо подходит для описания алгоритмов, не говоря уже об их изучении. Впечатление было ужасное, потому что вместо преподавания того, о чём я хотел рассказать в этом курсе, мне приходилось помогать студентам устранять ошибки в их программах, связанные с указателями Си и аналогичными его особенностями. Из этого я сделал два вывода. Во-первых, никогда больше не соприкасаться с Си в качестве языка, ис-
пользуемого человеком. Си — неплохой язык, если его генерирует компилятор, но идея писать на нём вручную совершенно абсурдна. Во-вторых, я понял, что единственный способ представить основные структуры данных и алгоритмы — это оснастить их в полной мере инвариантами циклов, вариантами циклов, пред- и постусловиями.

Цитата:
Для меня это бессмысленный вопрос, точнее, его нужно задавать тем, кто не пользуется контрактным программированием, — это они должны ответить, почему. Я просто не понимаю, как можно писать какие-то элементы программы, не потрудившись обрисовать, для чего эти элементы нужны. Это вопрос, который нужно задать Гослингу, Страуструпу, Алану Кэю или Хейлсбергу. Как они могут писать программы или разрабатывать язык, с помощью которого люди будут писать программы, и не обеспечить такой механизм? Просто не понимаю, как можно без этого написать хотя бы пару строк кода. Спрашивать человека, зачем он применяет контрактное программирование, — это всё равно что спрашивать, зачем он пользуется арабскими цифрами. Пусть те, кто использует для умножения римские цифры, объясняют, зачем они это делают.

Цитата:
Ещё нужно отметить, что язык должен быть как можно скромнее. Сегодня есть много языков, которые я называю высокомерными, с массой необычных символов и условностей, которые нужно изучить, чтобы быть допущенным во внутренний круг.

Цитата:
Люди учатся программировать на Eiffel, изучая стандартные библиотеки, такие как EiffelBase или графическая библиотека EiffelVision. Это библиотеки высокого качества, которые могут служить моделью для хороших программ.

Цитата:
Я уже сказал, что не понимаю, как можно программировать без контрактов, но что ещё труднее понять — как могут существовать предположительно многократно используемые компоненты без чёткой спецификации того, что эти предположительно многократно используемые компоненты делают.

Цитата:
На самом деле, немецким я владею не очень хорошо. Мой родной язык французский. С английским стараюсь изо всех сил. Я довольно бегло говорю по-русски. У меня даже есть диплом магистра по русскому языку, хотя я говорю далеко не на том уровне, который должен быть у человека с дипломом магистра. Я прилично говорю по-итальянски. Я без особого труда читаю лекции по-русски. По-итальянски я могу читать лекцию в течение 15 минут, но потом у меня начинается перегрев мозга.

Цитата:
Я также полагаю, что тот, кто знает хотя бы один иностранный язык, лучше говорит на своём родном языке.

Цитата:
Мне следовало бы подходить к программированию более математически, чем я это делаю. Я убеждён, что через 50 лет программирование станет разделом математики.

Цитата:
Разница между наукой и техникой, если несколько упростить дело, состоит в том, что в науке вам нужно лишь несколько толковых идей; в технике приходится заботиться об огромном количестве деталей, большинство из которых не очень сложны, но их очень много. Таким образом, с одной стороны немного остроумных идей, а с другой — множество не очень сложных вещей. Для программирования характерно, что требуется и то, и другое.

Цитата:
Сложность программирования имеет двойственный характер: это научная сложность и техническая сложность.

Цитата:
Идея в том, чтобы обеспечить единство на протяжении всего процесса создания ПО: единый набор задач, единый набор решений этих задач и единая нотация для описания результатов — к чему и стремится язык Eiffel.
Это полностью противоречит тенденциям в развитии нашей отрасли за последние 20 лет, которые я в данном случае не одобряю. Это тенденции к разделению, потому что оно выгодно для бизнеса, поскольку вынуждает людей покупать инструменты для анализа, инструменты для проектирования и IDE, а также на каждом уровне пользоваться услугами консультантов.

Цитата:
Кроме того, как мне кажется, люди не понимают, что, скажем, спецификация по существу в такой же мере ПО, в какой им является реализация.

Цитата:
Механизм контрактов был включён в Eiffel с самого начала, и идея всегда была в том, что в долгосрочном плане контракты станут использоваться для доказательства программ, но в краткосрочном плане они будут использоваться для тестирования. Одним из результатов этого является возможность включить контроль контрактов во время исполнения, и тогда при нарушении контракта будет генерироваться исключение.

Цитата:
Остаётся генерация тестов, для чего мы используем метод, который поначалу кажется очень глупым, но на самом деле работает замечательно: случайное или квазислучайное генерирование. Этот инструмент создаёт объекты почти случайным образом и затем вызывает все подпрограммы, все методы соответствующих классов с почти случайными аргументами. Мы просто ждём. Мы называем это «обеденным тестированием». Нажимаем на кнопку, запускаем тестирование и уходим на обед, а вернувшись через час, смотрим, где нарушены постусловия.

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

Цитата:
Думаю, Eiffel — первый коммерческий язык со свойством void-безопасности, т.е. гарантией от разыменования нулевых указателей. Это реализовано в версии 6.4, где полностью переработаны библиотеки. Данная проблема обычна для объектно-ориентированных языков, даже для Си или Паскаля, и состоит в том, что x.f может вызвать аварийную ситуацию, если х имеет значение null, или void в терминологии Eiffel. Программирующие на Eiffel теперь совсем не рискуют.

Цитата:
Чему можно научиться на вашем опыте?
Бертран: Не обращать внимания на моду и выбирать то решение, которое правильно с точки зрения разума.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интервью с Бертраном Майером
СообщениеДобавлено: Вторник, 26 Апрель, 2011 17:22 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Rifat писал(а):
Прочитал главу 17 из книги "Пионеры программирования", в которой берется интервью у Бертрана Майера создателя языка Eiffel.
Вот интересные цитаты из этого интервью:...
Цитата:
Идея в том, чтобы обеспечить единство на протяжении всего процесса создания ПО: единый набор задач, единый набор решений этих задач и единая нотация для описания результатов — ...

Цитата:
Кроме того, как мне кажется, люди не понимают, что, скажем, спецификация по существу в такой же мере ПО, в какой им является реализация.

Цитата:
Чему можно научиться на вашем опыте?
Бертран: Не обращать внимания на моду и выбирать то решение, которое правильно с точки зрения разума.
Хорошо сказано... в частности, насчёт спецификации как части ПО (я бы сказал в своих представлениях "предметника" - "внешней схемы").


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Интервью с Бертраном Майером
СообщениеДобавлено: Вторник, 26 Апрель, 2011 21:24 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3096
Откуда: Астрахань
Вообще книжка вся интересная... :)
Только читать подробно - некогда... :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2019, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB