LINUX.ORG.RU

А с чего лучше начинать изучение ООП?

 , , , ,


0

1

Да, с чего лучше? Вот изучаю C, а что потом изучать? Хочу плавно перейти к изучению ООП. Java или C++? Или Go? Или Rust этот? Чем стоит, а чем не стоит захламлять мозг? Что вообще сейчас мэйнстрим?

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от anonymous

C++ лучше вообще не трогать дальше чем он совместим с pure C

Не слушай анонов. C++11 - отличный язык. А ООП нужно осваивать путем написания большой программы.

anatoly
()

ооп хорошо применять, а не изучать.

Была книга, отечественного издания кажется по c++, где показывалось на примере процедурного и объектного подхода организация списков, очередей, стека и т.п. Очень показательно - объектный подход был в разы компактнее например.

tvision посмотри материалы еще.

swwwfactory ★★
()
Последнее исправление: swwwfactory (всего исправлений: 1)
Ответ на: комментарий от swwwfactory

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

Это мелочевка. Масштабы нужны бОльшие - сложные системы. Не даром Буч в своём «ООАД» рассматривает не стэки со списками, а автоматику теплицы, планирование поездов и тд.

yoghurt ★★★★★
()
Ответ на: комментарий от yoghurt

Это мелочевка. Масштабы нужны бОльшие - сложные системы. Не даром Буч в своём «ООАД» рассматривает не стэки со списками, а автоматику теплицы, планирование поездов и тд.

От простого к сложному, основы, повторение, развитие.

Я о том, что все познается в сравнении и на практике. Когда процедурным подходом пишутся крупные проекты, потом просто без ООП, особенно базовых возможностей, сложно достичь эффективности и продуктивности. Но это конечно не серебренная пуля. При мелком делении на классы эффективность тоже резко снижается, причем незаметно...

swwwfactory ★★
()

Про плюсы: вполне себе вариант языка, но изучать ради ооп - бред.

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

Про Го: этот язык вообще не про ооп, это покоцанный хаскелл переделанный в императивщину и скрещенный с обычным Си. В целом язык хороший, маленький. Судя по количеству коммитов на гитхабе (10% от джавы) и тому что со следующей (1.4) версии он будет нативно на андроиде, он выстрелил. ООП там по сути уже нет.

Про ржавчину: то что мертво умереть не может. Почему-то эти слова приходят на ум каждый раз когда я вижу посты про Rust. Лично мое мнение - разработчики браузера не осилят написать замену плюсам. Будет очередная скала, только теперь еще и с ручными копанием в памяти. Да и стабильной версии все еще нет.

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

А, еще про смаллталк: там в посте выше есть цитата из учебника. Сам не вижу смысла изучать его дальше понимания системы классов.

anonymous
()

Хочу плавно перейти к изучению ООП

С++, Java, Ruby

comp00 ★★★★
()

Банда Четырех рулит.

anonymous
()
Ответ на: комментарий от anonymous

Может, человек все же программированием заниматься хочет, а не позорной гуйней. На фига Qt кому-то кроме гуедрочеров?

anonymous
()

Учи сразу С++ - забей на С. И заодно Python. Остальное ненужно.

rupert ★★★★★
()

А для чего ты учишь? Бесцельно?

menangen ★★★★★
()

Или Go? Или Rust этот?

Учи D тогда уж.

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от yoghurt

В ключевой книге по паттернам

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

no-such-file ★★★★★
()

Впишусь за smaltalk.

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

anonymous
()

ИМХО, с жабки.

Deleted
()
Ответ на: комментарий от tailgunner

Язык существенно не меняется уже давно. И до Rust 1.0 существенно уже и не изменится.

Анонимные аналитики ЛОРА гарантируют это?

anonymous
()

вопрос тут скорее всего надо ставить по другому, а чем бы вы хотели заниматься в плане программирования?

Я к тому что нет универсального языка (технологии) для всего, надо как то определится чем хотим заниматься а затем уже выбрать инструмент для этого.

anonymous
()

Erlang. Там, правда, с терминологией всё плохо, вместо «объект» говорят «процесс», но суть не меняется.

Miguel ★★★★★
()

ооп вообще отлично описуют в java, ибо она вся на ооп. Я ооп понял только благодаря ей. А потом можно и c++

kachan ★★
()
Ответ на: комментарий от tailgunner

Кто-то путает существенные изменения и несовместимые.

Это как то отменяет тот факт, что код, собиравшийся предыдущей версией, не сможет быть собран без переработки текущей версией?

andreyu ★★★★★
()
Ответ на: комментарий от anonymous

Да кому нужны это NEC, AVR или даже STM32?

В столице страны (нет, не украина), в которой я на данный момент обитаю, ровно 2 компании этим занимаются. Нанимают они раз в 10 лет одного человека. Ради этого стоит учить Си?

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

anonymous
()
Ответ на: комментарий от andreyu

Кто-то путает существенные изменения и несовместимые.

Это как то отменяет тот факт, что код, собиравшийся предыдущей версией, не сможет быть собран без переработки текущей версией?

Нет. А должно?

tailgunner ★★★★★
()
Ответ на: комментарий от Deleted

Ты когда нибудь писал что-нибудь длиннее 200 строчек кода? ООП неплохо структурирует код. В твоем любимом Си для каждого типа нужно писать свою функцию со своим именем, что засирает пространство имен. А если пилить контейнер с разным содержимым, то это неизбежные void* указатели, которые несут кучу говеных ошибок.

Aswed ★★★★★
()

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

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

Лол, больше 200 пробовал. И вообще, видел много огромных проектов на сишке, в которых все было просто и красиво. Можешь глянуть исходники той же fbpanel.

Deleted
()
Ответ на: комментарий от swwwfactory

При мелком делении на классы

ООП это не про классы. И не дай бог про инкапсуляцию или полиморфизм. Тебя обманули. Без сахарка тоже прекрасно можно делать все в ООП стиле.

bj
()
Ответ на: комментарий от kachan

https://www.linux.org.ru/forum/development/9097547

ну полное ООП:

class nekulturno{
	static{
		System.out.println("Как то это печально");
//.100 страниц кода
	}
	public static void main(String[] main){
		System.out.println("\nБезимяные кодовые вставки\n");
	}
}
qulinxao ★★☆
()
Ответ на: комментарий от Aswed

ты называеш ООП то , что в твоём языке сделано используя ООП , а не чистое ООП

например модульность , сокрытие, раздельная компиляция - всё это ( и многое другое) имеет пересечение с ООП , а не следуют только из ООП

поэтому наличие в языке модульности не есть признак наличия в языке ООП и так далее.

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

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

bj
()
Ответ на: комментарий от Deleted

если серьёзно , но это два наиболее распространённых подхода в обучении.

1. вот вам инструмент делайте с ним, что угодно .

I. вот вам инструмент и свод эвристрик по его использованию гарантирующие гудстайл , а не соблюдение череватое плохими последствиями ибо.

для 1 подхода стремятся делать идеальные инструменты ( что практически очень дорого для инструментоделателя- и по факту на какой то глубине приходится уступать реальности - но с каждой попыткой совершентсво инстумента растёт)

для I подхода можно и не замарачиваться - эволюция вывезет.

qulinxao ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.