LINUX.ORG.RU

понять суть ООП

 ,


5

1

собственно САБЖ подскажите что почитать/посмотреть, чтобы вникнуть в предметную область. Понимаю, что пишу как-то не так, ибо передаю методам кучу параметров и почти не использую свойств.

★★★★★

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

Изучать литературу, рекомендуемую преподавателем в вузе, сейчас не модно?

wxw ★★★★★
()
Ответ на: комментарий от Amphetamine-encoder

ЛОР не лучшее место для того, чтобы делать выводы)

Читай внимательнее: «на ЛОРе и вне его пределов

На ЛОРе профессиональных программистов почти нет

Честно говоря, за пределами ЛОРа картина похожая. «Профессиональных программистов» на лиспе, хаскеле etc. я не встречал, одни евангелисты и борщевики. А существуют ли они вообще?..

ОК, передам это товарищу, который числодробилки на фортране пишет. Объясню, что маргинальные языки не для практики

Но ведь FORTRAN — самый что ни на есть мейнстрим. На нём написаны мегатонны кода для числодробилок, бОльшая часть которого работает и по сей день. Похоже, у вас в голове путаница. Рекомендую ознакомиться с определением термина «маргинальный».

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

Разумеется, для людей, некомпетентных в ФП, всё вышеприведённое — «птичий язык».

Что именно является ФП в утверждении: «в лиспе нет zip»?

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

Что именно является ФП в утверждении: «в лиспе нет zip»?

Я где я это утверждал? Зачем ты приписываешь оппоненту утверждения, которых он не делал?

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

Ы? По спецам или по спекам? Судя по спецам, идеальной вообще является поместь бейсика с уайтспейсом.

Спекам. Очепятка

Я никогда с этим не спорил.

ЧСВ зашкаливает? Тесла в отличии от тебя был гением.

Ты /0, мил человек. Как может фича одновременно пребывать в спеках и быть недокументированной?

Как хвостовая рекурсия в SBCL.

Ты делаешь крайне странные, не соответствующие очевидным наблюдаемым фактам заявления. Я больше не буду с тобой разговаривать из-за этого.

Слив засчитан

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

Читай внимательнее: «на ЛОРе и вне его пределов.»

Если «вне его пределов» такие же как ЛОР - то выборка не является достоверной.

Честно говоря, за пределами ЛОРа картина похожая. «Профессиональных программистов» на лиспе, хаскеле etc. я не встречал, одни евангелисты и борщевики. А существуют ли они вообще?..

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

Но ведь FORTRAN — самый что ни на есть мейнстрим. На нём написаны мегатонны кода для числодробилок, бОльшая часть которого работает и по сей день. Похоже, у вас в голове путаница. Рекомендую ознакомиться с определением термина «маргинальный».

Тогда в мейнстрим надо отнести Кобол, Алгол и еще кучу легаси.

Amphetamine-encoder
()
Ответ на: комментарий от Amphetamine-encoder

Тогда в мейнстрим надо отнести Кобол, Алгол и еще кучу легаси.

Да, так и есть. Эти языки были мейнстримом и, что интересно, справлялись со своими задачами.

А лисп не справился ни с чем. Несмотря на то, что ровесник того же Фортрана.

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

Много в природе CAS не на Лиспе? А он собственно только для этой задачи и создавался и ни в какие другие и не лезет.

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

Много в природе CAS не на Лиспе?

Да дохренища: FORM, Fermat, Euler, CoCoA, GAP, Macaulay2, Maple, Xcas, SymPy, SymbolicC++, Symbolism, MATLAB, Singular, Sage, PARI/GP, Mathomatic, Yacas.

А он собственно только для этой задачи и создавался и ни в какие другие и не лезет.

Судя по количеству выживших CAS на лиспе, он и в эту-то задачу может с трудом.

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

Я где я это утверждал? Зачем ты приписываешь оппоненту утверждения, которых он не делал?

Ouch, shame on me, zipper.

Скажите тогда, а кроме монад в вашем видении ФП ничему больше места нет?

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

Sage

Отсыпьте, это же «сборник», а там элементом maxima). Другие вы включили отдельно (sympy, pari/gp).

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

FORM, Fermat, Euler, CoCoA, GAP, Macaulay2,

Узкоспециализированные

Maple,

Тот же Лисп, вид сбоку (как и Mathematica, которая поглотила всех и подмяла под себя всю отрасль)

Xcas, SymPy, SymbolicC++, Symbolism,

Узкоспециализированные игрушки

MATLAB,

Вообще не CAS ни разу

Singular, Sage, PARI/GP, Mathomatic, Yacas.

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

anonymous
()

