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  След.

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



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

Сейчас этот форум просматривают: tolstopuz


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

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