Автор Тема: Язык программирования Оно  (Прочитано 14194 раз)

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Язык программирования Оно
« Ответ #30 : Январь 26, 2013, 08:25:21 pm »
Удивляет поощрение множественного наследования реализации как центральная идея.

Если учесть, что наиболее гибкие, надёжные и расширяемые архитектуры получаются при отказе от наследования реализации вообще (скрытые реализации, создание через фабрики, композиция). Не надо считать это узко-обероновским загоном. Это и Гамма со товарищи, а теперь и многие к этому приходят (недавно наткнулся на книжку Стояна Стефанова "JavaScript. Шаблоны". O-Relly. Так там вообще ООП-архитектуры с наследованием называются устаревшими, а без него - современными).

Цитировать
В советской книжке «128 советов начинающему программисту» рассказывалось, что все управляющие операторы можно заменить циклом while. Неудивительно, что этот вид цикла развивается больше всего, поскольку является «настоящим» циклом, так сказать.
Интересно, а кроме Очкова-Пухначёва автор читал что-то по теме циклов?? :)

Цитировать
Ну, а я, соответственно, хочу поставить вопрос, стоит ли учить школьников императивному программированию, когда у них уже даже в мобилах не сегодня-завтра многоядерные процы будут? Императивное программирование должно было умереть еще лет 6 назад, с появлением этих самых многоядерных процессоров. Ан нет, — индустрия, то-сё, — так до сих пор на Си всё и пишут.
Всегда прошу так вещающих привести мне пример таких компонентов ПО, которым не хватает производительности одного процессора. А затем оценить в удельном соотношении по строкам кода. Если в 20% всех задач программирования в 20% их кода нужно задействовать много ядер, потому что одно не справляется, то это ещё не повод в оставшемся коде переходить к чему-то другому от наиболее практичного, по интегралу, стиля (императивного объектно-ориентированного).
Из-за того, что отдельные части систем потребовали оптимизации, Вы собираетесь запутывать стиль разработки остальных частей? :)

alexus

  • Гость
Re: Язык программирования Оно
« Ответ #31 : Январь 27, 2013, 05:54:08 am »
Если учесть, что наиболее гибкие, надёжные и расширяемые архитектуры получаются при отказе от наследования реализации вообще (скрытые реализации, создание через фабрики, композиция).
А ещё можно пугать приведениями, лешими и другой нечистью... :)
Если немного задуматься (и перестать бояться и, как следствие, пугать других собственными страхами)... то наследование интерфейсов - это нонсенс... Поскольку интерфейсы - это просто спецификации/требования, точно такие же (по сути), как спецификации/требования, прилагаемые к чертежам узлов и деталей. И любые узлы/детали, соответствующие данной спецификации, могут быть использованы... В программировании интерфейсы "приклеили" к сущностям, как некие "видимые извне" свойства... получили массу проблем... И теперь их пытаются преодолеть... окончательно, утратив/исказив смысл. Отсюда и фобии...

Всегда прошу так вещающих привести мне пример таких компонентов ПО, которым не хватает производительности одного процессора. А затем оценить в удельном соотношении по строкам кода. Если в 20% всех задач программирования в 20% их кода нужно задействовать много ядер, потому что одно не справляется, то это ещё не повод в оставшемся коде переходить к чему-то другому от наиболее практичного, по интегралу, стиля (императивного объектно-ориентированного).
Из-за того, что отдельные части систем потребовали оптимизации, Вы собираетесь запутывать стиль разработки остальных частей? :)
Когда-то человеку хватало собственных рук... И попытки объединить/скоординировать усилия нескольких людей, наверно, вызывали подобные... отповеди. Тем не менее... время шло... и усилий одних рук не хватало всё чаще... В окружающем нас мире, всё живёт, развивается и даже умирает... параллельно... не дожидаясь своей очереди у "исполнителя команд".
С другой стороны... какой может быть причина не использовать доступные вычислительные мощности?.. Дело даже не в том, что отдельной мощности может не хватить, а в том, что совместно можно сделать быстрее (при правильном проектировании системы и планировании работ, соответственно). Почему кто-то из пользователей должен расплачиваться за нашу безграмотность?..
И кто с-казал/до-казал/по-казал, что параллельный код запутаннее, чем последовательный?.. Что труднее/затратнее: выдать инструкции сразу всем исполнителям или много раз выдавать последовательные инструкции одному исполнителю?.. Может быть дело в нас самих... привыкших к последовательной выдаче?.. Может быть это нам труднее перестроиться?.. И рассуждения о запутанности и трудностях... только фобии, которых боимся мы и пугаем других?..

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Язык программирования Оно
« Ответ #32 : Январь 27, 2013, 06:19:56 am »
Код в виде параллельно работающих агентов, написанных в императивном стиле может быть и не запутанней, и вообще, наборот - помочь сделать более ясную программу.

