Автор Тема: Про необходимость for(each)  (Прочитано 53841 раз)

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #120 : Февраль 15, 2012, 05:31:00 am »
Не в тему но хочется высказаться:

Спасибо за поддержку. Вы меня правильно поняли.

2 alexus:
По поводу "тема раскроется совсем иначе".
Я ровно это же и говорил где-то тут на форуме. Что всегда, когда фронт интересных задач смещается вперёд, кто-то продолжает заниматься серьёзно и на "старой линии". И там бывают новые открытия.
Но из этого никак не следует, что все должны стоять на старой линии и тратить своё время на решение того, что уже решено... И может быть переведено на автоматизм.
(вот пример "удобства" не модерируемых на разделение тем форумов... фиг найдёшь, где что было сказано).

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #121 : Февраль 15, 2012, 05:40:59 am »
Языковые эксперименты очень дороги (требуют, фактически, оторваться от других задач и заняться реализацией языка...)
Эксперименты на уровне паттернов, создания каркасов и т.п. - доступны каждому.
А при чем тут языковые эксперименты? Берем любой язык высокого уровня и там спокойно пишем обобщенные варианты алгоритмов тех же. И обобщенные каркасы. Языки высокого уровня это позволяют.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #122 : Февраль 15, 2012, 08:50:13 am »
Пардон, надо было точно процитировать кусок, на который отвечаю:
Цитировать
То же, кстати, и паттернов программирования касается. Паттерны начинаются там, где кончается выразительность языка.

По остальному - дискуссионный вопрос... Лично я пока не готов принять обобщённое программирование, в той форме, как оно имеется. Какой-то минимум выделить если только...

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #123 : Февраль 15, 2012, 09:02:34 am »
Только здесь не так просто, как на схеме из курса электронных приборов. Там есть правильный вход, правильный выход и отрицательная обратная связь, стабилизирующая преобразование сигнала. В рограммировании (и много где ещё) выход нам не даётся априори. Мы должны понять, куда прийти.
Можно пояснить, что имелось ввиду, под неизвестностью выхода?.. Если мы пишем программу, то мы должны гарантировать при правильных исходных данных правильный результат.
Допустим, мы в ситуации, когда мы в состоянии сформировать любой набор входных данных (вход) в зависимости от того, к чему мы должны прийти (выход, резульат). Тогда единственной проблемой в условии является понимание результата. Не всегда с первого или второго раза удаётся понять, что же всё-таки нужно. Для этого делаются прототипы. При работе над ними проясняется ситуация с тем, что должно быть на выходе.
Неизвестность выхода - это, наверно, было слишком грубо. Точнее было бы сказать, что на начальной стадии новой задачи понятие о выходе у разарботчика нечёткое.

Почему "при использовании sort - ноль творчества"? Если конструктор собирает некоторое изделие (прибор, например) из стандартных компонентов/на стандартной элементной базе, то он перестаёт творить?.. Это напоминает разговор с И. Ермаковым, который тоже как-то одномерно понимает творчество. Если есть хороший/пригодный для данных условий элемент, то его не надо выбрасывать и пересоздавать заново, надо его использовать. Но при этом не надо навсегда закрывать тему разработки этих элементов.
Вообще-то я редко когда упускаю возможность решить задачу своими силами, а не стандартными средствами. И уж кто-кто, а я точно не закрываю тему разарботки.

Если конструктор собирает некоторое изделие (прибор, например) из стандартных компонентов/на стандартной элементной базе, то он перестаёт творить?
Нет, не перестаёт. Но у него другая задача. Задача выбора, компоновки и т.д.

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

Осознание, что нужна сортировка - это одна задача. Выбор сортировок - другая. Они все решены. Теперь перед программистом задача - задействовать сортировку. Ему нужно написать sort и передать параметры. Или написать mySort и передать параметры. Но чтобы mySort заработал, его сначала нужно написать. Это ещё несколько подзадач, которые могут оказаться весьма творческими (или процесс творчества наложит на программиста эмоциональные отпечатки разной силы). Но процесс написания приводит к прояснению конечного результата. Он становится более чётким, и беспристастный наблюдатель заметит, что процесс создания mySort лишь частично решает задачу, а многие действия по отношению к настоящему итогу бесполезны или даже вредны. Беспристрастный наблюдатель легко откажется от неправльного решения, а тот, кто написал, - будет сопротивляться.

