2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 19:51 
Заслуженный участник
Аватара пользователя


30/01/09
7134
Тут есть ещё один момент. В былые времена можно было начинать учиться на Дельфи (например). В начале обучения сосредоточиться на общих алгоритмических вопросах и ООП не применять. И Дельфи позволяет это делать. Можно программировать консольное приложение (которое я не правильно назвал ДОС-окном) не применяя никаких классов.
Цитата:
То есть насущно осознать класс можно только прочувствовав необходимость в нём.
Но в современных языках (Java, C#) без классов никак нельзя. В этих языках нет понятия процедуры или функции. Значит надо грамотно организовать курс. Не надо сразу лезть в дебри ООП. Первое, бросающееся в глаза отличие от процедурных языков , что создавая объект, мы создаём не просто данные, а совокупность из данных и функций (процедур) для этих данных. Остальные тонкости ООП можно отложить на потом.

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 20:14 
Заслуженный участник


11/05/08
32166
мат-ламер в сообщении #329173 писал(а):
В этих языках нет понятия процедуры или функции. Значит надо грамотно организовать курс. Не надо сразу лезть в дебри ООП. Первое, бросающееся в глаза отличие от процедурных языков , что создавая объект, мы создаём не просто данные, а совокупность из данных и функций (процедур) для этих данных.

Я в этом не разбираюсь, но мне странно. Можно ли создать "совокупность" из процедур, если нету понятия процедур как класса?...

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 20:25 
Заслуженный участник


09/08/09
3438
С.Петербург
ewert в сообщении #329183 писал(а):
Можно ли создать "совокупность" из процедур, если нету понятия процедур как класса?..
Имелось в виду, что нет "отдельно-стоЯщих" процедур: есть только методы, определяемые в классе.

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 20:35 
Заслуженный участник


11/05/08
32166
Maslov в сообщении #329186 писал(а):
Имелось в виду, что нет "отдельно-стоЯщих" процедур: есть только методы, определяемые в классе.

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

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 21:00 
Заслуженный участник


09/08/09
3438
С.Петербург
"Осознание понятия процедуры как некоей самоценности" -- это, по-моему, слишком высокий слог для такой прозаической штуковины :-)
Ну да, понимать, что такое методы и для чего они нужны, конечно, надо. Но с точки зрения сложности понимания, что независимая процедура, что метод-член класса -- разница небольшая.

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 21:15 
Заслуженный участник


11/05/08
32166
Maslov в сообщении #329190 писал(а):
Но с точки зрения сложности понимания, что независимая процедура, что метод-член класса -- разница небольшая.

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

(но это я, конечно, как дилетант говорю)

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 21:38 
Заблокирован


17/02/10

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

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 21:45 
Аватара пользователя


20/12/08
236
изниоткуда
ну вот тут сейчас по закону жанра должны выползти злобные небритые эфирщики функциональщики со своими sicp и lambda и вопросить, почему новичкам впаривают процедурное, а не функциональное прог-ние
:D

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 21:54 
Заблокирован
Аватара пользователя


07/08/06

3474
Есть такая книга "Алгоритмы + структуры данных = программы", и это правильно :-)

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение08.06.2010, 21:59 
Аватара пользователя


20/12/08
236
изниоткуда
а вообще, есть мнение, что с чего ни начинай, но меньше чем за 5-10 лет серьезного программиста из тебя не получится. потому что и с одним, и с другим, и с третьим надо разобраться

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение09.06.2010, 11:30 
Аватара пользователя


01/04/10
910
Maslov в сообщении #329158 писал(а):
Это уж как сложится. Многие всю жизнь пишут на чистом С и так и не приходят к осознанию преимуществ ООП для определённых задач. Если есть впереди свободных лет 5, то почему бы и не попробовать. Только на работу надо устраиваться сразу после института, а с профессиональной точки зрения, программисту, владеющему C++/Java/C# существенно проще найти себе "коммерческое применение", чем программисту, знающему только C/Pascal.


В C есть одна небольшая вещь, которая мне не очень нравится, это передача здоровенной структуры в качестве аргумента от процедуры к процедуре, где через указатели изменяют значения её членов. ООП позволяет сгруппировать процедуры и связанные с ними данные и эта идея мне нравится.

Если программист хороший и пишет только на C, то его могут принять на работу, где требуется писать на C++, так как можно вполне адекватно изучить объектный подход в течение периода стажировки.

Хороший программист не должен быть намертво привязан к одному языку.

Maslov в сообщении #328926 писал(а):
Думаю, лет через пять программирования с использованием ООП Ваше мнение о том, в каком порядке следовало строить обучение, изменится. А при чём тут вред для психики, я вообще не понял.


Когда я только, только начинал изучать программирование на современных компьютерах, то я столкнулся с ООП, а там где ООП, там инкапсуляция, наследование и т.д. Вообщем в голове образовалась большая каша из объектов, иерархий, наследования, инкапсуляций. Я с таким облегчением перешёл на C под Unix like ОС, всё так логично и стройно. И только сейчас я понимаю, что стоит за ООП и с чем его едят. Теперь я могу без вреда для психики на него перейти :)

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение09.06.2010, 11:43 
Заслуженный участник
Аватара пользователя


03/06/09
1497

(Оффтоп)

/me всегда писал на Си, Перле и Хаскелле и нисколько не жалеет. А случайно прочтённую книгу Страуструпа "Язык С++" вспоминает как страшный сон. Наверное это связано, что я никогда не писал действительно больших проектов, где бы приемущества ООП проявились.

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение10.06.2010, 16:39 
Аватара пользователя


01/04/10
910
meduza в сообщении #329337 писал(а):
me всегда писал на Си, Перле и Хаскелле и нисколько не жалеет. А случайно прочтённую книгу Страуструпа "Язык С++" вспоминает как страшный сон. Наверное это связано, что я никогда не писал действительно больших проектов, где бы приемущества ООП проявились.


Ну книга Страуструпа уже не кажется такой страшной после Кнута. Кнут уже пишет не для таких как я :(

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение10.06.2010, 16:51 
Заслуженный участник


15/05/05
3445
USA
creative в сообщении #329832 писал(а):
Ну книга Страуструпа уже не кажется такой страшной после Кнута. Кнут уже пишет не для таких как я :(
По-моему единственное, что страшно в ИП Кнута - это физические размеры томов. Все алгоритмы расписаны очень подробно, так что реализовать из достаточно легко. Ну а математическое обоснование алгоритмов вполне можно пропустить, во всяком случае при первом чтении.

 Профиль  
                  
 
 Re: Зачем новичкам впаривают ООП, а не процедурного прог-ния?
Сообщение10.06.2010, 19:18 
Заслуженный участник
Аватара пользователя


03/06/09
1497

(Оффтоп)

Yuri Gendelman в сообщении #329834 писал(а):
Ну книга Страуструпа уже не кажется такой страшной после Кнута.

Под "сташной" я не имел в виду сложную. И это больше относится не к книге, а к самому языку С++, который, на мой взгляд, ужасен. Но это моё сугуболичное мнение, прошу не комментировать.
А книги Кнута хоть и сложноватые, но читаются с интересом. И не жаль потраченного на них времени.

И если хоть что-то написать в тему, напишу, что самый чистый, стройный, законченный и продуманный ООП язык, на мой взгяд -- Ruby. В нем всё просто и логично. Но это опять лишь моё личное мнение.

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

Модератор: Модераторы



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

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


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group