LINUX.ORG.RU

Бертран Мейер и функциональное программирование.


0

0

Я в журнале Мир ПК за 2005 года видел статью за авторством Г.И. Рузайкина под названием "Бертран Мейер беседует", примерно следующего содержания (несущественное на мой взгляд вырезал): "Россию посетил известный мэтр программирования профессор Бертран Мейер, создатель Eiffel, популярного языка объектного программирования. ......... Поэтому курс программирования в ETH строится на изначальном погружении студентов в круг возможностей объектно-ориентированного программирования на основе обращенного учебного плана и подхода снаружи — внутрь. ..................... На первом же занятии студентам предлагается код объемом в 100 тыс. строк (в виде библиотеки Traffic Library и других программ), на базе которого на протяжении семестра нужно писать приложения. Сначала они знают лишь интерфейс методов, которые им даны, затем постигают устройство классов, а в итоге создают подобные библиотеки. При этом языком программирования служит Eiffel. Приведенное Б. Мейером в качестве примера учебного задания описание схемы парижского метрополитена с первых же шагов обучения погружает студентов в круг практических задач, что позволяет им писать полезные приложения вроде нахождения оптимального маршрута передвижения по метро.

................... Повторяя перед студентами факультета бизнес-информатики в ГУ—ВШЭ многое из своего выступления в Рыбинске, Б. Мейер афористически охарактеризовал современное программирование. Вот несколько его высказываний, над которыми полезно было бы поразмышлять и читателям «Мира ПК».

«Конструирование программных комплексов — детский взгляд на устройство мира. Наука предлагает контраверсный подход».

«Нет схематологии, или функциональному программированию!» (Теория схематологии, например, изложена в книге «Structure & Interpretation Computer Programs», авторы Abelson и Sissman.)

«Программирование — не только хакинг (виртуозное знание возможностей программ), это также математика». ..............................

Интересует, что же имел в виду почтенный мэтр, критикуя функциональное программирование. Что значит схематология? В чем недостатки?

anonymous

Б. Мейер - жадный ублюдок. Слушать его не надо.

anonymous
()

> Что значит схематология?

Программирование на scheme, судя по всему.

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

nsav-ng
()

наука в принципе непрактична ;( это единственное,что она уже в течении более двухсот лет пытается доказать.

а программирование - не наука, и совсем не искуство как кажется некоторым. Образно, программер - шут, клоун чью шутки понятны сдесь и сейчас. ОО ? ФП ?? бис.. арена хлопочет.. а всё что ты делаешь - в конечном итоге набор состояний Тюринг-машины - чистая математика, и как ты это не обзови, лента будет проглядывать.

Мальчик, любой подход НИЧЕГО не значит, значим только конечный результат..Мы РЕМЕСЛЕННИКИ как ни крути..

"Метры" выдающие на горА "свежии" мысли о смерти того или подхода, слегка лукавят, обильно огребая средства к существоанию..что-ж, тоже ремесло ;-)

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Насчёт науки. 20-й век подарил миру 90 процентов учёных, известных истории. Еще одна маленькая особенность - наука таки сместилась туда, где она более эффективна - в промышленность. В одной только парфюмерной промышленности на Западе научных работников больше, чем в академической. Есть мнение, что наука промышленная эффективнее академической науки, несмотря на своеобразие последней.

Насчёт искусства - мой товарищ, директор телеканала, режиссер, профессиональный фотограф, дизайнер готов поставить золотой памятник тем, кто придумал Adobe After Effects, хоть и С++, и ООП, и писали долго, и вылетает программа. Увы, это был не я на С++, php или scheme. Хотя я и не программист. ЯП и машина Тьюринга всё-таки инструмент, имхо. Как кисть для художника, который может нарисовать безвкусицу, а может шедевр.

Отгребли ведь парни из Adobe средства к существованию. И Моцарт всю жизнь искал нанимателя побогаче и познатнее, и с хорошим вкусом. Я таких знаю.

anonymous
()

Насчет схематологии. Возможно, имелась в виду рекурсивная схематология. Рискну сделать еще выдержку отсюда: http://referat.niv.ru/referat/referat.pl?14/hai-0505/index.html О сравнении классов схем. Программы для ЭВМ, будь то программы, записанные на операторном языке, или программы на рекурсивном языке, универсальны в том смысле, что любую вычислимую функцию можно запрограммировать и найти ее значения для заданных значений аргументов. При этом, как уже указывалось, не требуется богатого набора программных примитивов и базовых операций: достаточно тех средств, которые моделируются стандартными схемами, плюс одна интерпретированная операция и один предикат. Это значит, что различные классы программ не имеет смысла сравнивать по мощности, понимаемой как способность реализовать различные алгоритмы,— все они оказываются универсальными. В то же время программисты знают, что одни программные примитивы являются «более выразительными», чем другие, что запись алгоритмов с привлечением рекурсии короче, чем итерационное представление, но вычисления по такой программе могут истребовать больше времени, и т. д. При переходе к схемам программ возникает возможность поставить и исследовать проблему выражения одних наборов примитивов через другие в более чистом виде. Задачи такого типа образуют сравнительную схематологию, основу которой составляют теоре- мы о возможности или невозможности преобразования схем из одного класса в схемы другого. При этом наряду с основной задачей — выяснением соотношений между различными средствами программирования — решается и другая, внутренняя задача схематологии. Действительно, если мы умеем трансформировать один класс схем в другой, то сможем переносить результаты, полученнные для некоторого класса схем, на другие классы.