Поэтому весьма желательно, чтобы код сам по вебе не являлся результатом творчества. А лучше бы этим резульатом было нечто, что трансформируется в код. Тогда отказываться от своей реализации чего-то-там будет гораздо проще: результат творчества не уничтожается.
« Последнее редактирование: Февраль 15, 2012, 09:04:52 am от Valery Solovey »

Valery Solovey

  • Hero Member
  • *****
  • Сообщений: 509
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #124 : Февраль 15, 2012, 09:21:48 am »
Но при этом не надо навсегда закрывать тему разработки этих элементов.
Речь не о закрытии темы. А вот в чём:
Цитата: alexus
Да, надо переключаться, надо строить разные уровни, но если душа просит... надо найти время и позаниматься старой замшелой задачкой...
"Надо переключаться"... Вот что главное. Без этого если программа и выйдет, то работать будет едва-едва.

Фарш в коде, отсутствие чёткой структуры. Думаете, это стоит терпеть, если это становится следствием "душа просит"?

И в отличие от "душа просит" переключениям нужно учить. Без ограничений в этом плане просьбы души будут распространяться во все направления. Как расширение вселенной. Только результат будет не таким организованным...

alexus

  • Гость
Re: Про необходимость for(each)
« Ответ #125 : Февраль 15, 2012, 09:25:43 am »
По поводу "тема раскроется совсем иначе".
Я ровно это же и говорил где-то тут на форуме. Что всегда, когда фронт интересных задач смещается вперёд, кто-то продолжает заниматься серьёзно и на "старой линии". И там бывают новые открытия.
Может быть здесь об этом шла речь:
Давайте будем из года в год считать нажатие педалей и игру дворовыми аккордами - творчеством. Пусть каменщик творчески рубит киркой камень. Мы никогда не признаем это рутиной, не заменим на технологию - и не позволим каменщику стать архитектором и творить что-то большое.
Пусть люди не видят за деревьями леса и проявляют свою индивидуальность в очередном куске кода. Вместо того, чтобы избавиться от необходимости даже думать об этом куске, и заняться действительно интересными задачами, которые ждут своего открывателя.

А борьбой с велосипедостроением всегда занимаются как раз "мейнстримщики", панически боящиеся написания своего сложного кода, вместо применения библиотек, потому что понимают, что он будет содержать море ошибок.
:) Если нет потребности "даже думать об этом куске кода"... а надо заняться "действительно интересными задачами", то это нечто противоположное тому, о чём говорю я...

Но из этого никак не следует, что все должны стоять на старой линии и тратить своё время на решение того, что уже решено... И может быть переведено на автоматизм.
Конечно... Проблема многих горе-руководителей в том, что им кажется, что именно то, что интересно им... интересно и полезно всем... И "всех" рано и поздно это "устраивает"... думать о том, что такому руководителю не интересно, иметь свою точку зрения - преступление!.. Что вполне согласуется с логикой... действия администрации... соседнего форума. Согласных (и даже защищающих администрацию) не в пример больше, чем несогласных. Для людей "нетворческих" важен порядок... а люди творческие всегда были "возмутителями спокойствия"... Антуан де Сент-Экзюпери замечательно сказал: "Жизнь творит порядок, но порядок жизнь не творит".

(вот пример "удобства" не модерируемых на разделение тем форумов... фиг найдёшь, где что было сказано).
Как видите... нашёл... легко... в этом же топике... А вот там где поделили... времени на поиск уходит куда больше.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #126 : Февраль 15, 2012, 09:59:47 am »
Я ровно это же и говорил где-то тут на форуме. Что всегда, когда фронт интересных задач смещается вперёд, кто-то продолжает заниматься серьёзно и на "старой линии". И там бывают новые открытия.
Но из этого никак не следует, что все должны стоять на старой линии и тратить своё время на решение того, что уже решено... И может быть переведено на автоматизм.
(вот пример "удобства" не модерируемых на разделение тем форумов... фиг найдёшь, где что было сказано).
http://oberspace.dyndns.org/index.php/topic,184.msg3197.html#msg3197
Нашлось легко :-)

