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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #45 : Февраль 10, 2012, 11:12:54 am »
А, ну да, в процессе у меня была мысль использовать radix sort.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #46 : Февраль 10, 2012, 11:13:46 am »
Да, а абстрактное решение естественно все предусловия должно проверять на этапе компиляции.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #47 : Февраль 10, 2012, 11:39:44 am »
Вот тут где-то советовали начинающим программистам пользоваться языком без сборки мусора. А что, это его (начинающего) главная цель? Освоить ручное управление памятью.

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

ЯП со сборщиком мусора просто не в состоянии приучить к этому. Ибо сокеты и другие ресурсы-"не память" встречаются относительно редко. Но встречаются.

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

DIzer

  • Гость
Re: Про необходимость for(each)
« Ответ #48 : Февраль 10, 2012, 12:19:12 pm »

 Но тогда нечего было бы обсуждать.
Вот и пришлось давить не на производительность, а на самолюбие  ;)
Понял - ваша целью было "замутить воду" - одна проблема, обсуждение вызванное таким образом, с высокой степенью вероятности будет не очень полезно.

DIzer

  • Гость
Re: Про необходимость for(each)
« Ответ #49 : Февраль 10, 2012, 12:44:02 pm »
И кому нужна "обезьяна"-программист, которая не знает инструмента, не может правильно, в виде программы/подпрограммы записать простые действия?
Согласен , если под программистом понимаете -"грамотный кодер под конкретный язык". А если выбор последнего допускает вариацию?  По поводу "перечисленных господ" - у меня лично сложилось впечатление, что они учат кодированию - и называют это решением задач. Мой опыт говорит о следующем - самое сложное, умение абстрагировать задачу и формулировать ее в терминах  моделей информатики и окружения (операционной системы),  далее идет -построение алгоритмического решения в терминах использованных моделей. А отображение  алгоритма на конкретный ЯП как правило вносит малый вклад в сложность - ее можно понизить взяв ЯП который описывает наиболее просто данные системы (система лежит в области эффективного использования языка), либо взять простой язык (типа ОБЕРОНА) - но в последнем случае можно напороться на сложности связанные с  большим обьемом кода, реализующего интересующий нас алгоритм .
« Последнее редактирование: Февраль 10, 2012, 12:46:44 pm от DIzer »

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #50 : Февраль 10, 2012, 03:35:57 pm »
Вот тут где-то советовали начинающим программистам пользоваться языком без сборки мусора. А что, это его (начинающего) главная цель? Освоить ручное управление памятью.

Конечно не главная. Но иметь представление важно для понимания других вещей. Во всяком случае если речь идет о чем-то более углубленном, нежели школьный курс информатики.

Хороша ли задача, которую привёл Пётр, чтобы преподаватели использовали её в качестве наработки навыка усваивания (или анализа - так, наверное, правильнее)? Сложный вопрос. Но, думаю, она даётся именно с этой целью. А не чтобы обезьяна нашла, как написать на клавиатуре sort.

Конечно, для обучения очень хорошая задачка. Не сложная, допускающая разные решения и понятная. Но в производственном (production) коде использовать для ее решения что-то кроме стандартного sort - просто невежество.

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #51 : Февраль 10, 2012, 03:54:06 pm »
Вообще для обучения я бы использовал параллельно 3 курса:
- Работа железки (от триггеров до простейшего АЛУ). В идеале - с проектированием своей простейшей железки и сборкой ее из конструктора (без паялки). И без программирования - просто железныя логика.
- Ассемблер/Си. Можно не погружаться особо в особенности написания программ на ассемблере (ограничиться какими-нибудь очень простыми вычислениям + понятие стека/регистров). Но вот сишные указатели на указатель + адресная арифметика должны быть обязательно усвоены. Тем, кто не усваивает - предлагается еще раз подумать о выборе професии :)
- Оберон/КП и какой-нибудь ФП (скорее хаскель). На примере оберона рассказать про тот же GC и его проблемы, базовое ООП и компоненты. Ну там про циклы, конечно же :) Хаскель - как антикостное средство для мозга :)

После всего это можно уже на рабочем месте изучать всякие жабы с фрэймворками и прочите питоны с жабаскриптами.

DIzer

  • Гость
Re: Про необходимость for(each)
« Ответ #52 : Февраль 10, 2012, 03:58:03 pm »