Отсюда: http://ito.edu.ru/2000/II/4/4104.html Для более четкого понимания элементов технологии схематизации полезно привести несколько определений, впервые предложенных В. Д. Паронджановым:

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

Отсюда: http://www.icfcst.kiev.ua/Formes/forme125.htm .... Собственно различные типы таких исчислений, или алгебр алгоритмов предлагались и исследовались ранее: алгебры Дейкстры, схемы Янова, граф-схемы Калужнина, алгоритмические алгебры Глушкова. .... Но автор не ограничивается этим. Он ставит перед собой цель рассмотреть эти аппараты с более общих позиций, вводя для этого обобщающее понятие алгебры схематологии. Это понятие оказывается достаточно продуктивным и с чисто математических позиций: автор рассматривает для него традиционные задачи функциональной полноты и структуры подалгебр и получает содержательные результаты.

Из изначальной статьи:

Устойчивый навык — абстракциям научить, а не веровать.

Ссылка на статью с Бертраном Мейером: http://megalib.com/books/1099/052.htm

anonymous
()
Ответ на: комментарий от anonymous

> Есть мнение, что наука промышленная эффективнее академической науки, несмотря на своеобразие последней.

В чем измеряется эффективность "академической науки" ?

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

anonymous
()

Это извечный спор "сверху вниз" vs. "снизу вверх". Однозначного ответа не будет никогда, все будут ломать копья до полного взаимного истребления. MAD-ситуация, в общем. Не надо ни тех ни других слушать, и пользовать один из двух этих подходов к проектированию (они оба не ограничиваются ООД и схематологией, есть много других реализаций), в зависимости от сложности предметной области и желания своей задней левой пятки.

nackyga
()
Ответ на: комментарий от anonymous

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

nackyga
()
Ответ на: комментарий от anonymous

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

nackyga
()
Ответ на: комментарий от anonymous

По поводу эффективности академической науки и теоретических исследований в ее рамках. Вопрос в заинтересованности в финансировании академической науки. В проценте покидающих ее работников из-за низкого престижа, низких зарплат, упадка и прочего. Прикладные исследования приносят вполне ощутимую экономическую прибыль. Особенно в странах, где корпорации - это и есть страна. Это касалось вопроса о непрактичности науки без разделения на прикладную и теоретическую. О нише теоретической (академической) науки и промышленной (прикладной) у меня никаких вопросов нет. О полезности теоретической науки тоже. Здесь мной, экономистом, была допущена некоторая неточность определения - я употребил термин "эффективность" именно с экономической точки зрения, так как признаком более высокой эффективности отрасли является и ее популярность, и отток специалистов туда, и прибыли компаний, и высокие зарплаты, и спрос на рабочую силу, и наличие литературы, и мотивация учиться. На Западе студенты ИТ ВУЗов жалуются на то, что программа обучения ангажирована компаниями и технологиями в ущерб чистой науке. На Востоке (Япония) куда более высокий процент ученых привязан непостредственно к производству. Родись Ньютон в многодетной китайской семье 8-м ребенком, не факт, что его интересовала бы именно теоретическая наука. Когда я сам стал аспирантом, я неоднократно слышал вопрос: "И тебе это надо, с их-то зарплатами и перспективами?", особенно от "особо грамотных" современных девушек. Развивается спутниковая связь - развивается ракетостроение. Станут полеты более эффективными - тем быстрее отправят очередной аппарат на Марс или выведут на орбиту очередной телескоп. Вот вам и связь прикладной и теоретической науки.

anonymous
()
Ответ на: комментарий от nackyga

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

Значительную это какую в процентном отношении ? Ответь за базар. Типа случайность реальная альтернатива академической науки, да ?

anonymous
()
Ответ на: комментарий от anonymous

Да кто ж про альтернативу говорит? Базар за то, что и инженеры открытия делают, не следует им в этом праве отказывать.

nackyga
()
Ответ на: комментарий от nackyga

И всё-таки сабж. Где можно прочитать критику схематологии сторонниками ООД? Интересно было бы увидеть развернутые доводы. Заранее спасибо!

anonymous
()
Ответ на: комментарий от anonymous

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

nackyga
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.