OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 14:36

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




Начать новую тему Ответить на тему  [ Сообщений: 85 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 12:17 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Вот у товарища Монаха
http://note-work.blogspot.com/2008/09/blog-post_27.html
интересные рассуждения.
Цитата:
В последнее время все чаще наблюдаю картину, как компилятор пишет программу руками человека. Начинается все так: садится программист за компьютер, набирает код программы, запускает компиляцию и начинает исправление ошибок. В принципе, самый обычный порядок рабочих действий программиста, но есть в этом одно "но". Дело в том, что программист не исправляет ошибки, основываясь на собственных знаниях, а руководствуется исключительно сообщениями компилятора, перезапуская компиляцию много раз. На выходе получаем низкокачественный код, написанный под руководством компилятора.

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

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

Все-таки нужно помнить, что компиляторы и разные IDE - это только инструмент в работе, а не универсальное средство, которое будет программировать вместо человека. Хочется пожелать программистам тщательнее продумывать свою работу и работу своих программ.

Ведь истинная правда, особенно про студентов.
Зачем думать, если компилятор покажет все ошибки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 12:24 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Теперь взглянем с другой стороны (производства).
Зачем думать над тем, что может (и должно) быть сделано автоматически?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 12:34 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Вы не поняли.
Автоматически проверяются синтаксис. Так опытный программист практически не совершает синтаксических ошибок.
А если не уверен, то просто посмотрит в справочнике.

Речь идет именно о продумывании алгоритма.
Я и по собственному опыту сужу. До появления дисплеев, и тем более интегрированных сред программа в первом предъявлении содержала намного меньше ошибок.
Ибо действительно, гораздо больше времени уделялось продумыванию.


Последний раз редактировалось Валерий Лаптев Среда, 15 Июль, 2009 13:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 13:02 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
И Вы не поняли :)
Любой программист (в том числе опытный) совершает ошибки (в том числе опечатки из-за банального сбоя клавиатуры или дрожания рук после вчерашнего :) ).

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 13:20 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Alexey_Donskoy писал(а):
И Вы не поняли :)
И я сужу по собственному опыту, когда перфокарты набивались операторами на следующий день, а прогона программ надо было ждать неделю... Да, сейчас есть соблазн быстрее пощупать прототип. Это и плохо, и хорошо одноврменно. Просто другие времена, и немного другие задачи...

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

Мой вопрос с моей стороны звучит немного не так:
Какие особенности инструмента провоцируют специалиста на разработку методом проб и ошибок. А ваш вопрос - уже следующий: Какую методику разработки следует реализовать в в инструменте.
Эти два вопроса не исключают друг друга. Ибо при наличии любой самой суперметодики, если ЕСТЬ ВОЗМОЖНОСТЬ, человек будет работать методом проб и ошибок. По крайней мере в ближайшие несколько лет в области программирования это будет так.
В материальной сфере это невозможно, ибо каждая проба и ошибка - слишком дорого стоят. А в ИТ - нефиг делать!
Поэтому можно ставить вопрос об исследовании особенностей инструментов, провоцирующих метод проб и ошибок.
Вон в ББ - уже исключили диалоговый отладчик. Именно по причине его провоцирующего характера.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 14:19 

Зарегистрирован: Воскресенье, 08 Март, 2009 17:54
Сообщения: 372
Уклоняясь в сторону отладчика.
Отсутствие такового в учебной системе полностью оправдано.
При программировании управления самолётами, АЭС и т.п. тоже.
Но в остальных случаях... Как всегда, сделать надо много, а времени мало. Сделать опечатку "+" -> "-", мелкую логическую ошибку очень просто. Так же просто ошибиться и в записи проверок пред- и постусловий. А искать ошибку по журналам может оказаться медленным.
Сейчас занят проектом в котором много веркторной алгебы и небольших геометрических задачек. Геометрии много, да и арифметика машинная, у меня просто не хватит времени на доказательства всех решений. Отладчик позволяет очень быстро локализовать ошибку. Без него делал бы тоже самое: предполагал наличие проблемы в некотором участке кода, ставил бы там вывод в журнал, проверки разные. Но гораздо медленнее!
Понимаю, что есть такие кадры, которые найдя проблему, но до конца не разобравшись, спешат как-то "тупо" её заткнуть. Так это не в отладчике дело, таких (если они не обучаемы) и подпускать к компьютеру не желательно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 14:34 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Algo писал(а):
Отладчик позволяет очень быстро локализовать ошибку. Без него делал бы тоже самое: предполагал наличие проблемы в некотором участке кода, ставил бы там вывод в журнал, проверки разные. Но гораздо медленнее!
Вот, о чём и речь!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 15:05 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Algo писал(а):
Уклоняясь в сторону отладчика.
Отсутствие такового в учебной системе полностью оправдано.
При программировании управления самолётами, АЭС и т.п. тоже.
Но в остальных случаях... Как всегда, сделать надо много, а времени мало. Сделать опечатку "+" -> "-", мелкую логическую ошибку очень просто. Так же просто ошибиться и в записи проверок пред- и постусловий. А искать ошибку по журналам может оказаться медленным.