Конечно, для обучения очень хорошая задачка. Не сложная, допускающая разные решения и понятная. Но в производственном (production) коде использовать для ее решения что-то кроме стандартного sort - просто невежество.
Да ну  ;) - невежество использовать sort зная о сортировке подсчетом, невежество  - зная ее делать hand-maid. Но если вы не знаете ее - то наколенное решение  будет (на мой взгляд) гораздо ближе к тому что затребовал Петр в своей исходной постановке (хотя для чего это ему нужен был это offspin толком не может сказать и он сам).

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #53 : Февраль 11, 2012, 05:58:14 am »
По поводу "перечисленных господ" - у меня лично сложилось впечатление, что они учат кодированию - и называют это решением задач
http://forum.oberoncore.ru/viewtopic.php?f=86&t=3837

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

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #54 : Февраль 11, 2012, 06:52:07 am »
http://forum.oberoncore.ru/viewtopic.php?f=86&t=3837
Замечу, что нехорошо давать ссылку (по которой, видимо, содержится ответ) на ресурс не доступный простым смертным, кроме того, оно не доступно и не очень простым (зарегистрированным там) смертным. Так что советую таки размещать ответы где-нибудь где они будут доступны всегда и всем (не обязательно тут на форуме, можно например на paste.org.ru, можно на https://gist.github.com/ и так далее, если тут размещать их по каким-либо причинам не удобно).

Согласен. Однако в упор не понимаю, почему нельзя заниматься всем этим - и в то же время уметь выдать безупречный программный код.
Лично я в своей жизни еще ни разу не видел безупречного програмного кода :-)
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

alexus

  • Гость
Re: Про необходимость for(each)
« Ответ #55 : Февраль 11, 2012, 07:03:38 am »
http://forum.oberoncore.ru/viewtopic.php?f=86&t=3837
Замечу, что нехорошо давать ссылку (по которой, видимо, содержится ответ) на ресурс не доступный простым смертным, кроме того, оно не доступно и не очень простым (зарегистрированным там) смертным. Так что советую таки размещать ответы где-нибудь где они будут доступны всегда и всем (не обязательно тут на форуме, можно например на paste.org.ru, можно на https://gist.github.com/ и так далее, если тут размещать их по каким-либо причинам не удобно).
Думаю, что в этом весь оберонкоре... Вроде, как "Вы никогда не узнаете, какие мы белые и пушистые", потому что мы Вам не покажем, а если Вы узнаете и засомневаетесь, то мы Вас вычеркнем, затрём и выбросим. Так ведут себя мелкие пакостники... а с них что взять?..

DIzer

  • Гость
Re: Про необходимость for(each)
« Ответ #56 : Февраль 11, 2012, 07:24:53 am »

Согласен. Однако в упор не понимаю, почему нельзя заниматься всем этим - и в то же время уметь выдать безупречный программный код.
Да можно - и это обычно происходят когда студенты ОСОЗНАЮТ важность его (это происходит при коллективной работе над относительно крупными проектами, когда необходим рефакторинг задачи....) - но да такой степени нужно либо дойти в своем развитии, либо быть ВЫНУЖДЕН в тупую следовать правилам  под воздействием ЖЕСТКИХ обстоятельств. Да и мне не нравится "безупречный программный код" отдает дешевыми аннотациями на идиотские книги.

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #57 : Февраль 11, 2012, 07:44:02 am »
Я прошу прощения, что дал ошибочную ссылку.
Вот эта работает:
http://forum.oberoncore.ru/viewtopic.php?f=86&t=3838

Домыслы советую оставить при себе.
« Последнее редактирование: Февраль 11, 2012, 07:53:06 am от Илья Ермаков »

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #58 : Февраль 11, 2012, 07:47:41 am »
Думаю, что в этом весь оберонкоре... Вроде, как "Вы никогда не узнаете, какие мы белые и пушистые", потому что мы Вам не покажем, а если Вы узнаете и засомневаетесь, то мы Вас вычеркнем, затрём и выбросим. Так ведут себя мелкие пакостники... а с них что взять?..
Там есть еще один перл. Страница коровской википедии Структурирование "промышленного" цикла
начинается со ссылки на обсуждение исходного варианта на форуме http://forum.oberoncore.ru/viewtopic.php?p=42396#p42396
Вся(!) эта ветка удалена. Ибо там было вольнодумство.
Все-таки, подзреваю, что в данном случае виновник не Илья, а "человек-в-футляре".

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Про необходимость for(each)
« Ответ #59 : Февраль 11, 2012, 07:48:03 am »
Я прошу прощения, что дал ошибочную ссылку.
Вот эта работает:
http://forum.oberoncore.ru/viewtopic.php?f=32&t=3837

Домыслы советую оставить при себе.
Не работает.