LINUX.ORG.RU

Посоветуйте «легкий» язык для понимания принципов ООП


0

2

Сейчас хочу, не уделяя большого внимания особенностям синтаксиса, более глубоко постичь ООП. Что-то экзотическое (Erlang, OCaml, Smalltalk) не подходит. Что лучше выбрать? Сейчас на рассмотрении Python. Вроде бы всем подходит.

Очевидно, что CLOS! Преимуществ перед другими вариантами много:

  • первый ОО-язык, сертифицированный ANSI;
  • мощнейший набор фич, чрезвычайная гибкость. Подавляющая масса других ОО-языков - всего лишь жалкая пародия на сияющий монумент CLOS;
  • есть метаобъектный протокол, с помощью которого можно создавать свои объектные системы;
  • выдаётся персональная карточка для входа в элитный клуб (+100 к ЧСВ).
mv ★★★★★
()

Не python - там фикция, а не ООП. Не cpp/java - высокий порог вхождения. Выбирай ruby если хочется демонической типизации и какой-нибудь ObjectPascal или Oberon если хочется B&D.

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

Qt/C++

Мы здесь говорим серьезно и иногда шутим. А это и не серьезно и не шутка. Очень плоско, очень несмешно, стыдитесь...

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

Java тоже рассматривал. Но, как было сказано выше, она не «для новичков». + всякие заморочки с IDE, которые хотелось бы избежать. В этом отношении в питоне хватит gedit.

zootcat
() автор топика
Ответ на: комментарий от mv

Очевидно, что Brainfuck! Преимуществ перед другими вариантами много:

* можно без проблем написать свой интерператор;
* мощнейший набор фич, чрезвычайная гибкость. Подавляющая масса других изотерических-языков - всего лишь жалкая пародия на сияющий монумент brainfuck;
* есть метаобъектный протокол из 8 операторов, с помощью которого можно создавать свои объектные системы;
* выдаётся персональная карточка для входа в элитный клуб мозгайопства (+100 к ЧСВ).
</troll>

derlafff ★★★★★
()

как уже выше посоветовали - Common Lisp(CLOS)

ну или смоллтолк.

Это нисколько не экзотические вещи. И как раз с их помощью и можно глубоко постичь ООП.

C++/Java/C#/Python - ни в коем случае.
В крайней уж случае - Ruby.

Love5an
()

«Art of MetaObject Protocol».

остальное ересь

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

Пару строчек кода на CLOS можно. Простые пару обьектов, наследование, инкапсуляция, полиморфизм - стандартненько

vertexua ★★★★★
()

>Посоветуйте «легкий» язык для понимания принципов ООП

Lua?

Led ★★★☆☆
()

>Посоветуйте «легкий» язык для понимания принципов ООП

Сейчас на рассмотрении Python. Вроде бы всем подходит.

Тогда уж лучше Ruby - ООП там на порядок прямее

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

> полиморфизм

спрашивать про полиморфизм в языке с динамической типизацией — все равно, что спрашивать про молоко на молочном комбинате

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

> А что юзать?

юзать нормальное ООП с поддержкой MOP, как в CLOS, например.

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

Пару строчек кода на CLOS можно. Простые пару обьектов, наследование, инкапсуляция, полиморфизм - стандартненько

Что значит «стандартненько»? Множественная диспетчеризация, диспетчеризация по ключу, метаклассы, переопределение класса (и его объектов) в рантайме, аспекты (before, after, around), задаваемая комбинация методов и т.д. не впечатляет?

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

Мы говорим о простом изучении ООП. Тут С++ явно не лучший вариант, так как в нем есть много чего не ООП. Ну не специально не ООП, просто будет куча инфы, отвлекающей от собственно ООП. А Qt - либа, она то тут причем?

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

> > Сейчас на рассмотрении Python. Вроде бы всем подходит.

Тогда уж лучше Ruby - ООП там на порядок прямее

плюсую

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

Конечно впечатляет. Это прекрасно. Просто хотелось лицезреть это в уныло-скобочной абсолютно нечитаемой форме Лиспа.

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

>Чем C++ с либами Qt не уодили?

Тем что надо будет мозг указателями сношать.

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

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

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

> Читаю хаскель, почему бы не пошутить над лисперами

матанирующий хаскеллист шутит над лисперами? да смешно, согласен

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

>> Ну и нормально.

а говорил, что не любишь питон =/

Это так. Но Руби и CL я люблю еще меньше, а Яву и Си++ советовать для начального изучения как-то язык не поворачивается.

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

> Интерестно, что побудило вас стать лиспером?

лисп. лёгкость, с которой можно манипулировать лиспокодом.

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

> Это так. Но Руби и CL я люблю еще меньше, а Яву и Си++ советовать для начального изучения как-то язык не поворачивается.

Objective CAML?

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

> Качни штангу!

=)))

не, кстати, если б мне нужно было выбрать ЯП со стат. типизацией, то Хаскелл был бы лучшим кандидатом. ну или одним из лучших

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

> Читаемость не смутила?

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

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

Все там читаемо. Вот питон - плохочитаем, C + GObject и то понятнее.

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

> Для _изучения_ ООП? O_O_O

а че бы и нет? ООП можно изучать по любому языку, предоставляющему ОО-абстракции.

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

>лисп. лёгкость, с которой можно манипулировать лиспокодом.

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

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

> Но, как было сказано выше, она не «для новичков».

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

+ всякие заморочки с IDE, которые хотелось бы избежать.


какие заморочки? ставь эклипс и в путь.

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

> ООП можно изучать по любому языку, предоставляющему ОО-абстракции.

А учиться водить машину можно и на карьерном самосвале.

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

Objective CAML?


Для _изучения_ ООП? O_O_O


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

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