Это доказывает только то, что инструмент не должен допускать дурацких описок (даешь структурный-синтаксический-семантический редактор!).
Цитата:
Сейчас занят проектом в котором много веркторной алгебы и небольших геометрических задачек. Геометрии много, да и арифметика машинная, у меня просто не хватит времени на доказательства всех решений. Отладчик позволяет очень быстро локализовать ошибку. Без него делал бы тоже самое: предполагал наличие проблемы в некотором участке кода, ставил бы там вывод в журнал, проверки разные. Но гораздо медленнее!

Это совершенно верно. Я с этим полностью согласен.
Цитата:
Понимаю, что есть такие кадры, которые найдя проблему, но до конца не разобравшись, спешат как-то "тупо" её заткнуть. Так это не в отладчике дело, таких (если они не обучаемы) и подпускать к компьютеру не желательно.

[/quote]
А это уже тот же вопрос: как избавить инструмент от свойств, провоцирующих метод проб и ошибок.
Ибо не допускать к компьютеру - просто не получится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 15:14 
Аватара пользователя

Зарегистрирован: Суббота, 29 Март, 2008 19:27
Сообщения: 1053
Откуда: Россия, Чебоксары
Давайте решим хотя бы первую часть задачи - перечислим свойства инструмента, провоцирующие метод проб и ошибок!

Потом постараемся ответить - почему?

Подозреваю, что ответ будет не в плоскости программирования и даже эргономики, а банальной психологии :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 15:47 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Я думаю, это беспрецендентная особенность всей ИТ в целом...
В любой деятельности метод проб и ошибок дорог и неэффективен. Даже книжку писать - вроде не материальная сфера - тоже долго писать и переписывать.
А в ИТ попробовать и переделать - нефиг делать практически в любой сфере, не касающейся систем, связанных с человеческими жизнями.
Поэтому, мне кажется, нужно найти способы сделать метод проб и ошибок дорогим по сравнению с систематическим проектированием и реализацией.
Как - надо много думать.

Ибо именно простота подхода (попробуем, потом переделаем) как раз и привлекает в профессию массу дилетантов.

Кстати, именно вот эта простота применения метода проб и ошибок порождает ту самую психологию, о которой писал Федор Васильевич: программерам закон не писан. Именно потому и не писан, что попробуем, потом исправим, если что.
Кстати, сам себя неоднократно ловил на мысли, что в ИТ я могу все. Дело только во времени - при достаточном времени я могу создать ВСЕ. Что уж о молодых-то говорить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 15:50 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Потому что вначале все начинают методом проб и ошибок. Чтобы не писать методом проб и ошибок, нужно сразу знать все уровни системы. А поскольку система часто довольно сложна, а времени мало, то идет метод проб и ошибок. + недостаток документации.

Отсутствие или наличие отладчика с этим подходом весьма слабо кореллирует.

Если несколько лет подряд пишешь под одну и ту же систему/платформу, то её уже знаешь, и метод проб и ошибок уходит. Собственно этот самый метод проб и ошибок -- это банальная попытка исследования даденой системы путем экспериментов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 15:56 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Валерий Лаптев писал(а):
Я думаю, это беспрецендентная особенность всей ИТ в целом...
В любой деятельности метод проб и ошибок дорог и неэффективен. Даже книжку писать - вроде не материальная сфера - тоже долго писать и переписывать.
А в ИТ попробовать и переделать - нефиг делать практически в любой сфере, не касающейся систем, связанных с человеческими жизнями.
Поэтому, мне кажется, нужно найти способы сделать метод проб и ошибок дорогим по сравнению с систематическим проектированием и реализацией.


Тут нужно разделять случая: один, если мы релизим продукт в виде таковой пробы, и совсем другой, если в процессе разработки много и активно проводятся эксперименты и разные подходы.

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