Из литературы для понимания ООП могу посоветовать «Объектно-ориентированное конструирование программных систем» Бертрана Мейера. Все по полочкам, понятным языком и «правильно». Единственный недостаток - он изобрел свой ОО-язык, Eiffel. Язык в целом неплох(особенно контракты из коробки, собственно проектирование по контракту - концепция Б. Мейера), но на практике практически не применяется. Впрочем, примеры без труда переводятся на другие языки. Берите только язык с множественным наследованием(Eiffel, Python, C++(сам Мейер не любит С++ - ему принадлежит фраза «У С++ два недостатка - изначальный дизайн и реализация»), etc.). Еще Буча можешь почитать...

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

Книга Мейера доступна, кстати, на intuit в виде двух курсов. На русском.

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

Узкоспециализированные

Дык, в отдельности да, но всесте уже такой аргумент сомнительный.

SymPy

Интересно, а можно поподробнее почему игрушка?

PARI/GP

Скорее «узкоспециализирована» или аргументируйте конкретнее.

btw OpenAxiom связан как-то с лиспами?

anonymous
()

И здесь про свой лисп говорят...

По сабжу - плюсую Мейера. Годная книга.

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

Да тотже нетбинс, требует минимум 500 метров оперы.

A ubuntuone клиент на python, который использует QT, занимает 42 MB памяти. Это просто окно которое показывает файлы в папке. Отдельно висит daemon на 33 MB который эти файлы синхронизирует с сервером.

Если запустить просто REPL python в терминале, то это 3.5 MB. То есть эмпирически можно предположить что для C++(QT) нужно 40 MB что бы показать окошко с довольно простым содержимым.

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

Считаю, что хаскелисты варятся в собственном соку. Присосались к термину ФП, прихватизировав его. Давно их надо отделить ;)

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

Между тем, несмотря на твою попытку сострить, LispWorks - одна из самых удобных интерактивных сред программирования, которые я только видел, а я видел многие среды - со многими пришлось поработать. Например, сейчас у меня запущена Visual Studio 2010 Professional. Еще держу IntelliJ IDEA.

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

Дык, в отдельности да, но всесте уже такой аргумент сомнительный.

Так в том и сила Лиспа в символьных вычислениях, что он для любой фигни годится идеально. Не весь Лисп целиком, а конкретно его подход к структурам данных. В других языках такие задачи решать намного сложнее.

Вот тот же Питон - попробуй изобразить на нем аналог оператора /.. из Математики.

Интересно, а можно поподробнее почему игрушка?

Ну сравни с функциональностью Математики.

btw OpenAxiom связан как-то с лиспами?

Естественно, он на common lisp написан.

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

Между тем, несмотря на твою попытку сострить

Где ты увидел «попытку сострить»?

LispWorks - одна из самых удобных интерактивных сред программирования, которые я только видел, а я видел многие среды - со многими пришлось поработать. Например, сейчас у меня запущена Visual Studio 2010 Professional. Еще держу IntelliJ IDEA.

Для деда Игнатия Кузьмича из деревни Малые Говнищи топор является самым удобным инструментом, потому что все эти бусурманские лесопилки — от лукавого. И?

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

Так в том и сила Лиспа в символьных вычислениях, что он для любой фигни годится идеально. Не весь Лисп целиком, а конкретно его подход к структурам данных. В других языках такие задачи решать намного сложнее.

Тогда почему большинство современных CAS-систем написано не на лиспе?

Ну сравни с функциональностью Математики.

Сравнил. И?

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

Может сжечь тогда?

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

Религию можно побороть только образованием. Это относится и к современным карго-культам в программировании (ФЯП, LISP и т.п.)

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

Естественно, он на common lisp написан

прям таки.. а почему общий объем *.lisp в 4 раза меньше *.c? Или лиспу по статусу не положена грязная работа?

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

Это относится и к современным карго-культам в программировании (ФЯП, LISP и т.п.)

В первую очередь это относится к ООП.

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

Мне эти остроты все больше напоминают строки Стендаля об одном родственнике академика из «Красного и черного» ;)

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

В первую очередь это относится к ООП.

Но ведь с использованием ООП создано большинство современного ПО.

Вот смотри. С какого бы устройства ты сейчас ни сидел: с мобильного ли, с десктопа ли — GUI построен на принципах ООП. Ядро Linux имеет внутри существенные объектно-ориентированные конструкции. Твой браузер построен на принципах ООП. ЛОР написан на Java и использует PostgreSQL, который по сути гибридная реляционно-объектная база. И после этого ты заявляешь, что ООП — это «религия» и «карго-культ»?

В то же время, на ФЯП и LISP написаны жалкие крупицы, зато на каждом углу проповедуют адепты, евангелисты и адвентисты. Почитаемый адептами «Blub paradox» можно встретить практически в любой священной книге, в том или ином виде: «Лисп/ФЯП/господь/etc. всемогущ, но вам этого не постичь, потому что вы быдло и не достигли просветления».

Ну, и что же здесь больше похоже на религию, а?

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

Но ведь с использованием ООП создано большинство современного ПО.

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

Современный C++ и вовсе ничего общего с объектным говном не имеет. STL антиобъектен, Boost практически весь ООПу враждебен.

Твой браузер построен на принципах ООП.

