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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Языки программирования, Вот это будет война так война :) 
:(
    Опции темы
Дрон
Дата 24.4.2005, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



Chingachguk
Так ответ твой был по делу smile
Хотя споры -- это, конечно, вещь бесполезная.


--------------------
Да. Именно так.
PM   Вверх
Дрон
Дата 24.4.2005, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



Вот какая у меня мысль промелькнула по поводу сравнения ООП и процедурного программирования.

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

Как-то раз меня в воскресенье вызвали на работу, т.к. срочно надо было исправить пару глюков. Приезжаю я.
Читаю письмо от чела, исправляю... И тут вижу последним пунктом в списке багов написано, что вот невозможно узнать состояние одного объекта из другого, так как переменная, отвечающая за состояние, объявлена private. Изменять же класс, написанный мной, он не стал.

А теперь скажите, что я должен был делать в этом случае?
Заранее предусмотреть все возможности нельзя. Я не думал, что состояние может понадобиться снаружи и поэтому сделал его недоступным, как и положено.
Можно сказать, что во избежание таких ситуаций нужно писать геттеры для свойств объекта. Но это же трата времени. Написание кучи функций такого вида:
Код

public int State
{
    get{ return state; }
}

это очень интересное и полезное занятие. И так в каждом серьёзном классе у меня таких функций штук пять, так ещё и я должен предусмотреть, что в будущем может быть когда-нибудь понадобится ещё к какому-нибудь члену получить доступ. А ведь такие функции ещё и производительность снижают и размер кода увеличивают. Но зато ООП.
До кучи ещё можно сказать, что почему это состояние у меня типа int, ведь нужно же отдельный enum или класс сделать smile

Так вот сижу я в воскресенье вечером в пустынном офисе и улыбаясь, заменяю private на public без каких-либо душевных мук. Хрен с ним с этим ООП.


--------------------
Да. Именно так.
PM   Вверх
Domestic Cat
Дата 24.4.2005, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Дрон. Во-первых ИДЕ могут генерить подобные вещи за долю секунды, правда речь не о студии. Во-вторых, проперти/геттер/сеттер и вообще метод произвйдительность снижает настолько, что если бы не снижал, это бы ни на что не повлияло.
В-третьих, преимущество ООП состоит в переиспользовании кода, в инкапсуляции, гораздо меньшем времени затраченном на дебаггинг, удобочитаемости кода, и т п.
Для того, чтобы это понять, нужно читать хорошие книжки и писать код. В какой-то момент начинаешь понимать, что ты пишешь правильный код.
А так все рассуждения здесь больно смешно (для меня) звучат smile


--------------------

PM   Вверх
Дрон
Дата 24.4.2005, 03:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



Domestic Cat
Цитата(Domestic @ 24.4.2005, 02:55)
А так все рассуждения здесь больно смешно (для меня) звучат smile

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

Цитата(Domestic @ 24.4.2005, 02:55)
В-третьих, преимущество ООП состоит в переиспользовании кода, в инкапсуляции, гораздо меньшем времени затраченном на дебаггинг, удобочитаемости кода, и т п.

По порядку:
Возможность переиспользования кода требует зарание предусмотреть все варианты использования объекта. А это, согласись, довольно трудоёмкий процесс.
Инкапсуляция. Да, она снижает вероятность появления багов, особенно, когда код пишут несколько человек. Но ведь и создаёт сложности. Когда нет возможности забраться внутрь, то приходится иногда такие извращения придумывать, чтобы получить нужный результат.
Дебаггинг. Сложно сказать. У меня большинство багов не зависят от структуры. А вот идти step-by-step, когда у тебя на одну строку штук пять геттеров вызывается, действительно неприятно.
Удобочитаемость. Тут сложно оспорить. Когда привык к объектам, то действительно всё легко и красиво. Но ведь если тебя заставить пару лет писать в обратной польской нотации, ты бы к ней тоже привык smile

В общем ООП облегчает жизнь, если на нём не зацикливаться smile smile


--------------------
Да. Именно так.
PM   Вверх
Chingachguk
Дата 24.4.2005, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Цитата
А так все рассуждения здесь больно смешно (для меня) звучат


На серьезные аргументы (сравнение с другими подходами) времени нет, а на подколки есть ? ;) ok.

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

Цитата
Не собирался же я тут разбивать в пух и прах идеи ООП. Я просто привёл пример того, что ООП не идеально


Респект!
Никто не говорил, что ООП - отстой. Просто все в конце концов совершенствуется путем обобщения прошлого опыта. И (имхо) возможны и другие варианты.

Это сообщение отредактировал(а) Chingachguk - 24.4.2005, 13:01


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Domestic Cat
Дата 25.4.2005, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



Цитата(Chingachguk @ 24.4.2005, 03:59)
На серьезные аргументы (сравнение с другими подходами) времени нет, а на подколки есть ? ;) ok.

На серьезные ответы уйма времени уходит smile


--------------------

PM   Вверх
chipset
Дата 27.4.2005, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 165



Народ. А кто вообще пораспускал мифы что C++ медленее Си? Убейте - не пойму, чего там медленного...


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
Domestic Cat
Дата 27.4.2005, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 4
Всего: 172



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


--------------------

PM   Вверх
Ch0bits
Дата 28.4.2005, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



BIG OffTopic:

Сегодня страшный(а может великий) день в моей жизни!
Так сложилась судьба(звёзды, карма), что Я СТАЛ ДЕЛЬФИЙЦЕМ!
smile smile smile smile

Больше я не буду хаять Дельфи(ну разве что язык), буду материть .Net!
Товарищи дельфийцы, встречайте попонение в своих рядах, я пришёл! УРА! УРА! УРА!

Теперь могу заявить: Delphi будет жить! Мы ещё второй большой взрыв переживём!
Для меня на свете есть только 2 языка: Delphi & Java!
PM WWW   Вверх
Kurt
Дата 29.4.2005, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



Ни разу в жизни не видел программера, к-й бы сказал "Сегодня я стал Дельфийцем, Java-истом, дотНЕТовцом" (нужное подчеркнуть).
Не удержусь спросить, как можно так определиться за один день? smile

Цитата(Vadim999)
буду материть .Net!

а вот этого не советую. smile


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Ch0bits
Дата 29.4.2005, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



Цитата(Kurt @ 29.4.2005, 22:25)
а вот этого не советую

Да нее... я буду криптованый мат юзать. smile smile smile
ШюТкА! smile smile smile

Цитата(Kurt @ 29.4.2005, 22:25)
как можно так определиться за один день?

Народная мудрость: старику где тепло там и родина. smile
Теперь угадай как? smile
PM WWW   Вверх
Jey_k
Дата 2.5.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


WEB-командир
****


Профиль
Группа: Комодератор
Сообщений: 4149
Регистрация: 16.11.2003
Где: Москва

Репутация: 1
Всего: 61



Vadim999
Ну собственно правильный выбор. Поздравляю!!! smile


--------------------
PM MAIL WWW   Вверх
chipset
Дата 3.5.2005, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

Репутация: 4
Всего: 165



Ужоснах.


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
simanyay
Дата 3.5.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Антон Ковалёв
****


Профиль
Группа: Участник
Сообщений: 2053
Регистрация: 22.8.2002

Репутация: 0
Всего: 36



Кошмар


--------------------
«It's better to be a pirate than to join the Navy» — Steve Jobs.
PM MAIL WWW   Вверх
Ch0bits
Дата 3.5.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



Сгинь-сгинь нечистый... чур меня... smile smile smile
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0609 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.