Я имею в виду именно переход к ФП ради автоматического распараллеливания потока вычислений.

По поводу прогресса - иногда появление новых возможностей не отменяет предыдущие. Например, с появлением самолётов не исчез наземный транспорт. Просто разное назначение.

Методы программирования для сверхмногоядерных спецвычислителей (GPU и проч.) не обязаны становится основными методами.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Язык программирования Оно
« Ответ #33 : Январь 27, 2013, 07:16:09 am »
Я имею в виду именно переход к ФП ради автоматического распараллеливания потока вычислений.

Что любопытно, конкретно в той цитате, что Вы привели, нет ни слова про ФП:
Цитата: Freeman
Ну, а я, соответственно, хочу поставить вопрос, стоит ли учить школьников императивному программированию, когда у них уже даже в мобилах не сегодня-завтра многоядерные процы будут? Императивное программирование должно было умереть еще лет 6 назад, с появлением этих самых многоядерных процессоров. Ан нет, — индустрия, то-сё, — так до сих пор на Си всё и пишут.

Однако в удовольствии укусить ФП Вы себе не отказали ))) Всё же какая-то нерациональная нелюбовь к ФП у Вас наблюдается, имхо...

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

И ещё, каким именно образом ФП, по Вашему, приводит к "запутыванию стиля разработки остальных частей"?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

alexus

  • Гость
Re: Язык программирования Оно
« Ответ #34 : Январь 27, 2013, 07:16:27 am »
Код в виде параллельно работающих агентов, написанных в императивном стиле может быть и не запутанней, и вообще, наборот - помочь сделать более ясную программу.
Именно.

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

Методы программирования для сверхмногоядерных спецвычислителей (GPU и проч.) не обязаны становится основными методами.
Да, этим методам... как-то безразлично... Собственно, и программисту должно быть безразлично... Он [программист] указывает связи между сущностями, а анализ связей показывает, что может работать параллельно, а что должно работать последовательно. Простой случай - зависимость по данным.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Язык программирования Оно
« Ответ #35 : Январь 28, 2013, 03:51:55 pm »
Хотел создать тему, но не находил нужных слов. Поэтому дам просто ссылку.

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

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

Интересная вещь происходит с памятью. То, что происходит под коксом, в трезвом состоянии бывает почти невозможно вспомнить, пока не примешь следующую дозу. У человека могут образоваться как бы две почти не связанные друг с другом реальности. Например, Стивен Кинг рассказывал, что он написал пару книг под кокаином и вообще не может этого вспомнить.
...
Главная подлянка кокаина, что аффтар не чувствует своего аффтарства. Эти произведения написаны как бы и не им. Как это хорошо выражено у Tequilajazzz, если ты употребляешь кокаин, то «в твоем плюгавом теле вторая сука живет». Именно эта «вторая сука» и творит за аффтара, а сам он об этом может даже и не помнить, как Стивен Кинг не помнил написанных под сабжем двух книг.
Y = λf.(λx.f (x x)) (λx.f (x x))