Ололо, сявка, в моем браузере ООПом и не воняет. Читай сырцы Webkit, просвещайся.

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

GUI построен на принципах ООП.

Тоже бздежь и грязная вонь. Найди ООПище в, например, XAML.

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

Имелся в виду «/.». Одна точка. ReplaceAll.

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

Во первых, сишечка говняный и невыразительный язык. Функциональности в .c там намного меньше, чем в Лиспе и A. Во вторых, на сишечке там numeric часть, а мы говорим про CAS.

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

Тогда почему большинство современных CAS-систем написано не на лиспе?

Большинство CAS написано на Лиспе. Не на Лиспе написаны узкофункциональные игрушки.

Сравнил. И?

И - игрушка это, убогая и бесполезная.

anonymous
()

Тема стоит как решенная - автор уже понял суть ООП? Или, по крайней мере, что оно не нужно (как принято говорить здесь)?

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

OpenAxiom связан как-то с лиспами?

Изначальный код из Axiom - это Лисп. Но там, возможно, больше стали завязываться на spad и aldor, что нужно смотреть в сырцах.

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

К сожалению, есть весьма образованные и умные верующие, особенно как раз «авраамических» религий. Прям не знаю, что с ними делать...

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

Просто в OpenAxiom добавили числодробильни. А она, понятное дело, Фортран и сишечка.

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

Вот тот же Питон - попробуй изобразить на нем аналог оператора /.. из Математики.

А что за оператор такой? Ссылку можно?

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

В лиспе это делается элементарно. В Хаскелле сложнее, там строгая типизация мешает делать грязные дела с term rewriting - придется все возможные промежуточные типы прописывать, а так можно и укакаться с натуги.

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

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

Но ведь это ложь.

Возьми любой крупный открытый проект и посмотри, насколько близко они следуют ОО-религии.

Я взял Firefox, OpenOffice и GlassFish. Все они чётко следуют ООП-парадигме и при этом являются лидерами в своих областях (среди opensource ПО). Один-ноль.

Современный C++ и вовсе ничего общего с объектным говном не имеет. STL антиобъектен, Boost практически весь ООПу враждебен.

Но ведь это ложь. Как STL, так и Boost активно используют инкапсуляцию, полиморфизм и наследование (что и составляет суть ООП). Два-ноль.

Ололо, сявка

Похоже, я вас задел.

в моем браузере ООПом и не воняет. Читай сырцы Webkit, просвещайся.

Прочитал.

В WebKit 1.10.0 11278 классов. Наследование используется 2294 раза. Виртуальные методы (полиморфизм) — 13631 раз.

Три-ноль. Слив засчитан.

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

Но ведь это ложь.

Это правда, недоумок.

Я взял Firefox, OpenOffice и GlassFish. Все они чётко следуют ООП-парадигме

Ололо! Гради Буч удавился бы, глядя на этот модульный, процедурный код, сильно завязанный на generic programming.

Но ведь это ложь. Как STL, так и Boost активно используют инкапсуляцию, полиморфизм и наследование (что и составляет суть ООП). Два-ноль.

Твое понимание «сути ООП» ничего общего с общепринятым не имеет.

Наличие классов, наследования и тому подобной чуши ничего про ООП не говорит. Классы используются как модули, а не как Буч завещал.

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

http://en.wikipedia.org/wiki/Alexander_Stepanov#Criticism_of_OOP

И что мы видем от этого недоучки?

I think that object orientedness is almost as much of a hoax as Artificial Intelligence.

Сравнение теплого с мягким.

I have yet to see an interesting piece of code that comes from these OO people.

Отсутствие опыта.

In a sense, I am unfair to AI: I learned a lot of stuff from the MIT AI Lab crowd, they have done some really fundamental work: Bill Gosper's Hakmem is one of the best things for a programmer to read. AI might not have had a serious foundation, but it produced Gosper and Stallman (Emacs), Moses (Macsyma) and Sussman (Scheme, together with Guy Steele).

Заигрывание с авторитетами.

I find OOP technically unsound.

*Ничем* не подкрепленные утверждения.

It attempts to decompose the world in terms of interfaces that vary on a single type.

Вранье.

To deal with the real problems you need multisorted algebras

Баззворды.

- families of interfaces that span multiple types.

Протекающий хладагент.

find OOP philosophically unsound.

Субъективные высеры.

It claims that everything is an object.

Обобщение с целью подмены понятий.

Even if it is true

Отсутствие четких убеждений.

it is not very interesting - saying that everything is an object is saying nothing at all.

Отсутствие логики.

I find OOP methodologically wrong.

Отсутствие аргументов.

It starts with classes.

Некомпетентность.

It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs.

Волна некомпетентности.

Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms.

Цунами быдлокодерства. Работа программиста заключается не в том, чтобы «начинать с интересных алгоритмов», а в управлении сложностью.

Only when you understand them well, can you come up with an interface that will let them work.

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

Причины говености STL как на ладони.

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