Та тема не перегружена совершенно. Странно что ты там свое же высказывание не смог найти. (а вот если слить все ветки похожего в одну тему - то получим тему страниц на 15ть. оно нам надо?). Вообще, если кажется что мысль ценная, и затеряется в потоке обсуждаемого, то берешь самостоятельно, и оформляешь новую тему (со ссылками и цитатами на сообщения к которые послужили первоисточником/подтолкнули/на которые отвечаешь). Не вижу проблем :-)

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

alexus

  • Гость
Re: Про необходимость for(each)
« Ответ #127 : Февраль 15, 2012, 10:07:35 am »
Неизвестность выхода - это, наверно, было слишком грубо. Точнее было бы сказать, что на начальной стадии новой задачи понятие о выходе у разарботчика нечёткое.
Для этого и существуют стадии моделирования (в том числе, и прототипирование) и проектирования. К моменту начала разработки/создания программы неясности должны быть устранены и общее видение решения должно быть закреплено в документах (приложениях к техническому заданию, решениях согласительных комиссий и т.п.).

Если конструктор собирает некоторое изделие (прибор, например) из стандартных компонентов/на стандартной элементной базе, то он перестаёт творить?
Нет, не перестаёт. Но у него другая задача. Задача выбора, компоновки и т.д.

Вот, допустим, по конвейеру ползёт печатная плата. На ней не хватает элемента - автоматика его не ставит в виду его специфики. Это делает рабочий. Он ставит элемент на плату и всё, даже пайкой занимается дальше автоматика. Много ли здесь творчества? Как долго он будет считать, что занимается творчеством?
Это очень простой вопрос... Дело не в работе, дело в человеке, в его отношении к работе. Помните героя Алексея Владимировича Баталова в фильме "Москва слезам не верит"... Георгия Ивановича (он же Гоша, он же Гога...). Вроде бы слесарь... какое творчество у слесаря... но он единственный на всю Москву... И к делу он подходит не так, как все, и за женщиной ухаживает, как-то не совсем... "стандартно"... И Ваш монтажник может позёвывая взять очередную плату и полусонно поводить паяльником... а может очередную "блоху подковать". Нет не творческой работы, есть не творческое или рутинное отношение к работе.

Осознание, что нужна сортировка - это одна задача. Выбор сортировок - другая. Они все решены. Теперь перед программистом задача - задействовать сортировку. Ему нужно написать sort и передать параметры. Или написать mySort и передать параметры. Но чтобы mySort заработал, его сначала нужно написать. Это ещё несколько подзадач, которые могут оказаться весьма творческими (или процесс творчества наложит на программиста эмоциональные отпечатки разной силы). Но процесс написания приводит к прояснению конечного результата. Он становится более чётким, и беспристастный наблюдатель заметит, что процесс создания mySort лишь частично решает задачу, а многие действия по отношению к настоящему итогу бесполезны или даже вредны. Беспристрастный наблюдатель легко откажется от неправльного решения, а тот, кто написал, - будет сопротивляться.
Откажется - не откажется... это не имеет отношения к творчеству. Я часто сначала пишу сам, даже зная, что есть под рукой хорошие алгоритмы/компоненты. Потом, когда уже написано, когда есть удовлетворение от хорошо сделанной работы... я смотрю на другие варианты и восхищаюсь, либо тем, что сделано другими, или тем, что сам сделал. Пока сам не прочувствуешь материал, душу в него не вложишь, понять и оценить любое решение невозможно... можно только поверить... на слово.

Поэтому весьма желательно, чтобы код сам по вебе не являлся результатом творчества. А лучше бы этим резульатом было нечто, что трансформируется в код. Тогда отказываться от своей реализации чего-то-там будет гораздо проще: результат творчества не уничтожается.
Был у меня один программист... интересный парень. Задачу ему поставишь, объяснишь... согласуешь. И он уходит. На следующий день проходишь мимо, он с задумчивым видом в потолок смотрит. Спрашиваю: "Чем занимаешься? Почему не пишешь? Вроде мы всё уже обсудили, да, и сроки поджимают...". А он отвечает: "Имя для переменной придумываю...". И может так долго придумывать... но код у него получался... хоть на выставку посылай... Такой код автоматически получить никогда не получится...

DIzer

  • Гость
