LINUX.ORG.RU

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

 , , , ,


0

1

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

★★★★★

Хотя вопрос больше даже не о выборе технологии(ооп), а о выборе инструмента

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

Явно не Go. Джава неплоха.

Weres ★★★ ()

Усиленно изучать Rust ИМХО не стоит, пока будешь его учить он несколько раз полностью поменяется, рано еще.

templarrr ★★★★★ ()

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

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

Усиленно изучать Rust ИМХО не стоит, пока будешь его учить он несколько раз полностью поменяется, рано еще.

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

tailgunner ★★★★★ ()

ООП также изучай с помощью С. Сам реализуй наследование, инкапсуляцию и полиморфизм. А то как не мужик.

slyjoeh ★★★ ()

Если выберешь кресты - учи Qt. И тру-ООП, и вообще штука на все случаи жизни.

anonymous ()

Java и только Java. Там, где нужно ООП, всегда бери Java. C++ лучше вообще не трогать дальше чем он совместим с pure C, так, только на уровне «суметь прочитать плюснутый код».

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

php и python

php

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

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

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

Что сейчас полезно, так это pl/sql, и умение в базы данных. Вот с этим скиллом реально не пропадешь, а еще и зарабатывать будешь мешки денег за 2 часа работы в день.

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

Надо мне значит внимательнее чейнджлоги в новостях читать))

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

tailgunner ★★★★★ ()

С будет полезен как для Java, так и для C++. Насчёт Go и Rust-а не в курсе, но это очень маргинальные языки и изучать программирование с них не стоит.

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

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

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

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

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

Ерунда, коряво кодить можно на чём угодно, php тут не причём.

King_Carlo ★★★★★ ()

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

not bad but too fat

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

Два контракта этому экземпляру.

anonymous ()

Только не плюсы. Говорю как плюсовик. Лучше джаву, потом глянуть классы/метаклассы в питоне.

nerdogeek ()

Хочу плавно перейти к изучению ООП. Java или C++?

Дело не в языке, а в выборе правильной методологии. В общем, учи паттерны.

Java или C++?

В любом языке, предназначенном для практического использования, есть свои костыли. Ориентируйся на ту область в которой собираешься применять свои знания. Если по простому, то c++ - десктоп, java - энтерпрайз, php - веб.

no-such-file ★★★★★ ()
Ответ на: комментарий от templarrr

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

А много ли ты написал на php парниша? Для сведения: ООП в php слизано с java.

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

Удивительно другое: 1) Еще не ворвались функциональщики с криком «ООП не нужно», и соответственно 2) Никто не посоветовал SICP, tapl, HtDP.

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

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

А есть учебник по паттернам без привязки к языку? Видел такой всего один, и то больше не учебник, а брошюра, и то на украинском.

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

А есть учебник по паттернам без привязки к языку?

Я читал как минимум один такой, правда, названия не помню. Но, ящитаю, подойдет любой. GoF тот же.

SICP, tapl, HtDP.

Что-то здесь явно лишнее.

tailgunner ★★★★★ ()

Почитай Гради Буча. Во-первых, он даст базу понимания ООП, во-вторых, там примеры есть на java, C++ и ещё каких-то языках. Посмотришь, что тебе визуально приятнее, что удобнее и понятнее читать. На том и пиши. Если выберешь кресты - бери Qt, как выше советовали.

E ★★★ ()

Smalltalk, Dylan, Eiffel. Не обязательно писать на этом в продакшне, почитаешь, попишешь простые примерчики — и вперед применять полученные знания и представления в любым жабах и крестах.

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

Всем надоело одно и то же. Некое разнообразие вносит только Царь, пожалуй, но в топике не его ниша :)

yoghurt ★★★★★ ()

Кстати да, вот тут уже пару раз (или больше?) про Smalltalk сказали.

Так вот, я тут подумал (долго думал, на самом деле, последние год-два), и пришёл к выводу, что Смолток просто необходим тем, кто проектирует любые системы больше хэлловорда.

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

yoghurt ★★★★★ ()

Алгебра

ну и различные классификации ( у борхеса отличный пример )

по ООП смотри симулу и коксову(брайана) Object-Oriented Programming: An Evolutionary Approach Paperback – by Brad J. Cox

qulinxao ★★☆ ()

да кста хоть тут уже и посоветовали

Object-oriented Programming with ANSI-C - Axel-Tobias Schreiner

однако полезней вот эта:

C Interfaces and Implementations - David R. Hanson

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

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

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

И много ли методической литературы по ООП и его применениям на смолтолке? По паттернам? По тестированию и интеграции?

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

Странно, Царь ничего не советует.

int13h ★★★★★ ()
Ответ на: комментарий от no-such-file

Достаточно.

В принципе, Блю/Оранж/Грин-буки всё покрывают, из общего ещё можно Design Patterns Smalltalk Companion посоветовать. Ещё Smalltalk Best Practice Patterns хвалили, и Smalltalk With Style. А остальная масса книг просто покрывает особенности конкретных реализаций.

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

И много ли методической литературы [..] на смолтолке [..] по паттернам?

Такой забавный вопрос, кстати. В ключевой книге по паттернам, которую все знают, половина примеров на Смолтоке, а вы ещё спрашиваете.

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

Ага, знаем, плавали. Ничего он прививает, а местами еще и вредит. Приведу снова ту цитату:

«То, что мы рассмотрели, не отвечает на главный вопрос: как объект, получивший сообщение, находит метод, который надо выполнить? Остановимся подробно на механизмах поиска по сообщению необходимого метода и его выполнения. Итак, как уже отмечалось, выполнение любого действия в системе Смолток осуществляется с помощью посылки объекту сообщения. Получив сообщение, получатель ищет метод с соответствующим сообщению шаблоном, начиная поиск обычно со своего класса. Если объект — класс, то метод ищется среди методов класса, а если объект — экземпляр класса, то среди методов экземпляра класса. Если метод с соответствующим шаблоном находится в классе получателя, то он выполняется, и как результат его выполнения обязательно возвращается некоторый объект, который информирует того, кто послал сообщение, что выполнение метода завершилось с содержащимся в возвращаемом объекте результатом.

А если метода с нужным шаблоном нет в классе? Тогда к работе подключается иерархия классов, а точнее, цепочка суперклассов для класса объекта-получателя. Если в классе подходящего метода нет, метод ищется в ближайшем его суперклассе. Если нужного метода нет в суперклассе, то поиск продолжается в следующем по иерархии суперклассе и так далее, пока не доберемся до класса Object.»

С таким подходом очень легко начать размазывать функциональность объекта по множеству классов. И еще немалую долю практик которые сейчас уже считаются порочными можно реализовать на смаллталке.

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

С таким подходом очень легко начать размазывать функциональность объекта по множеству классов

Пффф. С дури можно и болт сломать.

Анончик, ты чего? Метод-лукап схожим образом работает чуть ли не везде, где есть классы и объекты. Ключевое отличие смолтока лишь в том, что само получение сообщения можно отдельно обработать. Так что проблема откровенно притянута за уши.

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