Второй случай -- нормальная практика. Например тот же Active BlackBox -- суть одна из подобных проб. Видимо не очень удачных.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 16:00 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Валерий Лаптев писал(а):
Это доказывает только то, что инструмент не должен допускать дурацких описок (даешь структурный-синтаксический-семантический редактор!).


Гм. А покажите ка мне как этот самый семантический редактор не позволит мне в запарке написать вот такое:

Код:
int sum(int a, int b) {
    return a-b;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 16:05 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Для профессионалов - безусловно метод проб и ошибок вещь чрезвычайно полезная. Но ведь речь идет о том, что простота применения этого метода в ИТ привлекает в профессию множество людей, которые иногда вовсе не склонны к систематической работе над проектом.
Неоднократно наблюдал у своих студентов.
Вот тут как быть? Как сделать для начинающих метод проб и ошибок дороже систематического подхода.
По поводу семантического редактора - да, согласен. Речь, конечно, в первую очередь, идет о дурацких описках в словах, скобках, идентификаторах, и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 16:29 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Algo писал(а):
Сейчас занят проектом в котором много веркторной алгебы и небольших геометрических задачек. Геометрии много, да и арифметика машинная, у меня просто не хватит времени на доказательства всех решений. Отладчик позволяет очень быстро локализовать ошибку.
...


Пишете на Обероне?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 19:10 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
Alexey Veselovsky писал(а):
Собственно этот самый метод проб и ошибок -- это банальная попытка исследования даденой системы путем экспериментов.
Такой метод подходит, когда документации фактически нет (вне зависимости от того, есть ли она формально).

Но это никак нельзя прощать, когда документация есть. Тогда получается, что подход используется для получения частных знаний об объекте исследования с целью использовать его для своих нужд. То есть ставится сугубо прагматическая цель без оглядки на изначальное назначение объекта как инструмента решения проблем в определённой области, а не как инструмента решения проблем конкретного программера. С помощью объекта строится такой маршрут, который "исследователю" удалось найти, а не который был бы оптимален и логичен (ведь далеко не всегда эти маршруты совпадают). А ещё не факт, что объект использовался по назначению.

В итоге, в сложных и не очень проектах система быстро становится крайне запутанной и малопонятной. А ведь не весь проект ложится в код. Часть проекта - содержимое головы писавшего человека. Для остальной команды код ещё менее понятен, потому что ей приходится практиковаться в телепатии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Среда, 15 Июль, 2009 21:34 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Валерий Лаптев писал(а):
Это доказывает только то, что инструмент не должен допускать дурацких описок (даешь структурный-синтаксический-семантический редактор!).


Есть ли какие-нибудь подвижки в этом деле? Название придумали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Четверг, 16 Июль, 2009 11:27 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Сергей Прохоренко писал(а):
Валерий Лаптев писал(а):
Это доказывает только то, что инструмент не должен допускать дурацких описок (даешь структурный-синтаксический-семантический редактор!).


Есть ли какие-нибудь подвижки в этом деле? Название придумали?


Угу. Называется Ada ;-)
Чтобы небыло описок (чтобы свести их вероятность к минимому) синтаксис языка должен быть соответствующим образом под это дело заточен. + к аде существует пачка утилит для дополнительных проверок (например gnatcheck тот же). Но я таки не понимаю чем тут может помочь семантический редактор. В чем там семантика то? Таковой редактор может быть конечно хорош для языков с ущербным (небезопасным) синтаксисом, типа С. У оберона ущербный небезопасный синтаксис?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Четверг, 16 Июль, 2009 16:48 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Хотелось бы "не иметь синтаксиса вообще". Например, чтобы писание ключевых слов русскими не требовало текстовой трансляции. Для элемента дерева настроили лексические обозначения - и вперёд...
Это применялось давным-давно; например, в Модуле-2 на ЕС ЭВМ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: О психологии программистов
СообщениеДобавлено: Четверг, 16 Июль, 2009 17:59 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Илья Ермаков писал(а):
Хотелось бы "не иметь синтаксиса вообще". Например, чтобы писание ключевых слов русскими не требовало текстовой трансляции. Для элемента дерева настроили лексические обозначения - и вперёд...
Это применялось давным-давно; например, в Модуле-2 на ЕС ЭВМ.


Или в Алголе-68. Почему-то не прижилось. Видимо потому что исходники не только читают через некий софт, но их ещё и распечатывают, и ими, как ни странно, иногда даже говорят. И мутирующий синтаксис (при неизменной семантике), даже если это лишь меняются ключевые слова, неизбежно ведет к трудностям в общении.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 85 ]  На страницу 1, 2, 3, 4, 5  След.

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


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

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


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

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