Re: Про необходимость for(each)
« Ответ #128 : Февраль 15, 2012, 11:48:22 am »
Был у меня один программист... интересный парень. Задачу ему поставишь, объяснишь... согласуешь. И он уходит. На следующий день проходишь мимо, он с задумчивым видом в потолок смотрит. Спрашиваю: "Чем занимаешься? Почему не пишешь? Вроде мы всё уже обсудили, да, и сроки поджимают...". А он отвечает: "Имя для переменной придумываю...". И может так долго придумывать... но код у него получался... хоть на выставку посылай... Такой код автоматически получить никогда не получится...
Да, ситуация знакомая-умение ВИДЕТЬ довольно редкое и крайне плохо развивается- да и с точки зрения управляемости , такие кадры не очень ценны  :)  -возни как с группой , выхлоп  нерегулярный...

alexus

  • Гость
Re: Про необходимость for(each)
« Ответ #129 : Февраль 15, 2012, 01:03:09 pm »
Был у меня один программист... интересный парень. Задачу ему поставишь, объяснишь... согласуешь. И он уходит. На следующий день проходишь мимо, он с задумчивым видом в потолок смотрит. Спрашиваю: "Чем занимаешься? Почему не пишешь? Вроде мы всё уже обсудили, да, и сроки поджимают...". А он отвечает: "Имя для переменной придумываю...". И может так долго придумывать... но код у него получался... хоть на выставку посылай... Такой код автоматически получить никогда не получится...
Да, ситуация знакомая-умение ВИДЕТЬ довольно редкое и крайне плохо развивается- да и с точки зрения управляемости , такие кадры не очень ценны  :)  -возни как с группой , выхлоп  нерегулярный...
Был у меня в жизни человек... Директор проектной организации, они оснастку делали для строителей... Имели много наград, государственных, в том числе (точно знаю, что премия КабМина СССР у них была). Так вот там только такие "нестандартные" и приживались. Но и сам директор был совсем не стандартный. Такой организации творческого процесса больше я нигде не видел. Описывать долго, но... я к тому, что управлять можно и творческим процессом. Правда, понятие "управлять" требует другого взгляда... не одномерное оно... В том смысле, что управлять и командовать - это не синонимы... и руководитель не всегда начальник...

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #130 : Февраль 15, 2012, 01:16:28 pm »
В том смысле, что управлять и командовать - это не синонимы... и руководитель не всегда начальник...
А кстати, да. Ведущий разработчик - он именно что ведущий, а не командующий. Я бы даже сказал - вдохновляющий.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

alexus

  • Гость
Re: Про необходимость for(each)
« Ответ #131 : Февраль 15, 2012, 01:24:33 pm »
В том смысле, что управлять и командовать - это не синонимы... и руководитель не всегда начальник...
А кстати, да. Ведущий разработчик - он именно что ведущий, а не командующий. Я бы даже сказал - вдохновляющий.
Тут много вариантов. Ведущий разработчик по должности, может быть один человек, а по факту совсем другой (и это совсем не то, что понимается под лидером, скажем в ИСО:9000). В хорошей команде важны не должности, а роли... В разных хороших командах роли могут совсем разными. И попытки "втиснуть" человека в роль... обречены.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #132 : Февраль 15, 2012, 04:16:55 pm »
Языковые эксперименты очень дороги (требуют, фактически, оторваться от других задач и заняться реализацией языка...)
Эксперименты на уровне паттернов, создания каркасов и т.п. - доступны каждому.

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

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #133 : Февраль 15, 2012, 08:13:08 pm »
Я сомневаюсь, что Вирт не знаком с новыми языками.
Просто уже не тот возраст на "скачки". Он предоставил ядро определённого класса, дальше всё в наших руках...
Насколько можно следить за его интересами, на пенсии его интересуют  ПЛИС, генерация топологий и soft-CPU.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #134 : Февраль 15, 2012, 08:24:31 pm »
Я сомневаюсь, что Вирт не знаком с новыми языками.

Есть ссылки, где он отзывается о других языках за пределами их синтаксиса? Я ни разу не видел. Либо говорится об опыте Модулы и более древних ЯП (когда он начинал), либо придирки к "=" vs ":=" и т.п. "corrupted syntax".

Просто уже не тот возраст на "скачки". Он предоставил ядро определённого класса, дальше всё в наших руках...
Насколько можно следить за его интересами, на пенсии его интересуют  ПЛИС, генерация топологий и soft-CPU.

Ну я себе тоже так и представляю, судя по его последним работам...