powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
418 сообщений из 418, показаны все 17 страниц
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547166
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Прямиком с собеседования в бешенстве.... какая-то фигова конторка. заставила меня проехать 5 часов (по 2.5 в каждую сторону), что бы сказать, что желаемые 50000 руб они предложить не могут... Начать можно с 30 (хотя вакансия от 60)

Ну ладно... это вступление.
Теперь к сути
На собеседовании начали задавать вопросы по ООП. Ну я ответил более-менее (не склонен заучивать теорию, мне больше нравится практика.. но всё же ответил с некоторыми поправками). А потом был задан вопрос "супер" : "А для чего придумали ООП". Мой ответ был "Для лучшего структурирования кода". На что последующие фразы собеседника намекали на то, что он ждёт большего. Я предполагая, что речь идёт об производительности, сказал, что само по себе использование данного подхода приводит к небольшому снижению производительности (по отношению к функциональному программированию), однако этот недостаток можно перекрыть, так как код лучше структурирован, а потому может быть лучше оптимизирован.

Последующий разговор показал, что со мной не согласны, и ожидали ровно противоположного ответа (что производительность возростает при использовании объектов)

Итак. Основной вопрос. Кто прав?

Кстати, по поводу MVC, то, что это сделано также для структурирования кода, он тоже не согласился..

P.S. Спорить мне не хотелось с ним (тем более что он свое мнение всё же не озвучил, а лишь намекнул)... А после озвученной мне суммы тем более.
Однако любопытство то мучает теперь
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547202
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрприводит к небольшому снижению производительности (по отношению к функциональному программированию)может, ты имел в виду процедурное программирование?


а вообще, по крайней мере в компилируемых языках ООП не снижает скорость выполнения (разве что вызов виртуальных методов, но и там копейки).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547209
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ООП, МВЦ и прочие наслоения, безусловно, замедляют код. Но упрощают управление большими объёмами кода. ООП, МВЦ и прочее - это системный подход к программированию. В конечном счёте они далеют возможным то, что без них было бы невозможно реализовать из-за банальной нарастающей неконтролируемой сложности... Короче, детский сад с азами.

Ну не захотел тамошний лид делиться зарплатой или хотел боссу показать, что он тут самый умный и незаменимый. А может, хотел от вас конкретный ответ, но сам не смог сформулировать конкретный вопрос. А может, вы не так поняли. Не стоит заморачиваться, покуда есть другие кандидатуры работодателей.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547227
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр, на собеседованиях можно спорить только в разрезе обсуждения оплаты.

Во всём остальном от тебя ожидают лояльности. Ты наверное прав в разрезе вопроса производительности
но окружающий тебя мир постепенно катиться к мульт-сериалу Футурама где гротеск и абсурд является трендом.
Сегодня все поклоняются золотому идолу под названием ООП. Просто так удобно. Прими это как факт.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547333
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч...а вообще, по крайней мере в компилируемых языках ООП не снижает скорость выполнения...
Не снижает, это - да. А вот в интерпретируемых, или в языках, типа явы, или сишарпа - повышает ещё и как!
По той простой причине, что многие классы с ихнеми методами написаны нативно , а не кривыми ручками говнокодятся. Например, всем известный опенЖЛ.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547380
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр...Кстати, по поводу MVC, то, что это сделано также для структурирования кода, он тоже не согласился...
Я тоже не соглашусь.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547382
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

Да... я о процедурном )) как говорил, не любитель разной терминологии, потому иногда могу что-то подпутать ) Однако суть то не изменилась... программа написанная в стиле ООП не быстрее чем прога написанная процедурами (разумеется при одинаковой логике и функционале).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547399
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЯростный Меч,

Да... я о процедурном )) как говорил, не любитель разной терминологии, потому иногда могу что-то подпутать ) Однако суть то не изменилась... программа написанная в стиле ООП не быстрее чем прога написанная процедурами (разумеется при одинаковой логике и функционале).
На одном веб семинаре звучало что у Java есть богатый функционал по
workaround виртуального каллбека. Но это от разработчика скрыто под капотом.
И наше понимание virtual callback если брать за основу С++-ное по отношению к Java
будет скорее всего ошибочным. Т.е. ООП в Java не равно ООП в С++. На этом
можно строить определённую риторику. И развивая мысль. ООП бывает разное.
И влияние его на скорость программы будет скорее всего более сложным
и многогранным. И ответить на этот вопрос в рамках собеседования скорее
всего невозможно. Надо рассматривать конкретные юзкейсы.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547659
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр "А для чего придумали ООП".
Мой ответ был "Для лучшего структурирования кода".


В общем, ты не был далёк от истины. Можно было бы конечно добавить ещё пару умных слов, но ...
Самое прикольное, что ООП, как и функциональное программирование, как и реляционные БД придумали не для чего-то конкретного, а просто, "чтобы було". Это -- подходы к разработке, методологии. Они -- ни для чего, они -- просто варианты реализации. Но многим понравилось так писать программы/базы данных -- и это получило распространение.
Другие люди, тоже "просто так" придумали, например, логическое программирование, аспектное программирование -- но оно "не покатило", и большой популярностью не пользуется.

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


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

ПрограмёрПоследующий разговор показал, что со мной не согласны, и ожидали ровно противоположного ответа (что производительность возростает при использовании объектов)


Ну, в принципе ты не так и неправ, поскольку инкапсуляция не даётся даром.

ПрограмёрИтак. Основной вопрос. Кто прав?


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

ПрограмёрКстати, по поводу MVC, то, что это сделано также для структурирования кода, он тоже не согласился..


Тут он прав, потому что MVC даёт возможность существования функциональности множества View и Controller к одному и тому же Model.
Типичный пример -- разные окна с Word-документов в разных режимах просмотра -- в одном пишешь, в другом -- смотришь, как это в итоге выглядит.
Кстати, MVC можно делать и без ООП.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547661
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПрограмёр, на собеседованиях можно спорить только в разрезе обсуждения оплаты.

Во всём остальном от тебя ожидают лояльности. Ты наверное прав в разрезе вопроса производительности
но окружающий тебя мир постепенно катиться к мульт-сериалу Футурама где гротеск и абсурд является трендом.
Сегодня все поклоняются золотому идолу под названием ООП. Просто так удобно. Прими это как факт.

Гы, много раз спорил, доказывал свою правоту, или доказывали мне, и я соглашался, и со вменяемыми представителями работодателя всегда "расставались друзьями".
А на невменяемых мне пофиг.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547666
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПрограмёрЯростный Меч,

Да... я о процедурном )) как говорил, не любитель разной терминологии, потому иногда могу что-то подпутать ) Однако суть то не изменилась... программа написанная в стиле ООП не быстрее чем прога написанная процедурами (разумеется при одинаковой логике и функционале).
На одном веб семинаре звучало что у Java есть богатый функционал по
workaround виртуального каллбека. Но это от разработчика скрыто под капотом.
И наше понимание virtual callback если брать за основу С++-ное по отношению к Java
будет скорее всего ошибочным. Т.е. ООП в Java не равно ООП в С++. На этом
можно строить определённую риторику. И развивая мысль. ООП бывает разное.
И влияние его на скорость программы будет скорее всего более сложным
и многогранным. И ответить на этот вопрос в рамках собеседования скорее
всего невозможно. Надо рассматривать конкретные юзкейсы.

Ну кстати, да, вот характерный пример -- python, где, говорят, выражение

"2 + 3"
выполняется примерно след. образом:

создаётся объект '2' типа number

создаётся объект '3' типа number

создаётся (возможно, находится) объект '+' типа функция

функция '+' вызывается с двумя аргументами 'объект 2' и 'объект 3'
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547708
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
ПрограмёрКстати, по поводу MVC, то, что это сделано также для структурирования кода, он тоже не согласился..


Тут он прав, потому что MVC даёт возможность существования функциональности множества View и Controller к одному и тому же Model.
Типичный пример -- разные окна с Word-документов в разных режимах просмотра -- в одном пишешь, в другом -- смотришь, как это в итоге выглядит.
Кстати, MVC можно делать и без ООП.

Значит ли это, что не используя данный паттерн, я не смогу написать тот же функционал, равный по производительности указанному (реализованному через (или как правильно говорится) MVC)? То есть, могу ли я всё слепить в один файл, не используя классов... не используя функций и процедур, просто написать сплошную простыню кода, которая будет работать как мне требуется (реализуя чтение и запись базы обычными запросами внутри кода, а внешний вид формируя вперемешку с бизнес логикой)? Ведь в конечном счёте любой код сводится к виду простыни в момент выполнения ))

Так всё же, может ли использование MVC шаблона в моих приложениях дать мне что-то, кроме понятной и удобной структуры проектов?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547710
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёр...Кстати, по поводу MVC, то, что это сделано также для структурирования кода, он тоже не согласился...
Я тоже не соглашусь.

Ваше право. Но было бы намного интереснее услышать аргументацию данного мнения.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547720
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что свет клином сошёлся на MVC ? И какое отношение MVC имеет к приросту "скорости в данном" топике?
И когда вообще MVC был узким местом в коде? Вы, господа копнули в другую сторону.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547721
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрПоследующий разговор показал, что со мной не согласны, и ожидали ровно противоположного ответа ( что производительность возростает при использовании объектов )

Если бы это было так, то ядра операционных систем и баз данных писали бы на C++, а не на C. А то и вовсе на Java или C#.

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

К примеру там где программист на C будет использовать обычный массив из структур - его коллега на C++ не дрогнув рукой заюзает хешированную мапу на темплейтах с динамическим созданием объектов в куче (просад в скорости раз в 50..200). И это еще не самый тяжелый случай. Таблица виртуальных методов тоже исправно набрасывает на вентилятор.

Конечно на C++ тоже можно массив структур, но это не приветствуется. Про Java и вовсе говорить не приходится - 101% примеров, где она почти догоняла/уделывала C/С++ вертелся на простеньких программах которые.... оопс, вообще не использовали ООП, а оперировали как раз массивами чисел в процедурном стиле фортрана.

В общем ты молодец, что не устроился туда. Работать с идиотами - себе дороже.

А еще можно тут пообтекать: http://www.dreamsongs.com/Files/ObjectsHaveFailed.pdf

Это трудно понять программистам, ежедневно учавствующих в паралимпиаде по программированию (Java, C#, VB, PHP), но есть такая военная тайна - ООП в языке, как таковой, вообще не нужен, пример GTK+ это только подтверждает.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547729
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще хорошая жвачка для мозгов (если они, конечно, есть в наличии):

http://blogerator.ru/page/oop_why-objects-have-failed
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547730
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример с ядром ОС показателен. И GNOME/GTK здесь уже выглядят как слабый довесочек
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547746
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПример с ядром ОС показателен. И GNOME/GTK здесь уже выглядят как слабый довесочек

Нет, не слабый, а фундаментальный. Существует миф, хорошо навеянный Delphi и его подобиями, что графический интерфейс программы без OOP ну никак не построить, ибо это так логично - Кнопка - это класс, частный случай класса Окно и понеслась.

А пример GTK как раз и разбивает этот миф, никакого OOP с наследованиями даже для UI не нужно - все можно превратить просто в серию вызовов процедур, передавая хендл аки this только там где нужно.

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

Да, даже в GTK (как и в ядре линукса) есть куча мест где применяется ООП, в явно-неявном виде, ибо все написано на С.

Ну действительно, чем вызов вида

method(object, a, b)

отличается от

object->method(a,b),

кроме как формой записи?

Тут вопрос в другом - если в ООП писать не в стиле ООП - это дурной тон, то в нормальном случае (ядра и GTK) - ООП применяется только там, где он реально нужен, а не вообще везде где только можно, но не нужно, стимулируя программиста на понаписание говнокода (см выше про массив структур в стеке vs хешмапа с кучей на темплейтах).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547789
avlaxoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрИтак. Основной вопрос. Кто прав?


На мой взгляд, никто. ООП используется для унификации технологии разработки, для повышения качества (скорости) разработки и сопровождения: инкапсуляция кода И ДАННЫХ, наследование, полиморфизм. Конечно, копание в таблицах виртуальных методов (VMT) не прибавит скорости при исполнении (это в случае использования полиморфизма) :) Но и ответ "ООП применяется для лучшей структурированности кода" был бы неполным. Всё же между структурой и классом не только количественное, но и качественное отличие.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547867
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЗначит ли это, что не используя данный паттерн, я не смогу написать тот же функционал, равный по производительности указанному (реализованному через (или как правильно говорится) MVC)?


Да, значит.
Не, ну, возможно, ты придумаешь какой-то другой аналогичный по назначению паттерн.

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


MVC вообще устроено по уму, только может быть пара VC (вместе или отдельно) вызывает небольшое недоумение.
Так что я не понимаю, как ещё можно было бы это сделать.

Основная идея (это кстати Subject-Observer называется) вполне интуитивно понятна -- есть кусок данных, который мы согласованно и централизованно меняем, и есть N наблюдателей, которые данные не меняют, но "слушают" события по изменению модели и перерисовывают их отображение.

Это можно сделать и без ООП и классов, на чистом С например, или на фортране. Ничего не изменится.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547877
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это вообще бредовые показания...


Если бы это было так, то ядра операционных систем и баз данных писали бы на C++, а не на C. А то и вовсе на Java или C#.


Ядра ОС написаны на С а не на С++ по очень простому набору вполне понятных причин:
-- когда писались большинство ОС, С++ ещё не было
-- когда писались оставшаяся часть ОС, не существовало переносных компиляторов С++
-- Линус Торвальдс ненавидит С++. Это ничего не значит, это у него такое функциональное состояние (не болезнь, а именно функциональное состояние), навроде клаустрофобии или боязни высоты.



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


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



Конечно на C++ тоже можно массив структур, но это не приветствуется.

Почему же не приветствуется ? Кто мешает ?


Про Java и вовсе говорить не приходится - 101% примеров, где


А Ява тут вообще при чём ?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547890
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПрограмёрЗначит ли это, что не используя данный паттерн, я не смогу написать тот же функционал, равный по производительности указанному (реализованному через (или как правильно говорится) MVC)?


Да, значит.
Не, ну, возможно, ты придумаешь какой-то другой аналогичный по назначению паттерн.



________________________________________________ (место для примера) ________________________________________

оно пустует :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547894
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНу это вообще бредовые показания...


Если бы это было так, то ядра операционных систем и баз данных писали бы на C++, а не на C. А то и вовсе на Java или C#.


Ядра ОС написаны на С а не на С++ по очень простому набору вполне понятных причин:
-- когда писались большинство ОС, С++ ещё не было
Вранье. Линус начал пилить линукс когда C++ уже вовсю был. Аналогично с ядром NT, ядром Mach, ядром Darwin и т.д. Никто не использовал C++.


Можешь заодно почитать, что он думает об ООП, может поймешь чего: http://dshevchenko.biz/ru/content/линус-торвальс-против-c-мой-ответ



MasterZiv-- когда писались оставшаяся часть ОС, не существовало переносных компиляторов С++
Их и сейчас нет, спустя 30 лет


MasterZiv-- Линус Торвальдс ненавидит С++. Это ничего не значит, это у него такое функциональное состояние (не болезнь, а именно функциональное состояние), навроде клаустрофобии или боязни высоты.
Да ты что? А создатели mysql, nginx и 90% всего полезного софта под xNIX - тоже, сатанинские плюсоненавистники? Видать это заразно!

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


MasterZivПочему же не приветствуется ?
Религия.

MasterZivКто мешает ?
Коллеги, которые тебя будут морально пи..дить и всячески окунать в это говнецо, когда ты будешь делать не так идиотично, как это привыкли делать они. Хотя ты наверное "программист" одиночка, работа в коллективе для тебя нечто неизведанное.


MasterZivПро Java и вовсе говорить не приходится - 101% примеров, где

А Ява тут вообще при чём ?

При том, что некие полоумные ее приводят в качестве аргумента, что дескать там ООП по самое не хочу, а ничего не тормозит. Забывая уточнить, что именно там не тормозит, а что именно - лагает по самое небалуйся.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547896
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЗначит ли это, что не используя данный паттерн, я не смогу написать тот же функционал, равный по производительности указанному (реализованному через (или как правильно говорится) MVC)?Сможешь конечно.... наверное.... Зависит от тебя.
Но для ответа на твой реальный вопрос достаточно посмотреть на пару десятилетий назад, когда ни про какой MVC никто не знал.
Тогда надо было решать все те-же проблемы и они успешно решались.
Патерны ООП вообще были придуманы сравнительно недавно. И еще более недавно они стали считаться нормой. Но то что они существуют и часто используется не означает что они являются абсолютно необходимыми.

Програмёр То есть, могу ли я всё слепить в один файл, не используя классов... не используя функций и процедур, просто написать сплошную простыню кода, которая будет работать как мне требуется (реализуя чтение и запись базы обычными запросами внутри кода, а внешний вид формируя вперемешку с бизнес логикой)? Ведь в конечном счёте любой код сводится к виду простыни в момент выполнения ))Конечно можешь.
И повторюсь: посмотри на пару десятилетий назад и ты увидишь что практически все коммерческие приложения именно так и были написаны. Это уже и тогда считалось кривым кодом, но....
Сейчас, когда ООП популярно, уже делаются глупости основанные на объектах.

ПрограмёрТак всё же, может ли использование MVC шаблона в моих приложениях дать мне что-то, кроме понятной и удобной структуры проектов?Еще? Ну пальцы сможешь растопырить с чувством полного права на то.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547899
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПрограмёрТак всё же, может ли использование MVC шаблона в моих приложениях дать мне что-то, кроме понятной и удобной структуры проектов?Еще? Ну пальцы сможешь растопырить с чувством полного права на то.

Смешные вы. Попытка растопырки на MVC выглядит так-же смешно, как распальцовка на фоне BMW X5, стоя в кирзачах, с которых стекает коровий навоз.

MVC - это давно антипаттерн.

Если откуда и можно робко растопырку делать, так это с MVVM (Model View ViewModel), пока тебе не прищимят детские твои пальчики в дверь MMV (Multiuse Model View)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547912
RESEARCH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторОни -- ни для чего, они -- просто варианты реализации. Но многим понравилось так писать программы/базы данных -- и это получило распространение.
Другие люди, тоже "просто так" придумали, например, логическое программирование, аспектное программирование -- но оно "не покатило", и большой популярностью не пользуется.

это не так.. ООП это естественная оптимальная модель представления сущностей выстраданая сотнями тысяч программистов за десятки лет. Естественно в неуправляемом коде объектная модель снижает производительность, в неуправляемом сказать сложно по идее тоже должна снижать. Чтобы точно ответить на этот вопрос надо написать две программы на С# с одинаковым функционалом и сравнить производительность.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547915
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RESEARCHэто не так.. ООП это естественная оптимальная модель представления сущностей выстраданая сотнями тысяч программистов за десятки лет

Полный bullshit, доказано сотнями тысяч программистов на PL/SQL, PHP, Cobol, ABAP4, где ООП и даром не впился.

OOP- это лишь хороший способ закомпостировать мозг начинающим и глупым кодерам, а на самом деле он нигде не нужен - ни в системном, ни в прикладном коде. Это лишь способ писать многабукав и знать кучу малоосмысленных абстракций.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547918
RESEARCH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ты можешь спаять компьютер на коленках и разложить платы и провода по полу. А можешь инкапсулировать его в корпус, сделать интерфейсы и продавать лохам как эппл. Накладные расходы на сборку конечно есть но эстетично удобно и пипл хавает.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547920
RESEARCH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и обрати внимание модульность используется во всей технике, даже в тачке ты будешь менять генератор целиком а не развинчивать его (хотя я конечно лучше развинчу)

это естественная математическая модель развития любой техники. Лучше ли работают модульные устройства ? вопрос... удобнее ли собирать на них изделия - удобнее
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547921
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RESEARCHи обрати внимание модульность используется во всей технике, даже в тачке ты будешь менять генератор целиком а не развинчивать его (хотя я конечно лучше развинчу)

это естественная математическая модель развития любой техники. Лучше ли работают модульные устройства ? вопрос... удобнее ли собирать на них изделия - удобнее


Ты хочешь сказать что в PL/SQL, ABAP4, Cobol, PHP нет модулей? Лолшто?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547922
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RESEARCHи обрати внимание модульность используется во всей технике, даже в тачке ты будешь менять генератор целиком а не развинчивать его (хотя я конечно лучше развинчу)

это естественная математическая модель развития любой техники. Лучше ли работают модульные устройства ? вопрос... удобнее ли собирать на них изделия - удобнееЕсли следовать твоей логике, то надо переходить на функциональные языки. Модульные устройства к ООП отношения не имеют.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547927
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смежном топике еще один пострадавший от MVC .
Убил-бы этих преподавателей. Неужели других тем нету.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547970
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed...

Это что, чей-то новый проект ?
Бодренько строчит...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547973
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Базист залогонился.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547975
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диванно-Ориентированнй Анализ итт
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547995
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрТак всё же, может ли использование MVC шаблона в моих приложениях дать мне что-то, кроме понятной и удобной структуры проектов?
Нет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547996
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedА еще можно тут пообтекать: http://www.dreamsongs.com/Files/ObjectsHaveFailed.pdf

Это трудно понять программистам, ежедневно учавствующих в паралимпиаде по программированию (Java, C#, VB, PHP), но есть такая военная тайна - ООП в языке, как таковой, вообще не нужен, пример GTK+ это только подтверждает.
Объекты моделируют реальный мир, который тоже можно свести к объектам и их свойствам. ООП - это просто ещё один способ смоделировать мир. Где-то он нужен, а где-то - не нужен. Когда говорят "не нужен" в смысле "вообще" - это странно. Не иначе, кто-то открыл палочку-выручалочку на все случаи жизни. Очевидно, у этого кого-то также есть опыт работы с этой палочкой во всех случаях жизни, чтобы его утверждения не выглядели голословно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38547998
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedmaytonПример с ядром ОС показателен. И GNOME/GTK здесь уже выглядят как слабый довесочек

Нет, не слабый, а фундаментальный. Существует миф, хорошо навеянный Delphi и его подобиями, что графический интерфейс программы без OOP ну никак не построить, ибо это так логично - Кнопка - это класс, частный случай класса Окно и понеслась.

А пример GTK как раз и разбивает этот миф, никакого OOP с наследованиями даже для UI не нужно - все можно превратить просто в серию вызовов процедур, передавая хендл аки this только там где нужно.

Тут больше вопрос в необходимости принудительного наследования и полиморфизма, как решения для всех задач.
Подход с классами и наследованием очень распространён в классификации вообще. Я думаю, создатели ООП на классификационный подход и опирались. Например, биологическая систематика . Не понимаю, как бы вы это без ООП запрограммировали, тогда как с ООП всё идёт как по родному - потому что это и есть родное. Тут вам либо извращиться с функциональщиной надо, либо с процедурщиной, либо громко заявить, что ваша биологическая систематика говно, и вы можете предложить подход в биологии лучше - на основе функциональщины и процедурщины.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548000
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedWhite Owlпропущено...
Еще? Ну пальцы сможешь растопырить с чувством полного права на то.

Смешные вы. Попытка растопырки на MVC выглядит так-же смешно, как распальцовка на фоне BMW X5, стоя в кирзачах, с которых стекает коровий навоз.

MVC - это давно антипаттерн.

Если откуда и можно робко растопырку делать, так это с MVVM (Model View ViewModel), пока тебе не прищимят детские твои пальчики в дверь MMV (Multiuse Model View)
Не знаю, как где, а мне с самого начала казалось, что MVC в ASP.NET MVC как-то не очень выглядит. И вот это требование "контроллеры должны быть худыми и лёгкими". Зачем нужен вообще этот контроллер, функциональность которого так трудно объяснить новичкам и которая теряется между моделью и представлением? Если сравнивать с MVVM, то функциональность контроллера лежит где-то на уровне байндингов между VM и V и темплит селекторов в V. Т. е. контроллер в MVC не является такой же полноценной и полнофункциональной сущностью в этот паттерне, как модель или представление.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548005
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedА еще можно тут пообтекать: http://www.dreamsongs.com/Files/ObjectsHaveFailed.pdf

Это трудно понять программистам, ежедневно учавствующих в паралимпиаде по программированию (Java, C#, VB, PHP), но есть такая военная тайна - ООП в языке, как таковой, вообще не нужен, пример GTK+ это только подтверждает.
Это трудно понять ненавистникам ООП, но PDF как таковой вообще не нужен. Пример - эта книга. Картинок функциональных нет (одни художественные) или их легко можно заменить текстовым описанием, формул нет, даже примеров кода с подстветкой синтаксиса - и тех нет. Всё легко бы уместилось в текстовый файл. Но нет, блин, выложат своё сраное PDF, свёрстанное под формат А4, которое даже на планшете плохо читается из-за размера букв, не обладает возможностью автоформатирования с переносом при изменении размера страницы и имеет ещё сто один недостаток. Почему не в TXT или хотя бы HTML, которые автоформатируются любыми браузерами и текстовыми редакторами-читалками книг? Почему в сраном формате, который можно нормально читать только на большом мониторе, но нельзя на планшете, смартфоне, электронной книге?

С ПДФом бы сначала разобрались, а потом ООП ругать лезли.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548006
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320С ПДФом бы сначала разобрались, а потом ООП ругать лезли.
А то даже донести свои идеи в нормальном виде не можете.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548037
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320С ПДФом бы сначала разобрались, а потом ООП ругать лезли.

Ну и зачем ты ото все четырьмя постами понаписал? Решил рассказать, что у тебя проблемы даже с пониманием классификации и биологии? Ну ок, мы тебя услышали.

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

Так доходчивее?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548065
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedТ.е. можно писать ПО вообще без поддержки ООП в ЯП. При этом вопросы модульности, классификации, инкапсуляции и т.п. - вообще не пострадают.спагетти - это ведь так вкусно, а простынёй и накрыться можно, в тяжёлые времена
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548074
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychsocimedТ.е. можно писать ПО вообще без поддержки ООП в ЯП. При этом вопросы модульности, классификации, инкапсуляции и т.п. - вообще не пострадают.спагетти - это ведь так вкусно, а простынёй и накрыться можно, в тяжёлые времена

О чем ты, болезный?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548090
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёри ожидали ровно противоположного ответа (что производительность возростает при использовании объектов)
Производительность чего?
Производительность работы обычно действительно возрастает.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548099
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ наше понимание virtual callback если брать за основу С++-ное по отношению к Java
будет скорее всего ошибочным. Т.е. ООП в Java не равно ООП в С++.
http://bbs.vbstreets.ru/viewtopic.php?t=11876 Я пошёл к преподу выяснять, как быть - получается, уже для 1000 потребуется месяц вычислений, а то и больше. И он мне показал свою прогу на JS для решения этой же задачи. Мои результаты до 250 она получает за несколько минут, за 20 часов - примерно до 400, а за пару суток - до 600. Естественно, у него там более хитроумный алгоритм, выгода от которого в тысячи раз превышает разницу в быстродействии языков.
Отсюда вывод: язык - ерунда, главное - руки. На любом языке можно написать безобразно медленную программу, если руки кривые (как у меня ;-)) И напротив, с прямыми руками можно написать быструю программу на любом языке.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548190
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedИ да, еще раз. ООП в языке - вообще не нужен. Т.е. можно писать ПО вообще без поддержки ООП в ЯП. При этом вопросы модульности, классификации, инкапсуляции и т.п. - вообще не пострадают.

Так доходчивее?

Вы имеете ввиду какой-то язык с развитыми возможностями метапрограммирования?

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

Посмотреть как работает
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
# Печатаем список в виде html
def html_list(list):
    print "<ol>"
    for x in list:
        print "<li>"+str(x)+"</li>"    
    print "</ol>"  
#итератор целых чисел от 1 до 10
html_list(xrange(11))
#строка - это тоже список
html_list("test")
# итератор - список квадратов
html_list(x*x for x in xrange(11))
# список методов, которые можно применять к строке
html_list(dir("1"))
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548195
Фотография Zukora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все, что выше машинных кодов - сделано для человека, что-бы он мог программировать быстрее, удобней, в приемлемых для себя понятиях. Даже С может скомпилировать код, который теоретически можно улучшить с точки зрения процессора. Тем не менее, мы миримся с такой потерей производительности ибо иначе... писать будет практически некому. ООП другая крайность, и, в общем случае, он не может быть быстрее языков низкого уровня, но мы будем дальше писать в ООП все не критические к скорости программы. Потому что это быстро и удобно, а чаще всего и единственно приемлемо.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548206
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedИ да, еще раз. ООП в языке - вообще не нужен. Т.е. можно писать ПО вообще без поддержки ООП в ЯП. При этом вопросы модульности, классификации, инкапсуляции и т.п. - вообще не пострадают.

Так доходчивее?

Вы имеете ввиду какой-то язык с развитыми возможностями метапрограммирования?
Обычный С вполне развит в плане метапрограммирования. Кури X-Macros и M4


F#Давайте возьмем в качестве примера простенькую програмку на питоне и посмотрим как она будет выглядеть на вашем любимоя языке:

Посмотреть как работает
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
# Печатаем список в виде html
def html_list(list):
    print "<ol>"
    for x in list:
        print "<li>"+str(x)+"</li>"    
    print "</ol>"  
#итератор целых чисел от 1 до 10
html_list(xrange(11))
#строка - это тоже список
html_list("test")
# итератор - список квадратов
html_list(x*x for x in xrange(11))
# список методов, которые можно применять к строке
html_list(dir("1"))



Код: plaintext
1.
2.
3.
4.
5.
6.
void html_prn(list_p list) {
    print("<ol>");
    FOR_ALL(item, list) 
       print("<li>", item->text, "</li>")
    print("</ol>");
}



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

При этом в C ты можешь сам сочинять какой угодно себе язык за счет только макросов, а в питонах ты должен ходить только строем, как автором этого языка показалось правильным (хотя в 95% случаях это вообще не верно).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548236
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedОстальное писать лениво

Вам лениво писать три строчки, или это займет больше трех строчек?

ибо у тебя там задачи откровенно идиотские

Это не задачи а демонстрационный пример. (Ради забавы проигнорируем хамство ;))
И это не список - это абстракция.

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

Если это код маленький почему б его не написать? Зачем писать все эти слова?

При этом в C ты можешь сам сочинять какой угодно себе язык за счет только макросов, а в питонах ты должен ходить только строем, как автором этого языка показалось правильным (хотя в 95% случаях это вообще не верно).

:) Я знаю правило Гринспуна. Только для сравнения посмотрите на макросы в LISP и Nemerle (чтобы знать, что такое "какой угодно язык")

Какой тип у list_p как подменить реализацию итерации по list_p? Это может быть бесконечный список?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548253
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedО чем ты, болезный?товарищ то у нас теоретик, со сленгом не знаком, ты уверен, что ты программист?
socimedОстальное писать ленивовот и всем остальным лениво, поэтому они более подходящие языки и пишут там мало, но красиво, а С используют, если уж деваться некуда и надо таки ускорять.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548314
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Програмёри ожидали ровно противоположного ответа (что производительность возростает при использовании объектов)
Производительность чего?
Производительность работы обычно действительно возрастает.

имелось ввиду производительность кода :). Производительность работы разумеется возрастает. Мне сейчас вообще сложно например писать без использования ООП, на столько я к нему привык. Это удобно и понятно (с теми, кто говорит что это глупость и вообще не нужно, не согласен... но вот то, что ООП позволяет сделать то, что было бы не возможным без использования оного - считаю бредом) :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548354
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedОстальное писать лениво

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

Так понятнее?

F#ибо у тебя там задачи откровенно идиотские

Это не задачи а демонстрационный пример. (Ради забавы проигнорируем хамство ;))
И это не список - это абстракция.
Это не уменьшает их идиотичность и оторванность от жизненных реалий.

F#но обычный код будет выглядеть точно так-же - все излишнее скрывается функциями и макросами, как обычно.
Если это код маленький почему б его не написать? Зачем писать все эти слова?
Потому что C - это макро ассемблер. Если тебе не хватает языковых средств - их всегда можно дописать самому.
Но примеры твои выше меня не убедили, что мне нужен итератор по спискам корней, ну вот ни разу.

F#Какой тип у list_p
pointer на структуру

F#как подменить реализацию итерации по list_p?
Ну и зачем это делать? Чем тебя обычный for(i=0;i<size;i++), обернутый в макрос FOR_ALL не устраивает?

F#Это может быть бесконечный список?
Какой еще бесконечный список? Грибы поменьше ешь поутру.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548364
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрAlibek B.пропущено...

Производительность чего?
Производительность работы обычно действительно возрастает.

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

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

Програмёр Мне сейчас вообще сложно например писать без использования ООП, на столько я к нему привык. Это удобно и понятно (с теми, кто говорит что это глупость и вообще не нужно, не согласен...
Ты не согласен? А тебе есть с чем сравнивать? Тыж не знаешь ничего, кроме своего ООП.


Програмёр но вот то, что ООП позволяет сделать то, что было бы не возможным без использования оного - считаю бредом) :)
Ну хоть тут просветвление.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548429
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedКод займет такое-же количество строк. Просто мне придется изобрести или библиотечную функцию, или библиотечный макрос.


Я вам подскажу - либо вы не считаете макросы кодом, либо кода будет больше. Вы уже написали больше строк текста объясняя почему их не надо писать.


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


Думаю, человек с развитым абстрактным мышлением смог бы заменить одно преобразование на другое, встречающееся в его практике :)

F#Если тебе не хватает языковых средств - их всегда можно дописать самому.


Зачем писать свой язык поверх существующего, когда есть готовый.

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


Типа зелен виноград :).

Ну и зачем это делать? Чем тебя обычный for(i=0;i<size;i++), обернутый в макрос FOR_ALL не устраивает?


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

Какой еще бесконечный список?

Список, например, всех целых чисел (лениво вычисляемый, разумеется).

Грибы поменьше ешь поутру.

Спасибо, я получил представление о вашем кругозоре и манере вести беседу. Если это не просто форумная маска для развлечения, советую немного сменить взгляд на мир. Если вы смените стиль общения можно продолжить беседу.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548436
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПрограмёрпропущено...


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

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

Програмёр Мне сейчас вообще сложно например писать без использования ООП, на столько я к нему привык. Это удобно и понятно (с теми, кто говорит что это глупость и вообще не нужно, не согласен...
Ты не согласен? А тебе есть с чем сравнивать? Тыж не знаешь ничего, кроме своего ООП.


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

Тут не просветление :) Тема то началась именно с этого... что от меня потребовали кроме довода, что в ООП писать удобнее, ещё и то, что... сам не знаю что ))) В общем что его придумывали для другого (с намёком на производительность кода и возможно что-то ещё).

Кроме ООП. Я учился писать на паскале... Потом перешёл на дэлфи (ну это так... ещё когда программирование для меня было обычным хобби). Потом подался в вэб (уже как работник) и первую свою cms разрабатывал в процедурном стиле (без объектов)... Потом мне это надоело, так как код становился просто лапшой, и я перевёл всё в классы и объекты, уменьшив количество кода в разы. Соответственно продолжил дорабатывать эту CMS и писать на ней сайты. Потом я понял, что код в перемешку с дизайном - это дурной тон, и отлаживать такой код просто ад. Потому начал отделять вёрстку от логики, но из-за нежелания подвязываться под чужие "прихоти", я не стал юзать чей-то шаблонизатор, а за денёк создал свой простой, со всем, что мне требовалось для работы. Также и с запросами.. мне не нравилось, что они крутятся прямо в логике... и я решил создать отдельный класс для работы с базами, со всеми требуемыми мне методами (функционал был конечно сильно урезан, но при программировании обычного сайта много не требуется).

А потом я услышал об Yii :) И был сильно удивлён, что я дошёл до той же организации структуры без сторонней помощи. То есть для меня такая структура оказалась самой удобной (ведь именно к ней мой опыт меня и подводил).

Так что да... у меня есть с чем сравнивать (в плане ООП). Вот насчёт паттернов программирования, тут да... MVVM и другие описанные в данной ветке для меня являются новыми, и я с ними ранее не сталкивался. Однако же, могу сказать что MVC намного удобнее обычной лапши кода... Но не спорю, что могут быть шаблоны намного удобнее.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548482
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

Попросите модераторов прибить Ваш последний пост. Иначе, никто и никогда Вас на работу не возьмёт. :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548493
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedКакой еще бесконечный список?
Список, например, всех целых чисел (лениво вычисляемый, разумеется).

Для полноты картины добавлю примеры: раз и два .
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548494
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёр,

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

Вот, поглядите , какое поколение подрастает - из раздела "а вы знаете, чем сейчас занимается ваш ребёнок?". Топикстартер, я думаю, вы им не конкурент. В смысле, что их возьмут на работу, а вас - нет. И лучше вам самим разобраться, радоваться этому или печалиться.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548500
novexelf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548507
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
novexelfПара историй:

http://ithappens.ru/story/5979
http://ithappens.ru/story/8584
какие-то маргинальные высеры
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548560
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinF#пропущено...

Список, например, всех целых чисел (лениво вычисляемый, разумеется).

Для полноты картины добавлю примеры: раз и два .

Infinite Lists[1..]

Знатный brainfuck и черезжопий. За такое нужно вообще лишать лицензии программиста.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548590
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedКод займет такое-же количество строк. Просто мне придется изобрести или библиотечную функцию, или библиотечный макрос.


Я вам подскажу - либо вы не считаете макросы кодом, либо кода будет больше. Вы уже написали больше строк текста объясняя почему их не надо писать.

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

ObjectiveC был создан как макрорасширение ANSI C. Вот так и тут. Про базы данных отдельно, про библиотеки - отдельно.

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

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


Думаю, человек с развитым абстрактным мышлением смог бы заменить одно преобразование на другое, встречающееся в его практике :)


Бредогенератор можно разогнать на абстракциях вплоть до релятивистких скоростей, и вывалить тонны очень нужных конструкций, без которых нельзя жить (так работают авторы хаскеля и 105% всех функциональных ЯП).

Что не уменьшает накала идиотии на выходе в целом и в примерах применения в частности.

Потому и нужны конкретные примеры реального мира, чисто чтоб оценить адекватность автора этому самому реальному миру.


F#F#Если тебе не хватает языковых средств - их всегда можно дописать самому.


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


F#Ну и зачем это делать? Чем тебя обычный for(i=0;i<size;i++), обернутый в макрос FOR_ALL не устраивает?


Тем что придется тупо копипастить код для всех типов, которые можно перечислять, вместо того, чтобы просто сказать "для всех".
Мне кажется, вы не вполне представляете себе какие идеи лежат в основе ООП и почему они ценны.
Выключи ослоумие, и прочитай еще раз про макросы. Они изначально типонезависимы.


F#Спасибо, я получил представление о вашем кругозоре и манере вести беседу. Если это не просто форумная маска для развлечения, советую немного сменить взгляд на мир. Если вы смените стиль общения можно продолжить беседу.
И что с того?

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

Лично мне это мало интересно, подобные задачи я не решаю и не собираюсь решать. А так да, кто-то в этом мире решает задачи кривизны топологического пространства функтора комплексного переменного в частных производных. И что?

С проекции моих задач это все - абсолютно бесполезный и бессмысленный бред. Хотя если они на своих функторах понапишут что-то чуть менее коммерчески успешное, чем какой вконтактик - мы конечно почитаем, что они там ото понаписали.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548598
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБазист залогонился.

А он как ваще?
Матёрый?
Топик уже закрывать можно ?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548607
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нет не надо. Топик интересный.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548647
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПрограмёр,

Попросите модераторов прибить Ваш последний пост. Иначе, никто и никогда Вас на работу не возьмёт. :)

А что в моём посте не так? :)

user7320А автор тут нюни распускает, что какие-то придурки его не взяли

Это не нюни ))) первый пост был написан ещё в состоянии злости (там же описано почему). А вообще тема создавалась для обсуждения того вопроса, который в принципе и обсуждается (теперь уже конечно среди прочих )
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548682
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правило бывает 2 типа собеседования - на которых выясняют подходит ли кандидат по человеческим и деловым качествам, и на которых ЧСВшный му**к собеседующий "всегда прав", даже если несет херню. Собеседующие сами часто профаны в тех вопросах, на которых делают акцент. Например у меня из последних 3-4 были разные мнения на вопрос "чем плох синглтон", на каждом следующем я повторял "правильный" ответ с предыдущего, и как-то не очень угадывал.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548687
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дак чем-же плох синглетон?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548690
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

да хз, я как-то вообще в жизни не применял синглтон, если честно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548701
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДак чем-же плох синглетон?
Не могли придумать более выговариваемое слово для обозначения ..йни. Вот этим и плох. Если бы ..йня называлась так же просто, как "Гугл", или "Эппл", всё было бы куда проще и понятнее.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548703
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну "одиночка". Нормально?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548706
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНу "одиночка". Нормально?
Звучит как-то депрессивно и меланхолично. По этому поводу предлагаю взорвать пакет с ручкой . Восторг и восторг от ожидания восторга гарантированы.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548714
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedНет, я не считаю библиотечные макросы прикладным кодом.


Пусть он не прикладной, но его придется писать. Именно поэтому, вы предпочитаете писать в этой ветке текст вместо кода :)

ObjectiveC был создан как макрорасширение ANSI C. Вот так и тут. Про базы данных отдельно, про библиотеки - отдельно.


Ага только, насколько я понял, там свой отдельный препроцессор для C а не макросы на стандартном препроцессоре - так?

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


Вы их не пишете в этой ветке именно потому, что они считаются (так как требуют времени для написания).

Бредогенератор можно разогнать на абстракциях вплоть до релятивистких скоростей, и вывалить тонны очень нужных конструкций, без которых нельзя жить (так работают авторы хаскеля и 105% всех функциональных ЯП).


Жить можно даже в пещере - языки программирования - они про абстракции как раз.

Потому и нужны конкретные примеры реального мира, чисто чтоб оценить адекватность автора этому самому реальному миру.


Ок. Если вы смените тон, можно поискать примерчик в конкретном проекте.

Потому что готовый - говно, и написан какими-то ослами, понятия не имеющим о моих задачах.


:) Тогда надо в первую очередь выбросить C :)


Выключи ослоумие, и прочитай еще раз про макросы. Они изначально типонезависимы.

Приведите код макроса FOREACH так чтобы он был типонезависим.

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

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


Ваши посты содержат оценки моих примеров, а не просьбы о других.

Лично мне это мало интересно, подобные задачи я не решаю и не собираюсь решать. А так да, кто-то в этом мире решает задачи кривизны топологического пространства функтора комплексного переменного в частных производных. И что?


Это просто способ обобщать код. Если вы не будете их решать, у вас будет дублирование со всеми вытекающими. Чтобы обобщать код, надо уметь мыслить абстрактно.

Вы, кстати, сами ваш тон нормальным? А то я могу тоже попробовать в вашем стиле - не обидитесь?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548808
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поучаствую.

socimedЕсли бы это было так, то ядра операционных систем и баз данных писали бы на C++, а не на C. А то и вовсе на Java или C#.
Покормлю жирненького: OS Singularity - написана на C# (Sing#), по многим параметрам производительности рвёт другие ОС как тузик грелку.


socimedЛинус начал пилить линукс когда C++ уже вовсю был. Аналогично с ядром NT, ядром Mach, ядром Darwin и т.д. Никто не использовал C++.
Понимаешь, каждый пишет на том языке, который лучше знает. Линус не знает кресты, поэтому на них не пишет. Если бы знал их, но не знал Си - писал бы на них.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548809
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Пусть он не прикладной, но его придется писать. Именно поэтому, вы предпочитаете писать в этой ветке текст вместо кода :)
И что с того? На производстве есть понятие механический цех, занимается изготовлением оснастки к станкам.
Если нет стандартного станка для производства деталей - берут готовый, дорабатывают до нужных техопераций.
Так и тут.

В какой безумной галактике сказано, что ты должен использовать только то, что тебе готовое дали?


F#Ага только, насколько я понял, там свой отдельный препроцессор для C а не макросы на стандартном препроцессоре - так?
И что с того? Сам С - это ассемблер. А транслировать в него ты можешь из чего угодно - хоть стандартным препроцессором, хоть m4 расширениями. Не вижу никаких трудностей тут.

F#Бредогенератор можно разогнать на абстракциях вплоть до релятивистких скоростей, и вывалить тонны очень нужных конструкций, без которых нельзя жить (так работают авторы хаскеля и 105% всех функциональных ЯП).

Жить можно даже в пещере - языки программирования - они про абстракции как раз.

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

Странно, что ты этого в упор не видишь. Несоотвествие инструмента задаче.

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

F#Ок. Если вы смените тон, можно поискать примерчик в конкретном проекте.
Можешь не искать, гугление не интересно. Если тебе сказать нечего - то тебе изначально нечего было говорить, а судорожные поиски с целью сохранить лицо - кому они нужны?

F#Потому что готовый - говно, и написан какими-то ослами, понятия не имеющим о моих задачах.


:) Тогда надо в первую очередь выбросить C :)
Еще раз для тех, кто на бронепоезде. С - это лишь кроссплатформенный макроассемблер.
Никогда не думал, что можно СВОЙ высокоуровневый ЯП транслировать в С, а потом уже этот на 100% нагенерированный на С код - компилировать? А так оказывается можно!


F#Выключи ослоумие, и прочитай еще раз про макросы. Они изначально типонезависимы.

Приведите код макроса FOREACH так чтобы он был типонезависим.
Пожалуйста. Вот тебе итератов для индексов и для отдельных элементов в коллекции (массиве). В чем вопрос-то?
Тип элемента в коллекции-массиве неизвестен, Plain C

Код: plaintext
1.
2.
#define UFOR_EACH(var, list) for (var = 0;           var < list->size;               var++)
#define UFOR_ALL(var, list)  for (var = list->items; var < list->items + list->size; var++)



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

На кой мне перечислять эти твои перечисления и получать текстовые значения?

ЗАЧЕМ?

F#Вы, кстати, сами ваш тон нормальным? А то я могу тоже попробовать в вашем стиле - не обидитесь?
Мне плевать на тон, если есть смысл.

А ты смысла пока не предоставил ни на йоту, зато говоришь крайне глупыми шаблонами вида:

"Мне нужно типонезависимое обобщенное программирование"
"Мне нужно в итераторе перечистить ENUM и вывести значения через reflection"

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

А что такое задача?

Задача - это к примеру "разбить текст, представленный как массив байт, представляющий строку UTF-8 на массив составляющих слов, с учетом многобайтовых символов пунктуации", "выделить из слов лексемы и термы", "посчитать BF25 от переданной строки поиска".

И вот когда ты покажешь, как красиво можно выполнить эту задачу - порезать строку на слова, вот тогда и поговорим о мощах и языках (справочно - у меня на С это всё делается одной функцией, два параметра, а ты можешь так?)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548828
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalvikПоучаствую.

socimedЕсли бы это было так, то ядра операционных систем и баз данных писали бы на C++, а не на C. А то и вовсе на Java или C#.
Покормлю жирненького: OS Singularity - написана на C# (Sing#), по многим параметрам производительности рвёт другие ОС как тузик грелку.
Этот проект закрыт давно как эпически провальный на техническом уровне (торпозит и глючит), иди покорми детей конфетами. Или пусть они тебя покормят, говорят сахар стимулирует мышление.


petalviksocimedЛинус начал пилить линукс когда C++ уже вовсю был. Аналогично с ядром NT, ядром Mach, ядром Darwin и т.д. Никто не использовал C++.
Понимаешь, каждый пишет на том языке, который лучше знает. Линус не знает кресты, поэтому на них не пишет. Если бы знал их, но не знал Си - писал бы на них.
О, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста.

Ну да ладно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548831
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... кроме того что семантика работы с синглтоном иногда не позволяет
распознать его, особенно если нет сорсов или работаем через
удалённые интерфейсы. В Scala есть ключевое слово для обозначение одиночек,
в Java - нету. ООП-фан-сектор предлагает создавать громкие и значимые
названия методов инстанциирования типа createInstance () или getInstance ()
и запрещать явный конструктор. Но кроме этого больше нет никаких
признаков того что мы получили одиночку.

Тоесть глядя на код фиг поймешь получен объект или пула или из фабрики
или тебе подсунули "единоличника" и эгоиста.

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

Ну и глобальность до кучи... побочные эффекты и блокировки.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548860
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedpetalvik
Понимаешь, каждый пишет на том языке, который лучше знает. Линус не знает кресты, поэтому на них не пишет. Если бы знал их, но не знал Си - писал бы на них.
О, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста.

Ну да ладно.
Не пытайтесь нас запутать!
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548891
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТоесть глядя на код фиг поймешь получен объект или пула или из фабрики
или тебе подсунули "единоличника" и эгоиста.
Как мне кажется, это и есть реальный ъ-ООП (т.е. клиентскому коду неизвестно, что там за объект, независимо от того как он это получил). Но у джавистов обычно под синглтоном понимается statefull объект, получаемый от класса методом getInstance() (уж не знаю откуда ноги у этой школы растут, меня учили в университете смолтоку, и там можно просто переопределить метод new, например, поэтому необходимость контракта добычи объекта через newInstance() вызывала когнитивный диссонанс). А так вообще, слабо прадставляется архитектурная необходимость таких объектов, и скорее всего они создаются от безысходности и лени/неумения построить контекст приложения ( тащить его через конструкторы, инжектить там как нибудь или т.п., кому что нравится ).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548922
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманmaytonТоесть глядя на код фиг поймешь получен объект или пула или из фабрики
или тебе подсунули "единоличника" и эгоиста.
Как мне кажется, это и есть реальный ъ-ООП (т.е. клиентскому коду неизвестно, что там за объект, независимо от того как он это получил). Но у джавистов обычно под синглтоном понимается statefull объект, получаемый от класса методом getInstance() (уж не знаю откуда ноги у этой школы растут, меня учили в университете смолтоку, и там можно просто переопределить метод new, например, поэтому необходимость контракта добычи объекта через newInstance() вызывала когнитивный диссонанс). А так вообще, слабо прадставляется архитектурная необходимость таких объектов, и скорее всего они создаются от безысходности и лени/неумения построить контекст приложения ( тащить его через конструкторы, инжектить там как нибудь или т.п., кому что нравится ).
"Тащить через конструкторы" - это вот . В примере кода, который там можно скачать вначале статьи, автор создаёт репозиторий на заказчика (CustomerRepository) при старте приложения, потом передаёт этот репозиторий в конструктор главного окна, окно - в конструктор рабочей области, рабочая область - в конструктор представления заказчика. И это ещё не полностью по фен-шую. По фен-шую с репой должна работать модель. Поэтому надо ещё из модели представления в модель передать всё... А что мешает сделать репу статичным типом - синглетоном?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548934
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

А если две репы надо синхронизировать друг с другом? Куда их делать синглтоном?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548950
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманmaytonТоесть глядя на код фиг поймешь получен объект или пула или из фабрики
или тебе подсунули "единоличника" и эгоиста.
Как мне кажется, это и есть реальный ъ-ООП (т.е. клиентскому коду неизвестно, что там за объект, независимо от того как он это получил). Но у джавистов обычно под синглтоном понимается statefull объект, получаемый от класса методом getInstance() (уж не знаю откуда ноги у этой школы растут, меня учили в университете смолтоку, и там можно просто переопределить метод new, например, поэтому необходимость контракта добычи объекта через newInstance() вызывала когнитивный диссонанс). А так вообще, слабо прадставляется архитектурная необходимость таких объектов, и скорее всего они создаются от безысходности и лени/неумения построить контекст приложения ( тащить его через конструкторы, инжектить там как нибудь или т.п., кому что нравится ).
Это от отсуствия глобальных переменных.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548955
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманuser7320,

А если две репы надо синхронизировать друг с другом? Куда их делать синглтоном?
Я даже понятия не имею, о чём вы говорите. Это две разные репы, или два экземпляра одной и той же репы? О чём речь вообще?

В примере, что я привёл, делается один экзепляр репы при самом старте приложения, как если бы это был синглетон. Но передаётся всем вниз по иерархии через конструкторы. Но при этом ссылка-то передаётся на один и тот же экземпляр. В ЭТОМ случае-то почему бы не использовать синглетон?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548959
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Лагманuser7320,

А если две репы надо синхронизировать друг с другом? Куда их делать синглтоном?
Я даже понятия не имею, о чём вы говорите. Это две разные репы, или два экземпляра одной и той же репы? О чём речь вообще?

В примере, что я привёл, делается один экзепляр репы при самом старте приложения, как если бы это был синглетон. Но передаётся всем вниз по иерархии через конструкторы. Но при этом ссылка-то передаётся на один и тот же экземпляр. В ЭТОМ случае-то почему бы не использовать синглетон?
Т. е. вроде используется как синглетон, но при этом не статик. Почему?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548964
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

user7320В ЭТОМ случае
Если ваша задача сделать приложение, в котором никогда не нужно будет подключаться к двум "репам", то конечно можно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548974
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548990
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманВторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить.
Так репа разве не в отдельной сборке? Подменили сборку и всё. Можно даже, наверное, сделать настройку выбра сборки, считываемую из файла конфига прямо во время рантайма. Т. е. не надо будет даже перекомпилировать и перезапускать приложение.

Или я что-то не так понимаю?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38548993
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманВторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить.
java.lang.String тоже нельзя повторно унаследовать. Но он - не синглтон.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549007
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320ЛагманВторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить.
Так репа разве не в отдельной сборке? Подменили сборку и всё. Можно даже, наверное, сделать настройку выбра сборки, считываемую из файла конфига прямо во время рантайма. Т. е. не надо будет даже перекомпилировать и перезапускать приложение.

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

Да, осмелюсь предположить что не понимаете. Я вообще плохо умею объяснять.

maytonString тоже нельзя
Ну так стринг это и не БД, с ним проще )
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549008
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЭтот проект закрыт давно как эпически провальный на техническом уровне (торпозит и глючит)
Проект закрыт не по техническим причинам, а потому что ещё одна ось на данном этапе никому не нужна.

socimedО, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста.
Ага, значит о производительности ни слова? ;)

ЗЫ: и какое отношение высокоуровневые библиотеки имеют к написанию низкоуровневого кода?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549027
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petalviksocimedЭтот проект закрыт давно как эпически провальный на техническом уровне (торпозит и глючит)
Проект закрыт не по техническим причинам, а потому что ещё одна ось на данном этапе никому не нужна.
Ок, подождем следущего этапа, бугага.


petalviksocimedО, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста.
Ага, значит о производительности ни слова? ;)
И про это тоже он писал, читай усиленнее, слово effective.
http://article.gmane.org/gmane.comp.version-control.git/57918


petalvikЗЫ: и какое отношение высокоуровневые библиотеки имеют к написанию низкоуровневого кода?
О чем ты, болезный?

Код git (даже не ядра linux) - это недостаточно высокоуровнеый код?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549066
RESEARCH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПроизводительность чего?
Производительность работы обычно действительно возрастает.

производительность какой работы ? программиста или кода
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549097
RESEARCH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторИ напротив, с прямыми руками можно написать быструю программу на любом языке.

советую писать на ассемблере, хороший язык без изворотов. первые ядра вобще в кодах писали и ничего.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549291
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RESEARCHавторИ напротив, с прямыми руками можно написать быструю программу на любом языке.

советую писать на ассемблере, хороший язык без изворотов. первые ядра вобще в кодах писали и ничего.
Без изворотов, типов, циклов, всего десяток переменных (регистров) и GOTO (точнее JMP и J*) наше всё... Для критичных к производительности участков самый идеальный вариант, для остального - мазохизм.

PS Писал в студенчестве на АСМе для Z80. Жалко что соревнование за "тетрис в 1 кб" пропустил. Мечта идиота. До сих пор хочу попробовать написать, да все некогда.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549330
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TRESEARCHпропущено...


советую писать на ассемблере, хороший язык без изворотов. первые ядра вобще в кодах писали и ничего.
Без изворотов, типов, циклов, всего десяток переменных (регистров) и GOTO (точнее JMP и J*) наше всё... Для критичных к производительности участков самый идеальный вариант, для остального - мазохизм.

PS Писал в студенчестве на АСМе для Z80. Жалко что соревнование за "тетрис в 1 кб" пропустил. Мечта идиота. До сих пор хочу попробовать написать, да все некогда.
Типов нет, но вот насчёт "изворотов, циклов, переменных", эээ... не знаю как в Z80, но в x86 и PDP-11 всё это в ассемблере есть, тем более в макроассемблере,
кстати максимально просто и эффективно, по сравнению с ЯП высокого уровня со своими "тараканами".

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

ЗЫ оператор goto почему ещё не обсуждали? :)
на собеседованиях про него спрашивают или это считается дурным тоном? :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549345
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Z80 удобен тем что скорость выполнения каждой директивы можно посчитать до тактов.
Ни вам конвеера ни SIMD, ни оптимизаций переходов. Кстати этим пользовались для
генерации хитрых звуков типа Spech Synthez.

И я-бы щас уже выкинул дефолтную прошивку с бейсиком. Залил-бы что-то поинтереснее.
И графическая библиотека там была - отстой. Окружности рисовала параметрически.
И Пентагон 128 хотел. И чтоб со MIDI звуком. И чтоб 2 флопака. Хехе... Мечты.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549364
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsТипов нет, но вот насчёт "изворотов, циклов, переменных", эээ... не знаю как в Z80, но в x86 и PDP-11 всё это в ассемблере есть
На счет циклов несогласен. Сложно назвать циклом такую конструкцию
Код: sql
1.
2.
3.
4.
i = 100
1: что-то полезное считаем
i = i - 1
if i > 0 goto 1


я считаю это всегда называлось условным переходом. Хоть в Z80 хоть в x86. Хотя циклом тоже можно назвать если именно так написано, без наворотов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549370
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, собери два варианта. С "IF-GOTO" и "DO-WHILE"
и посмотри ассемблерный выхлоп.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549390
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsЗЫ оператор goto почему ещё не обсуждали? :)
на собеседованиях про него спрашивают или это считается дурным тоном? :)
Чего про него спрашивать? Его так активно хоронили что языков где он есть немного осталось.
maytonZ80 удобен тем что скорость выполнения каждой директивы можно посчитать до тактов.
Ни вам конвеера ни SIMD, ни оптимизаций переходов. Кстати этим пользовались для
генерации хитрых звуков типа Spech Synthez.
а еще был IBM PC XT, на нем игрушка Digger которая была точно рассчитана на его 12 МГц проца, и на 268 проце летала с бешеной скоростью ))).

Раз уж такая ностальгия началась, маленькая байка: Завалялся у меня ноут (Pentium M 1,6 ГГц, 512 Мб DDR1), чуть мощнее современного телефона. Стояла XP, тормозила, потестил Гугл хром 5 минут открывается, IE7 - 2 мин. (когда такое было). Хотел выкинуть, но экран отличный по сравнению с современными ширпотребовскими, да и клава не убита. Решил дать ему второй шанс, поставить линукс (помня те времена когда линукс на дискету 3,5" умещался) и хоть по инету лазить с него. Перепробовал несколько дистрибутивов, не встает - нет поддержки "pae" (зачем оно на 512 Мб памяти). Встал debian7 в итоге, там оказалось есть отдельное ядро i486. Поставил гугл хром, он грузится и работает, серфить по инету комфортно, правда flash-плеер тупит, грузит проц на 100%, во флэш игрушки играть разве что самые примитивные можно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549395
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TaswsТипов нет, но вот насчёт "изворотов, циклов, переменных", эээ... не знаю как в Z80, но в x86 и PDP-11 всё это в ассемблере есть
На счет циклов несогласен. Сложно назвать циклом такую конструкцию
Код: sql
1.
2.
3.
4.
i = 100
1: что-то полезное считаем
i = i - 1
if i > 0 goto 1


я считаю это всегда называлось условным переходом. Хоть в Z80 хоть в x86. Хотя циклом тоже можно назвать если именно так написано, без наворотов.например, x86 есть LOOP и его варианты, в PDP-11 есть SOB,
вместе с меткой они выглядят не хуже литералов начала-конца цикла в любом ЯП,
причём возможности управления и выхода из цикла неограничены, в отличие от ЯП высокого уровня.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549406
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T, собери два варианта. С "IF-GOTO" и "DO-WHILE"
и посмотри ассемблерный выхлоп.
Тестил на Си недавно
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
#include <stdio.h>
#include <windows.h>


#define TEST_COUNT 100000000

char* f1(char* s, char *t)
{
	while(*s++=*t++);
	return s;
}

char* f2(char* s, char *t)
{
	*s = *t;
	while (*s != 0)
	{
		s++;
		t++;
		*s = *t;
	};
	return s;
}

int main(int argc,char **argv){
	char* v = "1234567890";
	char buf[256];
	
	unsigned int i, iEnd1, iEnd2, iEnd3, iEnd4, iEnd5, iStart;
	iStart = GetTickCount();
	for(i = 1; i < TEST_COUNT; i++) f1(buf, v);
	iEnd1 = GetTickCount() - iStart;
	iStart = GetTickCount();
	for(i = 1; i < TEST_COUNT; i++) f2(buf, v);
	iEnd2 = GetTickCount() - iStart;
	iStart = GetTickCount();
	for(i = 1; i < TEST_COUNT; i++) strcpy(buf, v);
	iEnd3 = GetTickCount() - iStart;
	iStart = GetTickCount();
	i = TEST_COUNT;
	m10:
	strcpy(buf, v);
	i--;
	if(i > 0) goto m10;
	iEnd4 = GetTickCount() - iStart;
	iStart = GetTickCount();
	i = TEST_COUNT;
	do {
		strcpy(buf, v);
		i--;
	} while(i > 0);
	iEnd5 = GetTickCount() - iStart;
	printf("f1() %d ms  f2() %d ms  strcpy() = %d %d %d ms\n", iEnd1, iEnd2, iEnd3, iEnd4, iEnd5);
	return 0;
}

Релиз на асме
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
	iStart = GetTickCount();
00C81016  mov         ebp,dword ptr [__imp__GetTickCount@0 (0C82000h)] 
00C8101C  push        esi  
00C8101D  push        edi  
00C8101E  call        ebp  
00C81020  mov         esi,eax 
00C81022  mov         edx,5F5E0FFh 
	for(i = 1; i < TEST_COUNT; i++) f1(buf, v);
00C81027  xor         eax,eax 
00C81029  lea         esp,[esp] 
00C81030  mov         cl,byte ptr string "1234567890" (0C820F4h)[eax] 
00C81036  inc         eax  
00C81037  test        cl,cl 
00C81039  jne         main+30h (0C81030h) 
00C8103B  sub         edx,1 
00C8103E  jne         main+27h (0C81027h) 
	iEnd1 = GetTickCount() - iStart;
00C81040  call        ebp  
00C81042  sub         eax,esi 
00C81044  mov         dword ptr [esp+10h],eax 
	iStart = GetTickCount();
00C81048  call        ebp  
00C8104A  mov         esi,eax 
00C8104C  mov         ecx,5F5E0FFh 
00C81051  mov         dl,31h 
	for(i = 1; i < TEST_COUNT; i++) f2(buf, v);
00C81053  mov         byte ptr [esp+18h],dl 
00C81057  xor         eax,eax 
00C81059  lea         esp,[esp] 
00C81060  mov         bl,byte ptr [eax+0C820F5h] 
00C81066  inc         eax  
00C81067  test        bl,bl 
00C81069  jne         main+60h (0C81060h) 
00C8106B  sub         ecx,1 
00C8106E  jne         main+53h (0C81053h) 
	iEnd2 = GetTickCount() - iStart;
00C81070  call        ebp  
00C81072  sub         eax,esi 
00C81074  mov         dword ptr [esp+14h],eax 
	iStart = GetTickCount();
00C81078  call        ebp  
00C8107A  mov         esi,eax 
00C8107C  mov         edx,5F5E0FFh 
	for(i = 1; i < TEST_COUNT; i++) strcpy(buf, v);
00C81081  xor         eax,eax 
00C81083  mov         cl,byte ptr string "1234567890" (0C820F4h)[eax] 
00C81089  inc         eax  
00C8108A  test        cl,cl 
00C8108C  jne         main+83h (0C81083h) 
00C8108E  sub         edx,1 
00C81091  jne         main+81h (0C81081h) 
	iEnd3 = GetTickCount() - iStart;
00C81093  call        ebp  
00C81095  mov         ebx,eax 
00C81097  sub         ebx,esi 
	iStart = GetTickCount();
00C81099  call        ebp  
00C8109B  mov         edi,eax 
	i = TEST_COUNT;
00C8109D  mov         edx,5F5E100h 
	m10:
	strcpy(buf, v);
00C810A2  xor         eax,eax 
00C810A4  mov         cl,byte ptr string "1234567890" (0C820F4h)[eax] 
00C810AA  inc         eax  
00C810AB  test        cl,cl 
00C810AD  jne         m10+2 (0C810A4h) 
	i--;
00C810AF  sub         edx,1 
	if(i > 0) goto m10;
00C810B2  jne         m10 (0C810A2h) 
	iEnd4 = GetTickCount() - iStart;
00C810B4  call        ebp  
00C810B6  mov         esi,eax 
00C810B8  sub         esi,edi 
	iStart = GetTickCount();
00C810BA  call        ebp  
00C810BC  mov         edi,eax 
	i = TEST_COUNT;
00C810BE  mov         edx,5F5E100h 
	do {
		strcpy(buf, v);
00C810C3  xor         eax,eax 
00C810C5  mov         cl,byte ptr string "1234567890" (0C820F4h)[eax] 
00C810CB  inc         eax  
00C810CC  test        cl,cl 
00C810CE  jne         m10+23h (0C810C5h) 
		i--;
00C810D0  sub         edx,1 
	} while(i > 0);
00C810D3  jne         m10+21h (0C810C3h) 
	iEnd5 = GetTickCount() - iStart;
00C810D5  call        ebp  
	printf("f1() %d ms  f2() %d ms  strcpy() = %d %d %d ms\n", iEnd1, iEnd2, iEnd3, iEnd4, iEnd5);


Код на асме одинаковый для for, if goto и do while
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549412
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Везде jne.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549471
Фотография asws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В силу специфики ассемблера, в нём циклы, привычные в ЯП высокого уровня, бывают редко нужны, эффективные конструкции далеки от привычных представлений :))
Вот нарыл свой древнейший код для PDP-11 с претезией на оптимизацию по скорости-памяти :)) (вроде без опечаток, но не уверен...)
преобразования 16-разрядного числа в строку (в десятичное число). PDP-11 (зацените алгоритм).
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Вход: R0 - число 0-65535
      R1 - адрес для символьного представления десятичного числа (до 6 байт с нулевым)

Flag  - байт настройки выходной строки (0 - без незначащих нулей, 1 - с нулями, более 1 - замена ведущих нулей пробелами)
Array - служебный массив с числами - весами десятичных разрядов (в восьмеричном виде)

     CALL SAVREG       ; Сохранить регистры R0-R5
     MOV  #Array, R2   ; Адрес служебного массива
     CLR  R4
r01: MOV  #60,R5       ; Подготовить код символа "0"
     MOV  (R2)+,R3     ; Очередной служебный код из массива Array
r02: CMP  R3,R0
     BLOS g02          ; Если служ.код <= числа, то переход
     CMPB #1,Flag
     BEQ  g01          ; Если Flag==1 (вывод с незначащими нулями), то переход
     TST  R4
     BNE  g01          ; Если R4#0 (незначащие нули кончились), то переход
     TSTB Flag
     BEQ  r01          ; Если Flag==0 (отброс незначащих нулей), то переход
     MOVB #40,(R1)+    ; Иначе замена незначащих нулей пробелами
     BR   r01
g01: MOVB R5,(R1)+     ; Занесение очередной цифры-символа в строку
     BR   r01
g02: INC  R5           ; Формирование символьного кода цифры
     INC  R4           ; незначащие нули кончились (R4#0)
     SUB  R3,R0
     BNE  r02          ; Если число ещё не преобразовано (>0), то переход
     MOVB R5,(R1)+     ; Занесение последней цифры в строку
     MOVB #0,@R1       ; Строка оканчивается 0 байтом
     JMP LOAREG        ; Восстановление R5-R0 и возврат (выверт с использованием стека для макс.оптимизации)
Array: .WORD 23420,1750,144,12,1
Flag: .BYTE 0

...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549480
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asws,

Эх! PDP-11, говоришь. Вспоминаю молодость, я на ём программы для "Бурана" писал. Навигационные системы. Таки он приземлился.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549494
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedК примеру там где программист на C будет использовать обычный массив из структур - его коллега на C++ не дрогнув рукой заюзает
хешированную мапу на темплейтах

и выйграет в скорости hash table O(1) против array O(n)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549510
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsiksocimedК примеру там где программист на C будет использовать обычный массив из структур - его коллега на C++ не дрогнув рукой заюзает
хешированную мапу на темплейтах

и выйграет в скорости hash table O(1) против array O(n)

Нет, не выиграет. Потому что массив - это тоже O(1), только ему для доступа к элементу не надо хеш функцию считать, а можно ходить напрямую по указателю-индексу.

Смешной ты, Вася. Иди букварь учи.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549526
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsiksocimedК примеру там где программист на C будет использовать обычный массив из структур - его коллега на C++ не дрогнув рукой заюзает
хешированную мапу на темплейтах

и выйграет в скорости hash table O(1) против array O(n)

при поиске элемента по признаку можно организовать бинарный поиск и из O(n) превратить в O(log(n))... то есть проиграем в производительности в считанные разы (а учитывая что худший случай для хэш таблицы это O(n), а у нас O(log(n)) и есть худший случай, возможно и не проиграем), но выиграем в потреблении памяти (и в зависимости от хэш функции потребление может быть меньше от "в несколько раз" до "в несколько десятков раз") )) Достаточно просто добавить индексацию данному массиву.

P.S. Интересно, как те, кто пишут эти статьи рассчитывают значение "в среднем O(1)"... То есть бывает и меньше? ))) Это как? посчитав хэш функцию на половину, мы уже знаем где элемент? ))) тут стоит указать "чуть более чем O(1)", а не в среднем.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549697
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsiksocimedК примеру там где программист на C будет использовать обычный массив из структур - его коллега на C++ не дрогнув рукой заюзает
хешированную мапу на темплейтах

и выйграет в скорости hash table O(1) против array O(n)
не O(1), а O(log(n)), т.к. map бинарный поиск использует
http://www.cplusplus.com/reference/map/map/?kw=map Maps are typically implemented as binary search trees.

У мапа есть свои плюсы и надо их учитывать. Например надо иметь большой постоянно меняющийся массив всегда готовый к поиску. Недавно подобную проблему изучал . map оказался самым оптимальным вариантом.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549703
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aswsпричём возможности управления и выхода из цикла неограничены, в отличие от ЯП высокого уровня.
И какие ограничения по управлению и выходу из цикла в ЯП высокого уровня?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549704
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tне O(1), а O(log(n)), т.к. map бинарный поиск использует
Слово "хеш" ты пропустил?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549713
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k0rvinDima Tне O(1), а O(log(n)), т.к. map бинарный поиск использует
Слово "хеш" ты пропустил?
Речь была про map, а там нет слова "хеш".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549753
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tk0rvinпропущено...

Слово "хеш" ты пропустил?
Речь была про map, а там нет слова "хеш".

Девочки, не ссорьтесь, мы тут все теоретики и про unordered_map знаем только поди из википедии.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549786
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimed
В какой безумной галактике сказано, что ты должен использовать только то, что тебе готовое дали?


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

Ага только, насколько я понял, там свой отдельный препроцессор для C а не макросы на стандартном препроцессоре - так?
И что с того? Сам С - это ассемблер. А транслировать в него ты можешь из чего угодно - хоть стандартным препроцессором, хоть m4 расширениями. Не вижу никаких трудностей тут.


Тут никаких трудностей нет. Просто вы не додумали эту мысль дальше - тогда получается во-первых, С ч точки зрения выразительных средств ничем не лучше другого Тьюринг-полного языка. Во-вторых, с точки зрения опять таки выразительности, C убог так как не позволяет себя органично расширять. Тут еще подсказка: посмотрите н lisp и nemerle (хотя извините, вас гугление не интересует :))

F#О том и речь. Ты со своим хаскелем - чисто неандерталец - тебе кто-то дал мелкоскоп, а у тебя задач для этого мелкоскопа нет.
Зато обтесывание камней и разведение огней ты делаешь этим своим мелкоскопом с поздними вычислениями, вместо того, чтоб себе заточить инструмент типа Молоток и Зажигалка.


Я - то как раз не говорю что надо пользоваться только хаскелем (вы меня опять с кем-то путаете я тут про хаскель вообще не писал). Честно говоря мне трудно представить человека, который будет модифицировать молоток под себя (ну может, видел обмотанный изолентой). Я за то, чтобы сначала посмотреть на готовые молотки и дорабатывать только если есть необходимость?

Странно, что ты этого в упор не видишь. Несоотвествие инструмента задаче.


Вы про какую задачу и какой инструмент. И как вы точите молоток? (А особенно зажигалку)

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


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

Можешь не искать, гугление не интересно. Если тебе сказать нечего - то тебе изначально нечего было говорить, а судорожные поиски с целью сохранить лицо - кому они нужны?


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


Еще раз для тех, кто на бронепоезде.


Ты еще раз перечитай про что я написал - ты потерял нить. C тоже написан людьми понятия не имеющими о твоих задачах - выбрасываешь C и делаешь свой собственный с учетом твоих задач!

С - это лишь кроссплатформенный макроассемблер.
Никогда не думал, что можно СВОЙ высокоуровневый ЯП транслировать в С, а потом уже этот на 100% нагенерированный на С код - компилировать? А так оказывается можно!


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

Пожалуйста. Вот тебе итератов для индексов и для отдельных элементов в коллекции (массиве). В чем вопрос-то?
Тип элемента в коллекции-массиве неизвестен, Plain C

Код: plaintext
1.
2.
#define UFOR_EACH(var, list) for (var = 0;           var < list->size;               var++)
#define UFOR_ALL(var, list)  for (var = list->items; var < list->items + list->size; var++)




Поправьте меня если я не прав но:
1. Это не связанный список а непрерывный кусок памяти
2. Это подходит только для одного именно этого способа организации коллекции - со связанным списком или коллекцией например, которая в процессе выкачивания из файла это не проходит (соответственно, чтобы сказать "выведи мне на экран все строки из файла" при помощи этого макроса придется либо копировать оттуда все содержимое, либо создавать другой макрос).

Отдельно забавны названия - почему перечисление индексов связывается со словом EACH а перечисление содержимого ALL - это в C традиции такие? На codereview это у меня сразу вызвало бы вопрос.

Такое ощущение, что тебе очень трудно придумать сначала задачу


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

ЗАЧЕМ?


Если еще немного подумать над этим вопросом то же самое можно спросить и о ваших задачах.

Мне плевать на тон, если есть смысл.


Понеслася

А ты смысла пока не предоставил ни на йоту, зато говоришь крайне глупыми шаблонами вида:

"Мне нужно типонезависимое обобщенное программирование"
"Мне нужно в итераторе перечистить ENUM и вывести значения через reflection"


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

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


А что там непонятного.

Задача - это к примеру "разбить текст, представленный как массив байт, представляющий строку UTF-8 на массив составляющих слов, с учетом многобайтовых символов пунктуации",


Код: c#
1.
2.
3.
4.
        IEnumerable<String> getWords(byte[] input)
        {
            return Regex.Matches(Encoding.UTF8.GetString(input), @"\w+").Cast<Match>().Select(m => m.Value);
        }



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

"выделить из слов лексемы и термы",


Какая грамматика?


"посчитать BF25 от переданной строки поиска".


Можно ссылку, что такое BF25?

И вот когда ты покажешь, как красиво можно выполнить эту задачу - порезать строку на слова, вот тогда и поговорим о мощах и языках (справочно - у меня на С это всё делается одной функцией, два параметра, а ты можешь так?)

Покажете код?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549796
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ПрограмёрP.S. Интересно, как те, кто пишут эти статьи рассчитывают значение "в среднем O(1)"... То есть бывает и меньше? ))) Это как? посчитав хэш функцию на половину, мы уже знаем где элемент? ))) тут стоит указать "чуть более чем O(1)", а не в среднем.

http://en.wikipedia.org/wiki/Hash_table

ключевые слова "worst case" "collisions"
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38549939
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешная дискуссия. Отрицать полезность ООП могут только упертые "..." (слово по выбору). Так же, как и языки высокого уровня. Игры в производительность тоже забавны. Если отвлечься от специального кода в виде ядер ОС, драйверов и другого подобного софта, то давно доказано, что 99% времени выполнения приходится на 1% кода. Его и оптимизируют по производительности. Никакой проблемы написать быстрый код на ЯВУ, поддерживающих ООП, нет. Не хочешь применять ООП в каком-то месте - не применяй. Отрицание стандартных библиотек тоже абсурдно - это концепция "все дураки, а я -Д'Артаньян!" Нужно их правильно применять, но это не вина библиотек. И действительно, зачем люди используют OpenGL - это же библиотека! Только на С напрямую к драйверу! Высказывания Линуса абсолютно не убеждают, они давно оспорены множеством специалистов, и их аргументы звучат намного убедительнее. По поводу собственно ООП. Многие очень слабо понимают эту концепцию, она для них либо кнопочки в Дельфи, либо примерчики с наследованием. Правильно использованное ООП повышает эффективность системы в целом. Исключения, конечно, есть. SQL - чисто декларативный язык, и примочки в виде ООП не улучшают его. Но и БД - специфическая среда. Если же брать общее программирование, то ООП - одна из лучших концепций.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550039
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxСмешная дискуссия. Отрицать полезность ООП могут только упертые "..." (слово по выбору). Так же, как и языки высокого уровня. Игры в производительность тоже забавны. Если отвлечься от специального кода в виде ядер ОС, драйверов и другого подобного софта, то давно доказано, что 99% времени выполнения приходится на 1% кода. Его и оптимизируют по производительности. Никакой проблемы написать быстрый код на ЯВУ, поддерживающих ООП, нет. Не хочешь применять ООП в каком-то месте - не применяй. Отрицание стандартных библиотек тоже абсурдно - это концепция "все дураки, а я -Д'Артаньян!" Нужно их правильно применять, но это не вина библиотек. И действительно, зачем люди используют OpenGL - это же библиотека! Только на С напрямую к драйверу! Высказывания Линуса абсолютно не убеждают, они давно оспорены множеством специалистов, и их аргументы звучат намного убедительнее. По поводу собственно ООП. Многие очень слабо понимают эту концепцию, она для них либо кнопочки в Дельфи, либо примерчики с наследованием. Правильно использованное ООП повышает эффективность системы в целом. Исключения, конечно, есть. SQL - чисто декларативный язык, и примочки в виде ООП не улучшают его. Но и БД - специфическая среда. Если же брать общее программирование, то ООП - одна из лучших концепций.

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

Обоснуйте как ООП делает систему эффективнее ;)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550040
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Addx Но и БД - специфическая среда. Если же брать общее программирование, то ООП - одна из лучших концепций.
ООП - это метод обработки коллекций разнотипных объектов. БД - это тоже коллекция разнотипных объектов. Так почему же ООП в БД не прижилось ?. Либо ООП необходимо внедрять в БД, либо ООП не годится для обработки коллекций.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550058
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxтрицать полезность ООП могут только упертые "..." (слово по выбору).строго соотвествует с
Addxэто концепция "все дураки, а я - Д'Артаньян !"И как давно Вы из Гаскони? Надолго ли в Париж?
AddxЕсли же брать общее программирование, то ООП - одна из лучших концепций.Может, тогда раскажете почему "не правда", что объектно-ориентированное программирование провалилось ?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550067
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TРечь была про map, а там нет слова "хеш".

socimedК примеру там где программист на C будет использовать обычный массив из структур - его коллега на C++ не дрогнув рукой заюзает хеш ированную мапу на темплейтах
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550082
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvМожет, тогда раскажете почему "не правда", что объектно-ориентированное программирование провалилось ?
я этот текст десять лет назад видел, и кроме батхерта в нём никаких доводов нет. Академическое ООП провалилось, потому что в реальном мире ООП выглядит чуть иначе.
Вы бы лучше с вашим упорством поискали статьи о скандале, когда Sun подделывал тесты производительности Java.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550107
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманsphinx_mvМожет, тогда раскажете почему "не правда", что объектно-ориентированное программирование провалилось ?
я этот текст десять лет назад видел, и кроме батхерта в нём никаких доводов [для меня] нет. Академическое ООП провалилось, потому что в реальном мире ООП выглядит чуть иначе.
Вы бы лучше с вашим упорством поискали статьи о скандале, когда Sun подделывал тесты производительности Java.

Ты забыл добавить, что для тебя лично их там нет. А это лишь говорит об ограниченности твоего мышления. Что, в свою очередь, задает вопрос - а с какой целью ты нам рассказываешь про свою ограниченность? Ищешь сочувствия или единомышленников (единоограниченников)?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550115
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#
"посчитать BF25 от переданной строки поиска".


Можно ссылку, что такое BF25?


http://en.wikipedia.org/wiki/Okapi_BM25

F#И вот когда ты покажешь, как красиво можно выполнить эту задачу - порезать строку на слова, вот тогда и поговорим о мощах и языках (справочно - у меня на С это всё делается одной функцией, два параметра, а ты можешь так?)

Покажете код?

Код: plaintext
1.
  split_words_utf8(text, list);
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550122
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЛагманпропущено...

я этот текст десять лет назад видел, и кроме батхерта в нём никаких доводов [для меня] нет. Академическое ООП провалилось, потому что в реальном мире ООП выглядит чуть иначе.
Вы бы лучше с вашим упорством поискали статьи о скандале, когда Sun подделывал тесты производительности Java.

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

Утверждать, что ООП провалилось, когда в мэйнстриме нет не ОО языков, 10 лет назад выглядело маргинально, сейчас просто смешно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550157
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvAddxтрицать полезность ООП могут только упертые "..." (слово по выбору).строго соотвествует с
Addxэто концепция "все дураки, а я - Д'Артаньян !"И как давно Вы из Гаскони? Надолго ли в Париж?
AddxЕсли же брать общее программирование, то ООП - одна из лучших концепций.Может, тогда раскажете почему "не правда", что объектно-ориентированное программирование провалилось ?

Указанная статья имеет неверную формулировку в принципе... Доводы также не совсем верны...
1. "Но реально никто не начинает с аксиом, все начинают с доказательств". Скажите, а как доказывалось, что параллельные прямые не пересекаются? Вообще, как доказывать аксиому, если сама аксиома не имеет доказательств? Сначала определяют аксиому на основании некоторых наблюдений или договорённостей (например, что в многомерном пространстве существует множетство прямых, которые не пересекаются), а потом на их основании строят умозаключения и выводят доказательства неких явлений (теорем).

2. "Ни в каком моделировании наследования не существует (и в реальной жизни его нет тоже)". Наследование - это лишь следствие обобщения. ООП само по себе строится вокруг одного из фундаментальных принципов осознания мира - обобщения. Именно потому в пределах ООП очень удобно мыслить. Наследовать что-то от чего-то - это не значит просто брать признаки наследуемого и давать их наследующему. Наследование - это деление одного более обобщённого понятия на несколько менее обобщённых.
Как в биологии например выделяют царства... из них выделяют подцарства... из них семейства... виды... ну и что там ещё, не помню.
Или как в технике.... есть обобщённое понятие техника... делится на военную, транспортную, научную etc... по методам перемещения делится на воздушную, наземную, водную, подводную... Ну и т.д. (тут мы видим пример множественного наследования, когда для описания объекта надо описать его предназначение и метод передвижения)

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

P.S. Мне просто интересно... как долго будет писаться даже простой 3Д движок без использования объектов в целом (полностью исключая принципы ООП)? Я думаю годами будет писаться то, что в ООП пишется месяц :)
Что бы никто не заблуждался по поводу моей точки зрения повторюсь, я за ООП, но против утверждения, что без ООП что-то является невозможным, или что ООП как таковое позволяет ускорять работу кода и увеличивает его эффективность.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550174
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Ага только, насколько я понял, там свой отдельный препроцессор для C а не макросы на стандартном препроцессоре - так?
И что с того? Сам С - это ассемблер. А транслировать в него ты можешь из чего угодно - хоть стандартным препроцессором, хоть m4 расширениями. Не вижу никаких трудностей тут.


Тут никаких трудностей нет. Просто вы не додумали эту мысль дальше - тогда получается во-первых, С ч точки зрения выразительных средств ничем не лучше другого Тьюринг-полного языка. Во-вторых, с точки зрения опять таки выразительности, C убог так как не позволяет себя органично расширять. Тут еще подсказка: посмотрите н lisp и nemerle (хотя извините, вас гугление не интересует :))
И? О чем спич? Хочешь сказать, что ты не умеешь расширять С и веришь тем, которые говорят что он убог? Ну... не умеешь, потому что тебе никто не показал как (на лиспе и немерле показали), а сам додуматься как - не смог.

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

F#Честно говоря мне трудно представить человека, который будет модифицировать молоток под себя (ну может, видел обмотанный изолентой).
Способность человека создавать себе орудие труда - это основное его отличие от животных.
А подражать другим (использовать паттерны действия) могут практически любые обезьяны, и не только.
Есть масса видео, где одна шимпанзе весьма учит другую пользоваться "молотком" - камнем для разбивания орехов.

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

А кто-то говорил про то, что не нужно сначала смотреть на другие?
И не дорабатывать, а разрабатывать изначально новые, зачастую принципиально.

Даже тут ты демонстрируешь эдакое тшедушие - "все что я могу, это лишь унаследовать чьи-то заблуждения и немного их видоизменить - доработать". А ты попробуй создать что-то принципиально новое, что позволяет вместо 150 строк кода написать всего одну.

F#Странно, что ты этого в упор не видишь. Несоотвествие инструмента задаче.

Вы про какую задачу и какой инструмент. И как вы точите молоток? (А особенно зажигалку)

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



F#Еще раз для тех, кто на бронепоезде.


Ты еще раз перечитай про что я написал - ты потерял нить. C тоже написан людьми понятия не имеющими о твоих задачах - выбрасываешь C и делаешь свой собственный с учетом твоих задач!

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


F#С - это лишь кроссплатформенный макроассемблер.
Никогда не думал, что можно СВОЙ высокоуровневый ЯП транслировать в С, а потом уже этот на 100% нагенерированный на С код - компилировать? А так оказывается можно!


Это само собой разумеется, и многие так и делают. Только это просто переводит проблему на уровень того языка из которого ты генеришь С. ООП не про байты и биты а про модульность и повторное использование. Мне кажется, что если это непонятно, то вы просто не знаете о чем говорите.
Почти никто так не делает, на самом деле. Есть только робкие попытки - к примеру проект HipHop (HHVM).

F#Поправьте меня если я не прав но:
1. Это не связанный список а непрерывный кусок памяти
2. Это подходит только для одного именно этого способа организации коллекции - со связанным списком или коллекцией например, которая в процессе выкачивания из файла это не проходит (соответственно, чтобы сказать "выведи мне на экран все строки из файла" при помощи этого макроса придется либо копировать оттуда все содержимое, либо создавать другой макрос).
1. Имеено. Коллекции в куче - это еще одно феерически глупое заблуждение, в силу своей универсальности - как раз принцип забивания микроскопом гвоздей (для большинства задач куча как раз и не требуется, а преаллоцированные массивы фиксированной длины, особенно краткосрочные для веб задач - покрывают большинство потребностей).
2. Еще раз - есть отличие "тиаретика" от практика. Практик делает инструмент исходя из практических задач.
Теоретик сначала обобщает задачу, потом годами пишет универсальные, пригодные для любых задач инструменты, но предельно
неэффективные в частных случаях. Это как швейцарский нож против мачете. Мачете - специализированный инструмент, отлично рубит джунгли. А столовый нож - отлично режет стейк. Но вот швейцарский нож - и джунгли рубит, и стейк им можно, но в сравнении со специализированными он это будет делать предельно плохо. Вот так и в современных ЯП, особенно ФЯП - инструменты универсальны, но убоги в своей сравнительной неэффективности.

F#Отдельно забавны названия - почему перечисление индексов связывается со словом EACH а перечисление содержимого ALL - это в C традиции такие? На codereview это у меня сразу вызвало бы вопрос.
each и all это слова синонимы. Никаких традиций нет, нужно просто имена дать разные.

Такое ощущение, что тебе очень трудно придумать сначала задачу



F#Я не просил найти задачу - я просто говорил что человек м развитым абстрактным мышлением смог бы найти аналогию в своих готовых задачах.
Абстрактное мышление - это заблуждение. В мире существует лишь конкретика и обобщение (выделение общего из двух частных).
А абстракции - это как раз попытка найти нечто эдакое, а потом придумать ему применение. Это смешно по сути.



F#Задача - это к примеру "разбить текст, представленный как массив байт, представляющий строку UTF-8 на массив составляющих слов, с учетом многобайтовых символов пунктуации",


Код: c#
1.
2.
3.
4.
        IEnumerable<String> getWords(byte[] input)
        {
            return Regex.Matches(Encoding.UTF8.GetString(input), @"\w+").Cast<Match>().Select(m => m.Value);
        }



Отлично! Вот и давай сравним с

Код: plaintext
1.
 split_words_utf8(text, list);


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

Честно говоря, два эти примера выше настолько мощно отражают всю убогость индустрии C# и не только, что даже трудно что-то добавить еще.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550185
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманsocimedпропущено...


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

Утверждать, что ООП провалилось, когда в мэйнстриме нет не ОО языков, 10 лет назад выглядело маргинально, сейчас просто смешно.

Чувак, да ты походу упорт. Вот мейнстрим. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

Самый популярный язык - С, изначально и окончательно не ООП.
PHP - не ООП (то что там OOP якобы есть - не надо рассказывать, видели, знаем).
Аналогично, из топов не ООП - (Visual) Basic, Perl, Transact-SQL, PL/SQL, COBOL, ABAP, Lisp

Да и тот-же Javascript назвать ООП языком можно только с ну ооооооооооооочень большой натяжкой.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550201
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedАналогично, из топов не ООП - (Visual) Basic, Perl, Transact-SQL, PL/SQL, COBOL, ABAP, Lisp
VB на COM построен и без него немыслим.
У Perl нет специального ООП-синтаксиса, но ООП-подход там применяется широко и без проблем.
Различные SQL это вообще не процедурные языки.
Про COBOL, ABAP и Lisp я не в курсе. Но с учетом того, что в предыдущих пунктах была лажа, я бы на веру не принимал.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550202
thresher8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedСамый популярный язык - С, изначально и окончательно не ООП.
PHP - не ООП (то что там OOP якобы есть - не надо рассказывать, видели, знаем).
Аналогично, из топов не ООП - (Visual) Basic, Perl, Transact-SQL, PL/SQL, COBOL, ABAP, Lisp

Да и тот-же Javascript назвать ООП языком можно только с ну ооооооооооооочень большой натяжкой.
какой у тебя взгляд избирательный. а java, obj-c, c++, c#, vb.net ,ruby ты почему пропустил?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550205
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

PHP не ООП?!!!! O_o
А как же я последних 3 года то работаю?! Почти всё в моих приложениях - это объекты (почти, потому что всегда-всегда их использовать - это разумеется лишнее).

PHP позволяет нарушать принципы ООП (например используя параллельно с ним паттерн mixin, как это делается в yii в разных extension'ах и моделях, позволяя их расширять на ходу). Однако я могу вполне полноценно написать программу полностью в рамках парадигмы ООП на ПХП.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550212
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed
Код: c#
1.
2.
3.
4.
        IEnumerable<String> getWords(byte[] input)
        {
            return Regex.Matches(Encoding.UTF8.GetString(input), @"\w+").Cast<Match>().Select(m => m.Value);
        }



Отлично! Вот и давай сравним с

Код: plaintext
1.
 split_words_utf8(text, list);


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

Честно говоря, два эти примера выше настолько мощно отражают всю убогость индустрии C# и не только, что даже трудно что-то добавить еще.[/quot]
ты либо дебил, либо толстый тролль и двествееник.

во-превых, реализацию ты не показал. на C# тоже можно был бы сделать аля var result = getWords(text) -- чертовски читабельно

во-ыторвх, как ты измерил производительность? диагноз по фотографии?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550224
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.socimedАналогично, из топов не ООП - (Visual) Basic, Perl, Transact-SQL, PL/SQL, COBOL, ABAP, Lisp
VB на COM построен и без него немыслим.
Ага ага. Как сможешь там унаследоваться - ты обязательно нам сообщи, ок?

Alibek B.У Perl нет специального ООП-синтаксиса, но ООП-подход там применяется широко и без проблем.
И чо? На C тоже можно писать в ООП стиле. Обтекать тут: http://www.cs.rit.edu/~ats/books/ooc.pdf
Проблема лишь в том - что никто так не делает.

Alibek B.Различные SQL это вообще не процедурные языки.
T-SQL и PL/SQL не процедурные языки? Что курим?

Alibek B.Про COBOL, ABAP и Lisp я не в курсе. Но с учетом того, что в предыдущих пунктах была лажа, я бы на веру не принимал.

Но у учетом чего чего? Хочешь сказать что ты просто идиот? Ну ок, как знаешь, мы тебя услышали.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550230
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЧувак, да ты походу упорт.

Мужчина, успокойся уже...
Там девушку пригласи вечером в кафе, или что ...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550249
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed
T-SQL и PL/SQL не процедурные языки?



Для Вас это новость? Да, SQL - это не процедурный язык.
Вокруг самого языка есть немало наворотов, но это ничего не меняет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550251
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedКак сможешь там унаследоваться - ты обязательно нам сообщи, ок?
Для чего? Если ты пропустил мимо ушей в школе урок, то и сообщение в форуме будет бесполезно.

socimedПроблема лишь в том - что никто так не делает.
Проблема только в твоем кругозоре.

socimedT-SQL и PL/SQL не процедурные языки? Что курим?
Перечитай еще раз, если с первого раза не получилось.

socimedНо у учетом чего чего? Хочешь сказать что ты просто идиот? Ну ок, как знаешь, мы тебя услышали.
Я сказал именно то, что хотел сказать.
Если ты не понял сказанного, это не моя вина, а твоя.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550253
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобучты либо дебил, либо толстый тролль и двествееник.

во-превых, реализацию ты не показал. на C# тоже можно был бы сделать аля var result = getWords(text) -- чертовски читабельно


Дебилом себя показываешь пока только ты. Почему? Да потому что тебе, как типичному пораженцу болезни вида C# мозга - даже в голову не пришла мысль, что вот тот код выше (.Cast<Match>().Select(m => m.Value);) типичный C#/Java говнокодер будет писать/копипастить/ревьювить/сопровождать КАЖДЫЙ раз, когда у него возникнет задача разбить текст на слова. У него даже мысли не возникнет запилить свою фунцию вида глагол(объект, субъект) без этого феерического синтаксического сахара.

Потом отрываешь его нетленный АРМ "Склад", а подобного многострочного отложения безумных вызовов пяти и более методов в одной строке - чуть менее, чем 99% всего кода приложения.

И вот та один раз таки и НЕ написанная библиотечная функция - размазывается жирным слоем по всем прикладным модулям во множестве копипаст.

Нахлобучво-ыторвх, как ты измерил производительность? диагноз по фотографии?
Нет, банальные benchmark-и, циклом строго по L1/L2 кешу и на больших объемах.

Практически всегда и везде Java и C# подходы ("решения" со stackoverflow и прочих примеров из интернетов) просасывают минимум в 50-100 раз, в сравнении с Plain C. Не веришь - иди сам и меряй, применительно к этой задаче можешь сразу начинать с закачки libunibreak:

https://github.com/adah1972/libunibreak/blob/master/README.md
http://vimgadgets.sourceforge.net/libunibreak/doc/html/wordbreak_8h.html#ac2f2c26a561ccb914fba334ccde6890e
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550257
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxsocimedT-SQL и PL/SQL не процедурные языки?



Для Вас это новость? Да, SQL - это не процедурный язык.
Вокруг самого языка есть немало наворотов, но это ничего не меняет.

Ты почему не в школе? Мамка не заругает?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550266
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрAddxСмешная дискуссия. Отрицать полезность ООП могут только упертые "..." (слово по выбору). Так же, как и языки высокого уровня. Игры в производительность тоже забавны. Если отвлечься от специального кода в виде ядер ОС, драйверов и другого подобного софта, то давно доказано, что 99% времени выполнения приходится на 1% кода. Его и оптимизируют по производительности. Никакой проблемы написать быстрый код на ЯВУ, поддерживающих ООП, нет. Не хочешь применять ООП в каком-то месте - не применяй. Отрицание стандартных библиотек тоже абсурдно - это концепция "все дураки, а я -Д'Артаньян!" Нужно их правильно применять, но это не вина библиотек. И действительно, зачем люди используют OpenGL - это же библиотека! Только на С напрямую к драйверу! Высказывания Линуса абсолютно не убеждают, они давно оспорены множеством специалистов, и их аргументы звучат намного убедительнее. По поводу собственно ООП. Многие очень слабо понимают эту концепцию, она для них либо кнопочки в Дельфи, либо примерчики с наследованием. Правильно использованное ООП повышает эффективность системы в целом. Исключения, конечно, есть. SQL - чисто декларативный язык, и примочки в виде ООП не улучшают его. Но и БД - специфическая среда. Если же брать общее программирование, то ООП - одна из лучших концепций.

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

Обоснуйте как ООП делает систему эффективнее ;)

На эту тему (эффективность ООП) написано множество книг, и аргументация там посерьезнее письма Линуса ;)
Кстати, на чем пишете Вы, и какого рода программные продукты? Просто интересно, не сочтите это как претензию в стиле "твой проект - г., а вот я пишу только суперпрограммы".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550268
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thresher8socimedСамый популярный язык - С, изначально и окончательно не ООП.
PHP - не ООП (то что там OOP якобы есть - не надо рассказывать, видели, знаем).
Аналогично, из топов не ООП - (Visual) Basic, Perl, Transact-SQL, PL/SQL, COBOL, ABAP, Lisp

Да и тот-же Javascript назвать ООП языком можно только с ну ооооооооооооочень большой натяжкой.
какой у тебя взгляд избирательный. а java, obj-c, c++, c#, vb.net ,ruby ты почему пропустил?

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

Лагманпропущено...


Утверждать, что ООП провалилось, когда в мэйнстриме нет не ОО языков, 10 лет назад выглядело маргинально, сейчас просто смешно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550272
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модAddx Но и БД - специфическая среда. Если же брать общее программирование, то ООП - одна из лучших концепций.
ООП - это метод обработки коллекций разнотипных объектов. БД - это тоже коллекция разнотипных объектов. Так почему же ООП в БД не прижилось ?. Либо ООП необходимо внедрять в БД, либо ООП не годится для обработки коллекций.

БД, причем БД именно реляционная - это особая система хранения информации. Это не коллекции ни в коем виде. SQL - это декларативный язык, который позволяет производителю БД тонко подстраивать выполнение запросов в СУБД. Если брать аналог в ООП, то можно привести в пример LINQ to Objects. Там именно обработка коллекций.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550281
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрsocimed,

PHP не ООП?!!!! O_o
А как же я последних 3 года то работаю?! Почти всё в моих приложениях - это объекты (почти, потому что всегда-всегда их использовать - это разумеется лишнее).


Все за тебя очень рады, но вот парни из fb, vk и т.п. - они почему-то используют PHP строго в процедурном стиле, о чем и говорят на всех конференциях.

Наверное ты умнее их, как думаешь?

Лень качать свежие joomla/wordpress и прочие, но раньше там не было ООП тоже, хотя учитывая общие мировые тенденции к тотальном оглупению и наворотам оболочек на оболочки, возможно и какой Drupal уже тоже перевели на ООП, невозбранно увеличив response time до типичных 300-600 миллисекунд (супротив 30ms у лучших представителей жанра, при реально достижимом 3ms при переписывании с PHP на C)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550284
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это вопрос юзабельности. Формально PLSQL тоже содержит определния объектов, есть конструкторы.
Но процент использования этих опций в практике чрезвычайно мал. И я не специалист в PHP но как мне
кажется ООП-шные плюшки там очень слабо используются или не используются вообще. Беря критерий
мат статистики. Если over 97% кода пишется НА ПРАКТИКЕ без ООП то я делаю вывод что ООП
в данном языке ПРАКТИЧЕЧКИ не используется. Почему не используется - это отдельный вопрос
который надо рассмотреть отдельно. Но формально язык ООП поддерживает.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550300
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю для начала надо определиться что понимать под ООП.
Частичную реализацию ООП в конкретном языке как расценивать? Например в PHP4 нет деструкторов, в Visual FoxPro невозможно множественное наследование и т.д.

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

И надо ограничится алгоритмическими ЯП, нет смысла их мешать с узконаправленными T-SQL, PL/SQL, ABAP и т.п.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550301
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedДебилом себя показываешь пока только ты. Почему? Да потому что тебе, как типичному пораженцу болезни вида C# мозга - даже в голову не пришла мысль, что вот тот код выше (.Cast<Match>().Select(m => m.Value);) типичный C#/Java говнокодер будет писать/копипастить/ревьювить/сопровождать КАЖДЫЙ раз, когда у него возникнет задача разбить текст на слова. У него даже мысли не возникнет запилить свою фунцию вида глагол(объект, субъект) без этого феерического синтаксического сахара.
Нет, ты таки тролль. Зубы не заговаривай, вопрос был про реализацию.

Напомню, с чего ты начал:

socimedИ вот когда ты покажешь, как красиво можно выполнить эту задачу - порезать строку на слова, вот тогда и поговорим о мощах и языках (справочно - у меня на С это всё делается одной функцией, два параметра, а ты можешь так?)
Ты четко и предсказуемо съехал с вопроса о том, как у тебя реализована функция split_words_utf8(). Но не проблема, я еще раз спрошу: покажи реализацию этой функции, а потом будем с тобой говорить о читабельностьи и поддерживаемости.

Далее. Оформляем код на C# в, развлечения ради, extension метод IEnumerable<string> SplitInto(this string s, string separator) -- и у меня тоже получается лаконичный, читабельный и поддерживаемый код var words = text.SplitInto(@"\w+"); Вопросы будут?

socimedНахлобучво-ыторвх, как ты измерил производительность? диагноз по фотографии?
Нет, банальные benchmark-и, циклом строго по L1/L2 кешу и на больших объемах.Ты эти бенчмарки делал? Результаты замеров на бочку.

socimedПрактически всегда и везде Java и C# подходы ("решения" со stackoverflow и прочих примеров из интернетов) просасывают минимум в 50-100 раз, в сравнении с Plain C. Не веришь - иди сам и меряй, применительно к этой задаче можешь сразу начинать с закачки libunibreak:

libunibreak и твои всеобъемлющие обобщения -- это, конечно, все прекрасно и восхитительно, но вот тебе на подумать: пока ты будешь томно вылизывать свой высокопроизводительный C-код и заниматься прочей интеллектуальной мастурбацией, я заведу свой простейший код на регулярных выражениях на кластере из EC2 и Map-Reduce все сделает за меня. Причем заметь: сделает быстрее и, в итоге, дешевле, потому как работодатель будет оплачивать либо два месяца твоего рабочего времени (которое ты будешь тратить на отлов багов в обработки всяких юникодных суррогатов), либо несколько часов работы десятка компьютеров в облаке.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550305
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550307
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TДумаю для начала надо определиться что понимать под ООП.
Частичную реализацию ООП в конкретном языке как расценивать?

Например в PHP4 нет деструкторов, в Visual FoxPro невозможно множественное наследование и т.д.
А в каком из определений/описаний ООП говориться о деструкторах и необходимости поддержки множественного наследования?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550308
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addx,

Вообще не важно что я пишу. Состою в команде разработчиков внутренностей онлайн школы английского языка. Раньше писал сайты. :)
Однако, как это поможет Вам ответить на вопрос "Обоснуйте как ООП делает систему эффективнее"? :) Я что-то не помню таких книг... Но признАю, что не прав, если Вы мне приведёте довод (хоть один) который покажет, что использование ООП дало прирост скорости/полезного функционала приложениям :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550311
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЧто бы никто не заблуждался по поводу моей точки зрения повторюсь, я за ООП, но против утверждения, что без ООП что-то является невозможным, или что ООП как таковое позволяет ускорять работу кода и увеличивает его эффективность.


Невозможно чего либо без ООП - это вообще очень интересное утверждение. )
ООП - это не "бустер", включив который можно увеличить скорость и эффективность. Зачастую эффект противоположный, но это не вина ООП. Как и всякая концепция, она имеет область применения, и требует ее глубокого понимания. Тогда ООП дает эффект, сокращающий время разработки, увеличивающий надежность и облегчающий поддержку кода. Для больших проектов - именно это наиболее актуально. Это сложно понять на примерах, которые присутствуют в книжках по ЯВУ с ООП.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550318
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята. Топик интересный. Не надо сраться. Если есть желание кого-то оскорбить - подождите 30 минут перед
тем как нажать "Submit".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550328
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучsocimedДебилом себя показываешь пока только ты. Почему? Да потому что тебе, как типичному пораженцу болезни вида C# мозга - даже в голову не пришла мысль, что вот тот код выше (.Cast<Match>().Select(m => m.Value);) типичный C#/Java говнокодер будет писать/копипастить/ревьювить/сопровождать КАЖДЫЙ раз, когда у него возникнет задача разбить текст на слова. У него даже мысли не возникнет запилить свою фунцию вида глагол(объект, субъект) без этого феерического синтаксического сахара.
Нет, ты таки тролль. Зубы не заговаривай, вопрос был про реализацию.
Не было вопроса про реализацию.

Я специально задал вопрос - как ты будешь разбивать строку на слова, покажи код.

И мне и вывалили ЭТО.


НахлобучНапомню, с чего ты начал:

socimed И вот когда ты покажешь, как красиво можно выполнить эту задачу - порезать строку на слова, вот тогда и поговорим о мощах и языках (справочно - у меня на С это всё делается одной функцией, два параметра, а ты можешь так?)
Ты четко и предсказуемо съехал с вопроса о том, как у тебя реализована функция split_words_utf8(). Но не проблема, я еще раз спрошу: покажи реализацию этой функции, а потом будем с тобой говорить о читабельностьи и поддерживаемости.

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

Это и отличает типовое ослоумие типового C# -та. Он не думает в терминах задач и адекватности инструментов. Он тупо, бездумно копипастить то, что ему спустили сверху. Сказали копипастиь вот ту укатайку с регекспами и 9 вызовами методов (балин, а где сказано, в задаче, что надо регекспы юзать, ась?), вот он и копипастит.

Смешные вы.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550332
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedAddxпропущено...


Для Вас это новость? Да, SQL - это не процедурный язык.
Вокруг самого языка есть немало наворотов, но это ничего не меняет.

Ты почему не в школе? Мамка не заругает?

Странно, что в серьезную дискуссию встревают такие люди. Вы хотя бы погуглить попробовали.
Можно после этого остальные Ваши посты читать?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550333
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПрограмёрsocimed,

PHP не ООП?!!!! O_o
А как же я последних 3 года то работаю?! Почти всё в моих приложениях - это объекты (почти, потому что всегда-всегда их использовать - это разумеется лишнее).


Все за тебя очень рады, но вот парни из fb, vk и т.п. - они почему-то используют PHP строго в процедурном стиле, о чем и говорят на всех конференциях.

Наверное ты умнее их, как думаешь?

Лень качать свежие joomla/wordpress и прочие, но раньше там не было ООП тоже, хотя учитывая общие мировые тенденции к тотальном оглупению и наворотам оболочек на оболочки, возможно и какой Drupal уже тоже перевели на ООП, невозбранно увеличив response time до типичных 300-600 миллисекунд (супротив 30ms у лучших представителей жанра, при реально достижимом 3ms при переписывании с PHP на C)

ООП - это не язык, и не программа и не что Вы ещё там думаете...
ООП - это парадигма написания кода!!! Ну и молодцы, что они пишут не в ООП. А я пишу в ООП. И что теперь? В дэлфи тоже можно писать в процедурном стиле. Значит дэлфи не ОО язык? Значит и С++ не ОО язык? python?

Вообще-то никого не загоняют в рамки объектной ориентированности. В языках обычно включают поддержку ООП, а не заставляют писать в стиле ООП.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550342
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучsocimedПрактически всегда и везде Java и C# подходы ("решения" со stackoverflow и прочих примеров из интернетов) просасывают минимум в 50-100 раз, в сравнении с Plain C. Не веришь - иди сам и меряй, применительно к этой задаче можешь сразу начинать с закачки libunibreak:

libunibreak и твои всеобъемлющие обобщения -- это, конечно, все прекрасно и восхитительно, но вот тебе на подумать: пока ты будешь томно вылизывать свой высокопроизводительный C-код
Уже вылизано пару лет назад, потрачено тогда было ровно 15 минут.., из них 5 минут заняло гугление.


Нахлобуч и заниматься прочей интеллектуальной мастурбацией, я заведу свой простейший код на регулярных выражениях на кластере из EC2 и Map-Reduce все сделает за меня.
Отлично. Т.е. там, где должна справиться одна-две ноды - ты будешь городить целый кластер из минимум 200-300 машин.
Отличненько!

Затраты на ёлектричество и не только хочешь посчитаем, архитектыр?

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

Хохмы ради пробей стоимость содержания датацентра как нибудь. Хотя... если у тебя весь scope задач упирается в напольный "сервер" класса middle-tower, на котором крутятся все задачи вашей конторы из 100 человек.... ну тогда да, тогда можно наверное считать только твою скорбную зарплату.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550354
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxsocimedпропущено...


Ты почему не в школе? Мамка не заругает?

Странно, что в серьезную дискуссию встревают такие люди. Вы хотя бы погуглить попробовали.
Можно после этого остальные Ваши посты читать?

Ну вот и погугли, дитятко, PL/SQL и T-SQL соотвественно, заодно узнаешь, есть ли там процедуры, чем они отличаются от SQL.
Если мамка конечно ремня не всыпет, за то что ты прогуливаешь уроки.

Или ты сейчас хочешь сказать что тебе не 10 лет и ты в возрасте сугубо за 20 до сих пор не знаешь, как гуглить с целью узнать - что это такое PL/SQL и T-SQL?

В серьезную дискуссию он вступил, ыыыы
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550355
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonРебята. Топик интересный. Не надо сраться. Если есть желание кого-то оскорбить - подождите 30 минут перед
тем как нажать "Submit".

Да не особо интересный. Обсасываются очевидные вещи. Увы, не для всех, потому и накал дискуссии такой :)
По сути можно бы рассматривать его в разрезе Линус против ООП, или "для чего нужно ООП". Но о втором настолько много написано, что ответ на вопрос "что такое С" менее очевиден :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550365
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю сраца до первого бана
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550384
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxПрограмёрЧто бы никто не заблуждался по поводу моей точки зрения повторюсь, я за ООП, но против утверждения, что без ООП что-то является невозможным, или что ООП как таковое позволяет ускорять работу кода и увеличивает его эффективность.


Невозможно чего либо без ООП - это вообще очень интересное утверждение. )
ООП - это не "бустер", включив который можно увеличить скорость и эффективность. Зачастую эффект противоположный, но это не вина ООП. Как и всякая концепция, она имеет область применения, и требует ее глубокого понимания. Тогда ООП дает эффект, сокращающий время разработки, увеличивающий надежность и облегчающий поддержку кода. Для больших проектов - именно это наиболее актуально. Это сложно понять на примерах, которые присутствуют в книжках по ЯВУ с ООП.

Ну то есть структурирует код проекта. Не более )). Я о том, что разные термины аля "скорость выполнения", "эффективность", "надёжность" и т.д. не имеют какого-либо отношения напрямую к ООП. Скорее это заслуга программиста, а не подхода к программированию. Если я супер-гений, который умеет держать гигабайты кода в голове в проиндексированном виде , то мне не составит труда написать более эффективный и надёжный код не используя вообще никаких подходов... Да в принципе я смогу это сделать (теоретически... будь я супер-гением с невообразимой памятью) создавая программы даже в машинных кодах :).

Так что ООП лишь позволяет структурировать код и сделать его легче для восприятия... А вот уже оптимальная структура приложения ложится на плечи программиста.... И если это человек-дубень, который освоил ООП и считает себя гением, то никакое ООП его не выручит :) Но при одинаковой подготовке и хорошо продуманной заранее структуре, объектно-ориентированный код будет медленнее его процедурного аналога (соответственно менее эффективный), по надёжности оба варианта будут одинаковы.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550400
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНо при одинаковой подготовке и хорошо продуманной заранее структуре, объектно-ориентированный код будет медленнее его процедурного аналога (соответственно менее эффективный), по надёжности оба варианта будут одинаковы.
Ну для каких-то задач именно объекты с методами и свойствами могут быть наиболее удобными.
Почему бы в этом случае не использовать готовые механизмы ООП, присущие используемому ЯП, а не писать свою корбу?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550411
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedМожно ссылку, что такое BF25?


http://en.wikipedia.org/wiki/Okapi_BM25

А, вы описались изначально?

F#пропущено...


Покажете код?

Код: plaintext
1.
  split_words_utf8(text, list);

[/quot]

А где реализация ?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550415
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНу то есть структурирует код проекта. Не более )). Я о том, что разные термины аля "скорость выполнения", "эффективность", "надёжность" и т.д. не имеют какого-либо отношения напрямую к ООП. Скорее это заслуга программиста, а не подхода к программированию. Если я супер-гений, который умеет держать гигабайты кода в голове в проиндексированном виде , то мне не составит труда написать более эффективный и надёжный код не используя вообще никаких подходов... Да в принципе я смогу это сделать (теоретически... будь я супер-гением с невообразимой памятью) создавая программы даже в машинных кодах :).

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

В некотором роде структурирует, это безусловно :)
Впрочем, структурировать можно по-разному.
Успех проекта состоит в
1. Правильной постановке задачи
2. Правильном проектировании
3. Грамотном написании кода
Именно в этом порядке. Для сложных проектов каждый пункт - серьезная работа. А так, конечно, чтобы отсортировать массив, ООП не нужно. Примеры, показывающие что для решения специфической задачи эффективно использовать именно приспособленное под эти задачи средство, имеются в огромном количестве.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550416
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.ПрограмёрНо при одинаковой подготовке и хорошо продуманной заранее структуре, объектно-ориентированный код будет медленнее его процедурного аналога (соответственно менее эффективный), по надёжности оба варианта будут одинаковы.
Ну для каких-то задач именно объекты с методами и свойствами могут быть наиболее удобными.
Почему бы в этом случае не использовать готовые механизмы ООП, присущие используемому ЯП, а не писать свою корбу?

Я о том и говорю :) Это удобно... но НЕ БОЛЕЕ чем просто удобно :) Но многие тут используют термины "эффективнее", "быстрее", "надёжнее"... А другие (многие) руководители проектов на эти термины ведутся
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550423
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ПрограмёрНу то есть структурирует код проекта. Не более )). Я о том, что разные термины аля "скорость выполнения", "эффективность", "надёжность" и т.д. не имеют какого-либо отношения напрямую к ООП.
Имеют непосредственное. Не существует абстрактного ООП языка в вакууме.

С++ идет тесно в связи со стандартной библиотекой STL
Java идет тесно в связи со стандартным RTL

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

Но тормоза решений Java и C++ в 99% случаев объясняются исключительно теми библиотеками, которые использует программист, и, что самое худшее - теми стандартными алгоритмами, которые вынужден использовать программист, оперируя этими библиотеками.

Вот и весь ответ.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550450
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxsocimedпропущено...
Ты почему не в школе? Мамка не заругает?

Странно, что в серьезную дискуссию встревают такие люди. Вы хотя бы погуглить попробовали.
Можно после этого остальные Ваши посты читать? Ну, Вы уже попробовали погуглить что-нибудь на тему T-SQL или PL/SQL ?
Ну, так попробуйте... Будете сильно удивлены процедурным , ака, императивным, расширениям декларативного SQL...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550454
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxКак и всякая концепция, она имеет область применения, и требует ее глубокого понимания. Тогда ООП дает эффект, сокращающий время разработки, увеличивающий надежность и облегчающий поддержку кода . Для больших проектов - именно это наиболее актуально."Оглсите, пжлста весь сп'сок" (с) (орфография и пунктуация "оригинала" сохранены)
И настоятельно необходимо, чтобы этот список состоял из пунктов, которых до появления ООП вообще не было...
Очень желательно при этом, чтобы надежность и облегчение поддержки кода от использования этих пунктов были реальными.
Терзают смутные сомнения (переходящие в стойкое убеждение в невозможности), что такой список может быть вообще кем-нибудь и когда-нибудь предоставлен.
Кстати, порадовало про гарантированное "повышение надежности"... Особенно - при наследовании и полиморфизме... Ага... :(
AddxЭто сложно понять на примерах, которые присутствуют в книжках по ЯВУ с ООП.Ну, тут Вы попали - если даже простые примеры не способны продемонстировать преимущества от использования ООП...
Простая программа "Привет мир" на C# - на-вскидку 5 (пять) разных(!) иерархий классов... Вместо вызова одного "библиотечного" метода... Что говорить о "более сложных" случаях?!
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550462
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AddxБД, причем БД именно реляционная - это особая система хранения информации.
И чего в ней особого - аналог таблицы - массив структур в ЯП.
Addx SQL - это декларативный язык, который позволяет производителю БД тонко подстраивать выполнение запросов в СУБД. Если брать аналог в ООП, то можно привести в пример LINQ to Objects.
SQL - это язык обработки таблиц и не обязательно в БД. Вот и не понятно, зачем нужен аналог - может достаточно одного SQL.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550477
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TДумаю для начала надо определиться что понимать под ООП.
Методика обработки коллекций разнородных объектов.
Dima TИ надо ограничится алгоритмическими ЯП, нет смысла их мешать с узконаправленными T-SQL, PL/SQL, ABAP и т.п.
PL/SQL - это и есть алгоритмический ЯП, в который встроен SQL для работы с типом данных Таблица.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550488
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понял, это клоны полезли в таком количестве?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550501
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxЯ не понял, это клоны полезли в таком количестве?

Ты уже PL/SQL загуглил? Или до сих пор собираешься нам постать свои смешные юношеские откровения, о том, что это НЕ процедурный язык?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550503
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто вопрос юзабельности. Формально PLSQL тоже содержит определния объектов, есть конструкторы.
Но процент использования этих опций в практике чрезвычайно мал.


В PL/SQL используется подход "объекты-домены", а не "объекты -- структурные единицы кода",
поэтому там объекты используются достаточно редко, потому что нужда в предметно-ориентированных
составных доменах в реляционной БД вообще очень странна.

Но там ещё есть и записи, и встроенные типы данных с member function хотя бы синтаксически.

Но в общем, конечно, PL/SQL назвать ОО языком можно с очень большой натяжкой.

maytonИ я не специалист в PHP но как мне
кажется ООП-шные плюшки там очень слабо используются или не используются вообще. Беря критерий
мат статистики. Если over 97% кода пишется НА ПРАКТИКЕ без ООП то я делаю вывод что ООП
в данном языке ПРАКТИЧЕЧКИ не используется. Почему не используется - это отдельный вопрос
который надо рассмотреть отдельно. Но формально язык ООП поддерживает.

Вообще, в некоторой литературе выделяют два класса языков в смысле объектов -- объектные и объектно-ориентированные.
объектные -- грубо говоря, в которых синтаксически и семантически есть объекты, но нет средств создания своих объектов.
Долгое время таким языком был VisualBasic, но потом туда добавили средства и создания своих объектов тоже. (VBA вроде так и остался объектным).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550505
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvAddxЭто сложно понять на примерах, которые присутствуют в книжках по ЯВУ с ООП.Ну, тут Вы попали - если даже простые примеры не способны продемонстировать преимущества от использования ООП...
Простая программа "Привет мир" на C# - на-вскидку 5 (пять) разных(!) иерархий классов... Вместо вызова одного "библиотечного" метода... Что говорить о "более сложных" случаях?!

Вы вообще поняли, что я написал? Вроде по-русски ... Преимущество ООП проявляется в СЛОЖНЫХ проектах, в ПРОСТЫХ его преимущество не очевидно. У микроскопа нет преимущества перед лупой, если вам нужно рассмотреть пару мелких букв на упаковке.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550537
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AddxПреимущество ООП проявляется в СЛОЖНЫХ проектах
Дело не в сложности. ООП применимо, если вы можете сформулировать вашу задачу ТОЛЬКО в терминах объектов. Если нет, то ООП не применимо, т.к происходит смешение парадигм, что плохо.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550606
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxsphinx_mvпропущено...
Ну, тут Вы попали - если даже простые примеры не способны продемонстировать преимущества от использования ООП...
Простая программа "Привет мир" на C# - на-вскидку 5 (пять) разных(!) иерархий классов... Вместо вызова одного "библиотечного" метода... Что говорить о "более сложных" случаях?!

Вы вообще поняли, что я написал? Вроде по-русски ... Преимущество ООП проявляется в СЛОЖНЫХ проектах, в ПРОСТЫХ его преимущество не очевидно. У микроскопа нет преимущества перед лупой, если вам нужно рассмотреть пару мелких букв на упаковке.Во-первых, критерий "крупный проект" - в студию!

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

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

ЗЫ. Овер 700 модулей (ака "классов") в одном проекте - это много/мало? Крупно/мелко? C# однако... Всего ООП в нем - декларация классов... Весь функционал (реализация свойств/методов/функций) по сути - чисто вызов "библиотечных" методов, которые "инкапсулированы" в методах классов.

ЗЗЫ. Возможность использования в тексте программы ключевого слова "object" совершенно не означает, что программирование автоматически становится "объектно-ориентированным".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550616
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модAddxПреимущество ООП проявляется в СЛОЖНЫХ проектах
Дело не в сложности. ООП применимо, если вы можете сформулировать вашу задачу ТОЛЬКО в терминах объектов. Если нет, то ООП не применимо, т.к происходит смешение парадигм, что плохо.Прикол в том, что в реальном мире не существует задач, которые можно реализовать только с применением ООП.
ООП не самодостаточен - и без базы из "процедурного программирования" существовать не может.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550623
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модAddxПреимущество ООП проявляется в СЛОЖНЫХ проектах
Дело не в сложности. ООП применимо, если вы можете сформулировать вашу задачу ТОЛЬКО в терминах объектов. Если нет, то ООП не применимо, т.к происходит смешение парадигм, что плохо.

В жизни всегда происходит "смешение парадигм". Ничего плохого тут не вижу. Вот, к примеру, у меня сетевая игра под веб-браузер. Есть тут место ООП? А если не под веб-браузер? Задачи интересны только студентам и теоретикам, практикам интересны проекты.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550628
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mvПрикол в том, что в реальном мире не существует задач, которые можно реализовать только с применением ООП.
Была одна, ради котрой ООП и придумали - оконный интерфейс. Одноразовая технология.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550633
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

не вижу никакого прикола. Вижу непонимание концепции.
И, кстати, поясните Ваше отношение к ООП, и в частности к его реализации в С# (VB.NET).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550636
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AddxВ жизни всегда происходит "смешение парадигм". Ничего плохого тут не вижу.
Это не просто плохо, это очень плохо. Разрушается структура проекта. Этож очевидно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550709
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxsphinx_mv,

не вижу никакого прикола. Вижу непонимание концепции.Если концепцию "не понимают" и гораздо большие "зубры", чем я, очевидно, с концепцией... как бы по-мягче выразиться... не так, чтобы все в порядке...
И чем отличаются ручка.писать(бумага, текст) и почему бы не бумага.писать(ручка,текст) или текст.писать(ручка, бумага) от писать(ручка, бумага, текст) - ни один ООП-програмист внятно не расскажет.
AddxИ, кстати, поясните Ваше отношение к ООП,А чего его "пояснять"?
Сферический конь в вакууме оно и есть - в реальном мире и практически не встречается...
Addx и в частности к его реализации в С# (VB.NET).Вы хотите поговорить про трюки с прямым нарушением принципов ООП при использовании reflection? И это касается, кстати, не только C#/VB.NET...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550711
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvВо-вторых, как раз на большом проекте ООП совершенно теряется "как класс" - физически размывается банальным процедурым подходом при реализации функционала приложения...
Большой проект трудно загнать под "общий знаменатель". Там всегда будет скриптинг, SQL, раличные языки разработки
и прочие DSL. А ООП-шность сегодня скорее больше связана с образом мышления. Это клиповое. Презентационное.
Рекламное. Маркетинговое.

Бизнеса к слову подхватывают ООП-шную терминологию "на ура" и даже пишут в ТЗ и дефектах громкие фразочки
в духе ООП где путают понятия (переворачивают класс и объект, интерфейс путают с реализацией e.t.c) и навязывают
разработчикам подобную "клиповость" сознания.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550755
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучшей демонстрацией ООП может служить организация вооруженных сил. Когда возникают трудности с письмом и ручкой я всегда обращаюсь к аналогиям из области армии. Кто кому приказывает, кто что делает.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550805
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманЛучшей демонстрацией ООП может служить организация вооруженных сил. Когда возникают трудности с письмом и ручкой я всегда обращаюсь к аналогиям из области армии.В смысле применимости многословных ООПшных абстракций для армии, действующей в боевых условиях? :)
Факт! Тут возникнут уже не только "трудности с письмом", но и с оперативностью отдачи, точностью и скоростью выполнения приказов...
ЛагманКто кому приказывает, кто что делает.А еще кто кого куда и как посылает...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550813
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvручка.писать(бумага, текст) и почему бы не бумага.писать(ручка,текст) или текст.писать(ручка, бумага) от писать(ручка, бумага, текст)

Код: plaintext
1.
2.
3.
писатель.писать(ручка, бумага, текст);
неОченьПисатель.писать(ручка, бумага, текст);
совсемНеПисатель.писать(ручка, бумага, текст);

ну или даже (SmallTalk | Objective-C):
Код: plaintext
1.
2.
3.
[писатель писать:текст сПомощью:ручка по:бумага];
[неОченьПисатель писать:текст сПомощью:ручка по:бумага];
[совсемНеПисатель писать:текст сПомощью:ручка по:бумага];
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550814
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример с Армией - ниочём. Тут можно "натянуть" и иерархию и месседжинг, и теорию
управления и инфо-безопасность и много чего но ООП будет весьма далеко. Весьма
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550820
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,

Ну смотрите, если Вы - Гарри Поттер, то у вас текст пишет себя (даже без ручки).
А если Вы полковник (завтра на парад, на белом коне), то у вас пишет рядовой-писарь Иванов (, или Гарри Поттер), полковнику не важно. Тогда у рядового должен быть метод писать(), писатьРучкой(), писатьРучкой(ручка которую дали). В методе писать Гарри Поттер и рядовой могут делать разные вещи. В методе писать ручкой, наверное, более похожие, главное чтоб той же ручкой.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550823
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Пример с армией хорош тем, что в армии есть обязанности - действия, и предметы - данные, а так же такое понятие, как "ответственность".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550861
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedИ? О чем спич? Хочешь сказать, что ты не умеешь расширять С

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


Аргументы есть? Если вы не понимаете разницы между AST и текстом то делать ваши eDSL на C это все равно что затачивать молоток без напильника. Рекомендую доучиться.

Способность человека создавать себе орудие труда - это основное его отличие от животных.

Умные люди берут нож и затачивают его, вместо того, чтобы затачивать молоток.

Я за то, чтобы сначала посмотреть на готовые молотки и дорабатывать только если есть необходимость?
А кто-то говорил про то, что не нужно сначала смотреть на другие?
И не дорабатывать, а разрабатывать изначально новые, зачастую принципиально.


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

Даже тут ты демонстрируешь эдакое тшедушие


Мне просто жалко времени на заточку молотка, а затачивать зажигалку не рекомендую и вам :)

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


Опять ни одного аргумента по делу.


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

Опять вы не поняли :). Он же создан без учета ваших задач => надо его переписать с нуля.

Почти никто так не делает, на самом деле. Есть только робкие попытки - к примеру проект HipHop (HHVM).

C++ также как и упомянутый Objective С так начинался, насколько я помню. Также у того же хаскеля есть опция для генерации plain c, насколько я помню.

1. Имеено. Коллекции в куче - это еще одно феерически глупое заблуждение, в силу своей универсальности - как раз принцип забивания микроскопом гвоздей (для большинства задач куча как раз и не требуется, а преаллоцированные массивы фиксированной длины, особенно краткосрочные для веб задач - покрывают большинство потребностей).


Во-первых, вы не поняли - мысль не том, чтобы все пихать в кучу, а чтобы абстрагироваться от способа хранения вообще.
Во-вторых, вы просто не видите, других миров разработки ПО кроме вашего (да и в вашем мире есть вспосогательные задачи не требующие очень большой производительности).
В-третьих, в нормальном языке можно абстрагировать различия в compile time. Но для этого надо понимать разницу между AST и текстом.

Это как швейцарский нож против мачете.


Или смартфон против читалки, ноутбука, телефона и зеркалки. Все по отдельности конечно эффективнее, но везде не потаскаешь :) и дорого стоит.

each и all это слова синонимы. Никаких традиций нет, нужно просто имена дать разные.


Синонимы не отражают суть разницы между макросами => плохое наименование.

Такое ощущение, что тебе очень трудно придумать сначала задачу


Да задача простая - представьте себе генератор документации который собирает данные из различных источников (исходный код, wiki страницы и прочее). Представьте себе что надо форматировать списки в HTML. Указанный код и абстракция перечислений позволяет дописать специфику форматирования в одном месте.


Абстрактное мышление - это заблуждение. В мире существует лишь конкретика и обобщение (выделение общего из двух частных).
А абстракции - это как раз попытка найти нечто эдакое, а потом придумать ему применение. Это смешно по сути.


Загляните сначала в словарь прежде чем применять слова. Абстракция по сути и есть обобщение.



Отлично! Вот и давай сравним с

В читабельности,


y = getWords(x) - понятно что аргумент, что результат

количестве строк,


одно и тоже но символов меньше и не требует декларации результата.

эффективности (производительности),


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

Быстродействие в некоторых вариантов использование моей функции будет больше из за ленивости (чтобы получить первых 3 слова, не надо разбирать всю двухгигабайтную строку :))

Честно говоря, два эти примера выше настолько мощно отражают всю убогость индустрии C# и не только, что даже трудно что-то добавить еще.

Главное - не пытайтесь затачивать зажигалку.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550865
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ЛагманНу смотрите, если Вы - Гарри Поттер, то у вас текст пишет себя (даже без ручки).

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

Проведите анализ и где у вас будет вариабельность процесса письма, там и будет метод.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550877
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#мы моделируем существенные свойства реального мира

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

Пример с армией нужен не для моделирования мира, а для расстановки точек.

Всё вышеприведенное является моим личным суждением (тут для кое-кого не очевидно, что люди обычно свои суждения приводят, а не чужие)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550906
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Проведите анализ и где у вас будет вариабельность процесса письма, там и будет метод.

Как вариант — «альтернативные» ОО-системы с мультиметодами.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550907
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvAddxsphinx_mv,

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


Есть такое понятие как контекст выполнения :) Вот контекст какого объекта нас интересует, в контексте того объекта и вызывается действие.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
class Pen{
  public __construct(){bla-bla-bla}
  public function write($text, $paper){
    if(!$paper->write($text)) return false;
    //тут изменение свойств ручки
  }
}

class Paper{
  public __construct(){bla-bla-bla}
  public function write($text){
    //тут изменение свойств бумаги
  }
}



То есть тут всё как в речи... Есть такое понятие "возвратное действие". Думаю все знают что это описание действия не нуждающееся в определении субъекта выполняющего само действие (то есть нас не интересует кто делает, нас интересует что делает и над чем)... К примеру "машинист закрывает двери" и "двери закрываются [машинистом]". Как видим первое предложение явно определяет субъект - "машинист", второе же его предполагает, или определяет во второстепенной роли (то есть намекая что он нас не интересует). Однако предложение "Машинист закрывает" не имеет смысла вообще...

Теперь то же с бумагой и ручкой: "Ручка пишет на бумаге", "бумага исписывается [ручкой]". Как и в предыдущем примере "ручка пишет" существовать не может, так как не имеет смысла.
Вот связка из этих двух, имеющих смысл, методов и описана выше.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550909
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
ЛагманМоделировать свойства реального мира - первая ошибка ООП дизайнеров.


А как делать без ошибок и откуда берутся свойства?

Пример с армией нужен не для моделирования мира, а для расстановки точек.


Каких точек?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550910
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманsphinx_mv,

Ну смотрите, если Вы - Гарри Поттер, то у вас текст пишет себя (даже без ручки).
А если Вы полковник (завтра на парад, на белом коне), то у вас пишет рядовой-писарь Иванов (, или Гарри Поттер), полковнику не важно. Тогда у рядового должен быть метод писать(), писатьРучкой(), писатьРучкой(ручка которую дали). В методе писать Гарри Поттер и рядовой могут делать разные вещи. В методе писать ручкой, наверное, более похожие, главное чтоб той же ручкой.
Почему Ваш генерал, который дослужился до "больших звезд" так и не научился писать?! Не порядок! Быстро научить!
Если генерал сидит на лошади, то лошадь.седло.генерал.пишет("всякую ерунду") - это нормально?
Кстати, что делать в случае, когда генерал не сидит в седле, да и лошадь расседлана?
Абстракции, будь они неладны...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550916
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedИ? О чем спич? Хочешь сказать, что ты не умеешь расширять С

Перечитайте пост на который вы отвечаете - там все написано.
Там написано про убогость и нерасширяемость С. Потому и спрашиваю, откда выводы про убогость и нерасширяемость?
Не умеем расширять?


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


Аргументы есть? Если вы не понимаете разницы между AST и текстом то делать ваши eDSL на C

Аргументы есть, и самоидентификацией у меня тоже все ок. И причем тут AST (abstract syntax tree) к Embedded DSL?
Или ты всерьез считаешь, что для описания моделей любой степени сложности не достаточно обычных процедурных вызовов вида
VSO - verb(subject, object)?

Забавно, да.


F#это все равно что затачивать молоток без напильника. Рекомендую доучиться.
Затачивать молоток напильником? Интересный ход мыслей.
У вас в школе уроков труда вообще не было, учились вышивать у подгруппе девочек вместо освоения молотков?
Или о чем ты сейчас? В какой галактике молотки напильниками обрабатывают?


F#Способность человека создавать себе орудие труда - это основное его отличие от животных.
Умные люди берут нож и затачивают его, вместо того, чтобы затачивать молоток.
Ну ты у нас известный знаток затачивания молотков, как мы поняли, да ;)

F# Я за то, чтобы сначала посмотреть на готовые молотки и дорабатывать только если есть необходимость?
А кто-то говорил про то, что не нужно сначала смотреть на другие?
И не дорабатывать, а разрабатывать изначально новые, зачастую принципиально.

Это глупо, если можно доработать готовый.
Да ты что? Ну ок, возьми доработай кувалду до функционала микроскопа. Или наоборот. А я на тебя посмотрю, ага. И на результат твоих потуг.

Реально доставляешь, и, кстати, многое становится понятно в причинах настолько убогого состояния отрасли (F# и не только).

F#Да любая задача - от баз данных (к примеру заблуждение века - SQL), представление моделей (NHibernate), LINQ и далее.
Все это настолько убогое и безумное, что просто диву даешься, как люди продолжают этим пользоваться, особенно в высоконагруженных системах.


Опять ни одного аргумента по делу.
А, ты просто не в теме даже NoSQL. Ну ок, бывает и такое, чего уж там.


F#С это просто макроассемблер, не более того. И с этими задачами он на удивление хорошо справляется, хотя мог бы кое где и лучше. Но в текущих реалиях это просто средство трансляции низкоуровневого кода в машинный код с оптимизациями - и задача более менее решена человечеством.

Опять вы не поняли :). Он же создан без учета ваших задач => надо его переписать с нуля.
Это твое мнение. А мое мнение - С отлично решает именно те задачи, для которых он проектировался и для которых я его использую - трансляция с унифицированного и единого макро-ассемблера в машинный код, где конкретная машина и операционная система - величины произвольные. Он умеет делать только это, и делает это чертовски хорошо - лучше все равно ничего нет.

F#Почти никто так не делает, на самом деле. Есть только робкие попытки - к примеру проект HipHop (HHVM).
C++ также как и упомянутый Objective С так начинался, насколько я помню. Также у того же хаскеля есть опция для генерации plain c, насколько я помню.
И?

Многие этим пользуются? Насколько эффекивен этот генерируемый код?

Кстати, вопрос немного не в тему (лень копать). Там строки какие - которые zero-ended или паскалевидные, вида { length, pointer_to_data} ?

F#1. Имеено. Коллекции в куче - это еще одно феерически глупое заблуждение, в силу своей универсальности - как раз принцип забивания микроскопом гвоздей (для большинства задач куча как раз и не требуется, а преаллоцированные массивы фиксированной длины, особенно краткосрочные для веб задач - покрывают большинство потребностей).


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

И зачем это делать? (обливаясь слезами). Кто вообще такую задачу ставит и с какой целью?

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

F#В-третьих, в нормальном языке можно абстрагировать различия в compile time. Но для этого надо понимать разницу между AST и текстом.
Слишком заумно. Абстрагировать отличия в compile time. Не, извини, даже с пятого захода я не втыкнул в столь глубокую мысль.



F#Это как швейцарский нож против мачете.


Или смартфон против читалки, ноутбука, телефона и зеркалки. Все по отдельности конечно эффективнее, но везде не потаскаешь :) и дорого стоит.
Откровенное вранье и спекуляция. Всем известно, что профессионал используюет специализированное - фотографы таскают зеркалку, музыканты лабают на гитарах, а не на айпаде, а инженеры считают свои CAD/CAE модели на мегагробах с кучей ксеонов-firegl на борту, а не айфончиках.

Поздравляю, короче, господин соврамши.

F#each и all это слова синонимы. Никаких традиций нет, нужно просто имена дать разные.

Синонимы не отражают суть разницы между макросами => плохое наименование.
Конкретно эти мне и самому не нравятся, но пока вот так.


F#Такое ощущение, что тебе очень трудно придумать сначала задачу


Да задача простая - представьте себе генератор документации который собирает данные из различных источников (исходный код, wiki страницы и прочее). Представьте себе что надо форматировать списки в HTML. Указанный код и абстракция перечислений позволяет дописать специфику форматирования в одном месте.
Это не задача, а бред. Открой для себя doxygen, эта задача давно уже решена без всяких ото черезжопий с reflection

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

F#Загляните сначала в словарь прежде чем применять слова. Абстракция по сути и есть обобщение.
Увы нет. Между абстракцией и обобщением есть вполне четкая разница, хотя на 95% это слова синонимы.
Вообще говоря это сильно контексто-зависимо, т.е. основано на местных понятийных аппаратах, потому этот вопрос предлагаю опустить, во избежание перегрева мозга у окружающих.


F#Отлично! Вот и давай сравним с

В читабельности,


y = getWords(x) - понятно что аргумент, что результат
VSO - verb(subject,object) - глагол, деятель, предмет обратботки
Обрабатывать(Васе,Деталь)

Если больше одного subject, то все равно первый является результатом.

Собрать(Васе, Автомобиль, Деталь1, Деталь2, Деталь3,...)

Изучи уже семантические конструкции естественного языка, чисто чтоб весь мир функциями вида y=f(x) не мерещился.


Остальное я твое скипнул, там уже совсем пошел баян и угар.


Одно я так и не понял - что ты хотел сказать. Я вот пытаюсь донести простую мысль - существующие программные инструменты - говно, ибо наследование и ООП - путь в никуда, ибо это лишь накопление глупости и неверных решений, более 10000 классов в C#/.NET только доказывают это.

А ты что хочешь доказать?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550927
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvЛагманsphinx_mv,

Ну смотрите, если Вы - Гарри Поттер, то у вас текст пишет себя (даже без ручки).
А если Вы полковник (завтра на парад, на белом коне), то у вас пишет рядовой-писарь Иванов (, или Гарри Поттер), полковнику не важно. Тогда у рядового должен быть метод писать(), писатьРучкой(), писатьРучкой(ручка которую дали). В методе писать Гарри Поттер и рядовой могут делать разные вещи. В методе писать ручкой, наверное, более похожие, главное чтоб той же ручкой.
Почему Ваш генерал, который дослужился до "больших звезд" так и не научился писать?! Не порядок! Быстро научить!
Если генерал сидит на лошади, то лошадь.седло.генерал.пишет("всякую ерунду") - это нормально?
Кстати, что делать в случае, когда генерал не сидит в седле, да и лошадь расседлана?
Абстракции, будь они неладны...

А Вас интересует именно генерал? Или Генерал сидящий в седле на лошади?
Если первое - то у Вас должен быть прямой указатель на генерала... Если второе - то логично выкинуть исключение (дали генералу с седле на лошади задание написать устав части, а оказалось что лошадей в части нету ).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550930
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,

F#А как делать без ошибок и откуда берутся свойства?

Мосх включать, не бояться переделывать.


F#Каких точек?

Для меня это удобная аналогия при проектировании, помогает понять ответственность объектов и т.д.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550935
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvПочему Ваш генерал, который дослужился до "больших звезд" так и не научился писать?! Не порядок! Быстро научить!
Если генерал сидит на лошади, то лошадь.седло.генерал.пишет("всякую ерунду") - это нормально?
Кстати, что делать в случае, когда генерал не сидит в седле, да и лошадь расседлана?
Абстракции, будь они неладны..
Генерал в теме, все в седло
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550958
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрsphinx_mvпропущено...
А Вас интересует именно генерал? Или Генерал сидящий в седле на лошади?
Если первое - то у Вас должен быть прямой указатель на генерала... Ну, по большому счету, это может быть и не генерал вовсе... :)
Тем не менее, конструкция описанного вида в принципе может жить, хоть и бредово выглядит...
ПрограмёрЕсли второе - то логично выкинуть исключениеЛогично... Но к парадигме это уже слегка не имеет отношения...
Програмёр(дали генералу с седле на лошади задание написать устав части, а оказалось что лошадей в части нету ).Ага... И часть давно расформирована...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550966
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvАга... И часть давно расформирована...
тогда вопрос к сборщику мусора, почему генерала не собрал
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550972
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманsphinx_mvПочему Ваш генерал, который дослужился до "больших звезд" так и не научился писать?! Не порядок! Быстро научить!
Если генерал сидит на лошади, то лошадь.седло.генерал.пишет("всякую ерунду") - это нормально?
Кстати, что делать в случае, когда генерал не сидит в седле, да и лошадь расседлана?
Абстракции, будь они неладны..
Генерал в теме, все в седлоГлавное, чтобы седло было в курсе, что в нем должно сидеть "много" (>1) генералов...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550973
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvПрограмёрпропущено...

А Вас интересует именно генерал? Или Генерал сидящий в седле на лошади?
Если первое - то у Вас должен быть прямой указатель на генерала... Ну, по большому счету, это может быть и не генерал вовсе... :)
Тем не менее, конструкция описанного вида в принципе может жить, хоть и бредово выглядит...
ПрограмёрЕсли второе - то логично выкинуть исключениеЛогично... Но к парадигме это уже слегка не имеет отношения...

Исключения не имеют отношения к ООП, но и не противоречит его принципам. Хотя в принципе, при отсутствии седла под генералом система сама позаботится об исключениях.

А ещё лучше у лошадки реализовать методы "проверить наличие седла и генерала в нём" и "сгонять за генералом [и седлом]"
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550976
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
class General{


Уже звучит фальшиво. Как говорил старый пьяница Фаулер - "Этот код с душком....". И как
говаривал кэп Врунгель - "как вы яхту назовёте..."
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550977
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лагманsphinx_mvАга... И часть давно расформирована...
тогда вопрос к сборщику мусора, почему генерала не собралДык, эта... Сборщик мусора прав: штаб армии еще ссылку на генерала удерживает... Тут больше проблема с синхронизацией потоков...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550980
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed , культур-мультур надо соблюдать, ты похоже из той категории про которую анекдот: "Интернет взрастил людей которые искренне не понимают как можно получить в морду за базар". Фильтруй базар.

По теме: для меня ООП это возможность повторного использования кода. Кто-то скажет что функцию тоже можно повторно вызвать, но я не хочу заморачиваться передачей какого-то окружения этой функции. Гораздо проще создать объект "файл", открыть им файл и дальше вызывать методы ЧитатьСтроку() и т.п. вместо функции ЧитатьСтрокуФайла(Хэндл файла). Вроде фигня, но если учесть что надо закрыть файл и это достаточно прописать в деструкторе при ООП (дальше само закроется), а при процедурном надо постоянно об этом помнить, то восе не фигня получается.

Не нашел кем было сказано что ООП идеально подходит под оконный интерфейс, абсолютно согласен, в первую очередь использую именно для формирования однотипных окон с одинаковым поведением. Еще подходит под управление внешними (для программы) объектами: например файлами, как выше писал: открыл, хэндл потерял, а файл так и висит открытый, другое дело если в деструкторе прописал закрытие. То же самое касается любых изначально абстрактных вещей, например ассоциативный массив, он изначально абстрактен и таких массивов может потребоваться любое количество.
Для реализации полезного функционала (который решает конкретные задачи пользователя) ООП бесполезен, т.к. решается конкретная задача и код ее решения требуется всего в одном экземпляре, тут нет никакого повторного использования. Поэтому тут можно писать как себе удобнее.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38550989
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрА ещё лучше у лошадки реализовать методы "проверить наличие седла и генерала в нём" и "сгонять за генералом [и седлом]" Картина маслом: лошадь как фабрика генералов - мало того, что сама себя седлает, так еще и генералов производит...
Да... неисповедимы пути...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551013
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T socimed , культур-мультур надо соблюдать, ты похоже из той категории про которую анекдот: "Интернет взрастил людей которые искренне не понимают как можно получить в морду за базар". Фильтруй базар.
А ты кто такой, чтоб читать морали?

Dima TПо теме: для меня ... Кто-то скажет ..... , но я не хочу....... Гораздо проще ..... Вроде фигня...... надо постоянно об этом помнить, то восе не фигня получается.

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

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

В твоем мессадже - увы, 0% пользы, 0% свежей мысли.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551022
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvПрограмёрА ещё лучше у лошадки реализовать методы "проверить наличие седла и генерала в нём" и "сгонять за генералом [и седлом]" Картина маслом: лошадь как фабрика генералов - мало того, что сама себя седлает, так еще и генералов производит...
Да... неисповедимы пути...

Нееет... Фабрика генералов - это штаб :) А лошадка просто за ними бегает Она их не генерит... а просто приносит... Если в штабе генерала нету, значит вернуть false или бросить исключение (в случае если без генерала никак нельзя) :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551027
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvПрограмёрА ещё лучше у лошадки реализовать методы "проверить наличие седла и генерала в нём" и "сгонять за генералом [и седлом]" Картина маслом: лошадь как фабрика генералов - мало того, что сама себя седлает, так еще и генералов производит...
Да... неисповедимы пути...

Не производит, а казнит.

Не забываем про .Execute()
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551029
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И при этом и генерал и лошадь должны быть производными от "теплокровных".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551036
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрsphinx_mvпропущено...
Картина маслом: лошадь как фабрика генералов - мало того, что сама себя седлает, так еще и генералов производит...
Да... неисповедимы пути...

Нееет... Фабрика генералов - это штаб :) А лошадка просто за ними бегает Она их не генерит... а просто приносит... Если в штабе генерала нету, значит вернуть false или бросить исключение (в случае если без генерала никак нельзя) :)


Код: java
1.
2.
3.
4.
5.
Не было гвоздя - "брось новое ПодковоГвоздьНеНайденИсключение("гвоздей нет!")

Не было подковы - "ЛошадеДоктор.получитьМестнуюКопию().получитьЛошадеДиспетчер().давайделай() 

Лошадь захромала - СкаковойКлуб.получитьСсписокОповещенияПодписчиковНаездников().получитьРассылателя().вперед(новое СообщениеРассылка(Конюшня.получитьНулевойЛошадеОбразец())) 




Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
For the lack of a war,
    new ServiceExecutionJoinPoint(
      DistributedQueryAnalyzer.forwardQueryResult(
        NotificationSchemaManager.getAbstractSchemaMapper(
          new PublishSubscribeNotificationSchema()).getSchemaProxy().
            executePublishSubscribeQueryPlan(
              NotificationSchema.ALERT,
              new NotificationSchemaPriority(SchemaPriority.MAX_PRIORITY),
              new PublisherMessage(MessageFactory.getAbstractMessage(
                MessageType.WRITTEN,
                new MessageTransport(MessageTransportType.WOUNDED_SURVIVOR),
                new MessageSessionDestination(
                  DestinationManager.getNullDestinationForQueryPlan()))),
              DistributedWarMachine.getPartyRoleManager().getRegisteredParties(
                PartyRoleManager.PARTY_KING ||
                PartyRoleManager.PARTY_GENERAL ||
                PartyRoleManager.PARTY_AMBASSADOR)).getQueryResult(),
        PriorityMessageDispatcher.getPriorityDispatchInstance())).
      waitForService();
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551046
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

никто не утверждает, что с помошью ООП можно писать только идеальный код)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551049
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНет, не выиграет. Потому что массив - это тоже O(1), только ему для доступа к элементу не надо хеш функцию считать, а можно ходить напрямую по указателю-индексу.

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

сынок, все таки computer sciеnce ты не знаешь.

hash table всегда O(1) на всех! операциях.
dynamic array почти всегда O(n). да поиск можно сделать O(Lgn) и тoлько.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551050
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedА ты кто такой, чтоб читать морали?
Подрастешь - поймешь.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551059
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsiksocimedНет, не выиграет. Потому что массив - это тоже O(1), только ему для доступа к элементу не надо хеш функцию считать, а можно ходить напрямую по указателю-индексу.

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

сынок, все таки computer sciеnce ты не знаешь.

hash table всегда O(1) на всех! операциях.
dynamic array почти всегда O(n). да поиск можно сделать O(Lgn) и тoлько.

Ты всеръез считаешь что


Код: plaintext
1.
2.
3.
4.
5.
static int a[N];

int do_something(size_t idx) {
    return a[idx];
}



имеет сложность O(n)? Что ты курил?


Lepsikда поиск можно сделать O(Lgn) и тoлько.

Я так понимаю хранить как ссылку на элемент вместо строки его числовой индекс тебе не позволяет религия?
И какой тебе поиск там нужен, на 5..100 элементах?


А все что выше 100 элементов - это уже базы данных (в т.ч. inmemory realtime), там не коллекциями объектов работать надо, в любом случае - перепроектровать приложение, ваш КО.


Поражение мозгом ООП-истов в очередной раз повергает в легкий культорологический шок (для 32 максимум элементов сущности СтрокаДокумента - полюбасу нужен или двоичный поиск или хешмапа, и никак иначе, этож ясно всем, ибо динамика - количество строк неизвестно, а вдруг клиент закажет 100500 разных позиций?).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551065
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TsocimedА ты кто такой, чтоб читать морали?
Подрастешь - поймешь.

Это ты попытался сказать нечто умное на этот раз?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551067
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot socimed]Lepsikпропущено...


сынок, все таки computer sciеnce ты не знаешь.

hash table всегда O(1) на всех! операциях.
Кстати, какая милая укатайка. А что будет если ты туда вставишь 100500 строк с коллизией ключа?
Вообще понимание что такое хеш и как он работает имеется, или ты очередной подросток, который не читал даже Вирта и Ахо-Ульмана?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551071
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedКстати, какая милая укатайка. А что будет если ты туда вставишь 100500 строк с коллизией ключа?
Вообще понимание что такое хеш и как он работает имеется, или ты очередной подросток, который не читал даже Вирта и Ахо-Ульмана?

+1

Тут лично писал про худший случай в O(n) и это непонятное утверждение "в среднем O(1)"... Ощущение, что иногда бывает меньше Возникает вопрос как?!
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551094
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TГораздо проще создать объект "файл", открыть им файл и дальше вызывать методы ЧитатьСтроку() и т.п. вместо функции ЧитатьСтрокуФайла(Хэндл файла). Вроде фигня, но если учесть что надо закрыть файл и это достаточно прописать в деструкторе при ООП (дальше само закроется), а при процедурном надо постоянно об этом помнить, то восе не фигня получается.

Еще подходит под управление внешними (для программы) объектами: например файлами, как выше писал: открыл, хэндл потерял, а файл так и висит открытый, другое дело если в деструкторе прописал закрытие.

Повторяю еще раз: деструкторы никакого отношения к ООП не имеют.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551127
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрОднако любопытство то мучает теперь
ООП - это определённое ограничение множества всех возможных решений задачи. То есть из всех возможных программ, решающих задачу, некоторые являются объектно-ориентированными, некоторые - не являются. Таким образом, уже очевидно, что ООП не может повышать производительность относительно лучшего возможного (произвольного) решения.

Всегда ли лучшее по производительности решение является объектно-ориентированным? Да нет, ничуть. Здесь стоит упомянуть о том, что любое процедурное решение можно сделать формально объектным (скажем, сделав процедуры методами одного глобального объекта), равно как и наоборот, ООП-программу можно записать в процедурном синтаксисе. Если не говорить о таких извращениях, а вести речь о "по сути ООП" и "по сути процедурных" программах, то зачастую рост производительности достигается как раз отказом от "объектности".

Наконец, стоит упомянуть о том, что многие реализации ООП и его фич имеют заведомые штрафы к производительности относительно эквивалентной процедурной программы. Скажем, довольно частая идея "объекты автоматически размещаются в индивидуально выделяемой динамической памяти"...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551243
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЗдесь стоит упомянуть о том, что любое процедурное решение можно сделать формально объектным (скажем, сделав процедуры методами одного глобального объекта)В этом месте напрашиваются еще и статические методы...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551254
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedТам написано про убогость и нерасширяемость С. Потому и спрашиваю, откда выводы про убогость и нерасширяемость?


Опять таки написано - если мы создаем свой препроцессор с нуля значит существующий нерасширяем (перечитайте дискуссию начиная с реплики про Objective С)

Аргументы есть, и самоидентификацией у меня тоже все ок. И причем тут AST (abstract syntax tree) к Embedded DSL?


Если вы этого не понимаете, как вы вообще можете комментировать что-то про разницу между макросами Nemerle и C


Или ты всерьез считаешь, что для описания моделей любой степени сложности не достаточно обычных процедурных вызовов вида
VSO - verb(subject, object)?


Чтобы достигнуть той же степени компактности описания какая есть в ООП надо будет уметь как-то абстрагировать verb, subject и object. В процедурных языках это приведет к действию 10 правила Гринспуна в объектном варианте.

Затачивать молоток напильником? Интересный ход мыслей.


А вы каким бы образом действовали если бы вам надо было именно заточить молотком.

В какой галактике молотки напильниками обрабатывают?


А как их обычно затачивают ?

Да ты что? Ну ок, возьми доработай кувалду до функционала микроскопа. Или наоборот. А я на тебя посмотрю, ага. И на результат твоих потуг.


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

Реально доставляешь


Утомление-то прошло?

А, ты просто не в теме даже NoSQL. Ну ок, бывает и такое, чего уж там.


Я писал, что вы не привели ни одного аргумента. В опровержение этого вы опять не привели ни одного аргумента :).

Опять вы не поняли :). Он же создан без учета ваших задач => надо его переписать с нуля.
Это твое мнение.


Это ваше мнение, только расширенное на сам C. Вы уж там определитесь с какого уровня абстракции эти рассуждения про создание языка начинать - достаточно ли нам переписать foreach из нормального языка в 10 вариантах под разные структуры данных. Или надо задействовать ПЛИС для разбора строчки.

И?

Многие этим пользуются? Насколько эффекивен этот генерируемый код?


Если вы про Хаскель, то я не в курсе статистики - насколько я понял в основном для интеграции с другим кодом.

Кстати, вопрос немного не в тему (лень копать). Там строки какие - которые zero-ended или паскалевидные, вида { length, pointer_to_data} ?


Если про Хаскель, насколько я помню, там есть два вида строк - медленные (типа связанный список символов + ленивость) и типа сишных. Но могу и соврать.

Хаскель - язык академический :)

И зачем это делать? (обливаясь слезами). Кто вообще такую задачу ставит и с какой целью?


Чтобы поменьше кода писать.

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


Зачем они если есть C можно руками написать препроцессор?

Слишком заумно. Абстрагировать отличия в compile time. Не, извини, даже с пятого захода я не втыкнул в столь глубокую мысль.


Это я должен извиниться что забавляюсь таким образом да еще и публично :). Все очень просто - чтобы поменьше кода писать и поменьше копипастить. Надо ли объяснять зачем это нужно?

F#Или смартфон против читалки, ноутбука, телефона и зеркалки. Все по отдельности конечно эффективнее, но везде не потаскаешь :) и дорого стоит.
Откровенное вранье и спекуляция.


Что именно - то, что все по отдельности эффективнее или что все вместе с собой не потаскаешь?

Синонимы не отражают суть разницы между макросами => плохое наименование.
Конкретно эти мне и самому не нравятся, но пока вот так.
[/quot]

назовите один из них FOREACH а второй FOREACH_KEY

Это не задача, а бред. Открой для себя doxygen, эта задача давно уже решена без всяких ото черезжопий с reflection

Большое спасибо за пример использования ООП - ведь можете если хотите!

Reflection там действительно нет, по крайней мере в питоновском модуле чтобы не требовать питона, наверное, но угадайте, как устроен pydoc (подсказка: было бы тупо не пользоваться готовым парсером, а повтроить его код).

Опять и тут ты сел в лужу


Зато вы спасли ситуацию.

y = getWords(x) - понятно что аргумент, что результат

VSO - verb(subject,object) - глагол, деятель, предмет обратботки
Обрабатывать(Васе,Деталь)

Если больше одного subject, то все равно первый является результатом.


У меня это гарантируется компилятором, у вас - всего лишь нотацией. Ваш вариант требует продублировать описание результата при декларации переменной.

Собрать(Васе, Автомобиль, Деталь1, Деталь2, Деталь3,...)

Изучи уже семантические конструкции естественного языка, чисто чтоб весь мир функциями вида y=f(x) не мерещился.


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


Остальное я твое скипнул, там уже совсем пошел баян и угар.


отсюда

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


Одно я так и не понял - что ты хотел сказать.


Вы и не хотели понять, а занимаетесь троллингом. Сейчас я присоединился к этой игре и, по поим меркам, выигрываю.

А ты что хочешь доказать?

Два утверждения:
1. Существуют такие задачи в которых применение ООП оправдано.
2. Вы либо троль либо весьма ограничены в своем технологическом кругозоре.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551262
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрФабрика генералов - это штаб :)академия - фабрика генералов, а в штабе у них - гнездо :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551303
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Два утверждения:
1. Существуют такие задачи в которых применение ООП оправдано.
2. Вы либо троль либо весьма ограничены в своем технологическом кругозоре.

1. Безусловно - тому-же Гради Бучу надо было кушать, чем не задача? Студентов надо чему-то учить - тоже задача. .NET надо продавать - тоже задача.
2. Я троль, и что в этом плохого? Ограничений у меня нет, я лет 20 кодировал в ООП, чтоб как раз осознать всю его ограниченность и убогость, благо теперь есть с чем сравнивать.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551313
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedТам написано про убогость и нерасширяемость С. Потому и спрашиваю, откда выводы про убогость и нерасширяемость?


Опять таки написано - если мы создаем свой препроцессор с нуля значит существующий нерасширяем (перечитайте дискуссию начиная с реплики про Objective С)

Это утверждение ложно. Даже стандартный нерасширяемый препроцессор можно заменить любым внешним препроцессором, M4 или даже самодельным, сам язык С от этого свою способность к расширению не потеряет.
Главное - чтоб в результате все компилировалось, ну и в IDE можно было поставить breakpoint.
Это все достигается.

А у авторов ObjectiveC была прогрессирующая болезнь под названием квадратная скобка мозга, это в другую клинику.

F#Если вы этого не понимаете, как вы вообще можете комментировать что-то про разницу между макросами Nemerle и C
Очень просто могу. Если я виду примеры на Nemerle и они ни разу не кажутся мне понятными, удобными, читабельными и полезными - то я имею полное право назвать рассматриваемое бредом. Кто мне запретит?
F#
Или ты всерьез считаешь, что для описания моделей любой степени сложности не достаточно обычных процедурных вызовов вида
VSO - verb(subject, object)?


Чтобы достигнуть той же степени компактности описания какая есть в ООП надо будет уметь как-то абстрагировать verb, subject и object. В процедурных языках это приведет к действию 10 правила Гринспуна в объектном варианте.

Десятое правило ГринспенаЛюбая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.


Сей искрометный йумор остался без контекста и понимания, к чему ты его сказал. А так да, если ты хочешь сказать, что в C нет готовой прикладной библиотеки - то да, это так. Это его мегаплюс - ты всегда можешь заточить свою, а не ходить с запрессованным в мозг STL/Boost к примеру, со всеми их смехотворными заблуждениями.

Как по мне - так это мегаплюс, а не минус - возможность реализовать свой "Common Lisp", главное чтоб без засилья скобок и cadr-ов

F#Затачивать молоток напильником? Интересный ход мыслей.

А вы каким бы образом действовали если бы вам надо было именно заточить молотком.

Я бы начал от вопроса "А вообще нужно затачивать или можно отфрезеровать, или взять прессованную форму? А может просто купить у смежников или заказать в ремонтно-механическом?"

F#В какой галактике молотки напильниками обрабатывают?


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


Остальное отвечать уже просто лениво, там ты скатился или в примитивизм, или просто в демагогию, не переставая находиться в фазе типовых шаблонированных заблуждений, а они мало интересны, ибо вполне знакомы и так..
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551439
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedЭто утверждение ложно. Даже стандартный нерасширяемый препроцессор можно заменить любым внешним препроцессором, M4 или даже самодельным, сам язык С от этого свою способность к расширению не потеряет.


Ага расширяемость как у любого другого текстового языка :). Для которого можно написать препроцессор.


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


Никому нельзя запретить рассуждать о том, чего он не понимает. Особенно, если ему "кажется" или "не кажется". Для саморазвития посмотрите пожалуйста слово "аргументы" в словаре.

Как по мне - так это мегаплюс, а не минус - возможность реализовать свой "Common Lisp", главное чтоб без засилья скобок и cadr-ов


4580601

Я бы начал от вопроса "А вообще нужно затачивать


Я вообще уже какой раз ржу над вашей же фразой "вместо того, чтоб себе заточить инструмент типа Молоток и Зажигалка.". Неужели вы даже этого не поняли :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551441
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedВ твоем мессадже - увы, 0% пользы, 0% свежей мысли.
Ну мысль-то простая: ООП был создан для очень узкого класса задач. Для них он и полезен. Во только при выходе за рамки мразу возникают проблемы.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551492
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Я вообще уже какой раз ржу над вашей же фразой "вместо того, чтоб себе заточить инструмент типа Молоток и Зажигалка.". Неужели вы даже этого не поняли :)

Заточить - это не в значении обработать напильником, а в значении "приспособить под себя". И я нигде не говорил про затачивание молотков и зажигалок, не надо блистать своим искрометным ослоумием.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38551502
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Давайте спокойнее, товарищи. Без попыток оскорблений, даже завуалированых.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552837
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedЗаточить - это не в значении обработать напильником, а в значении "приспособить под себя".

Разумеется я понял что вы имели ввиду, только простебался над формой (мне кажется, как тролль вы начинающий или неуспешный так как не понимаете основ качественного троллинга). Я думал, что вы напишете эту фразу после первой попытке посмеяться над корявостью формулировки - но пришлось объяснять в лоб через десяток собщений :)

У этой вашей метафоры есть вторая корявость - молоток исключительно неудачный пример, так как его практически никто не модифицирует (приведите пример, когда в последний раз сталкивались с заточенным молотком, причем можете использовать любое значение слов "сталкивались" и "заточенным" на выбор).

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

Подводя итог, могу сказать, что:
Вы игнорируете или не понимаете часть аргументов

Часть аргументов отвергаете (см ранее ссылку на работу Беклемишева о женской логике)

На часть аргументов отвечаете повторением исходно посылки (- C расширяемый так как для него можно написать препроцессор; - Но препроцессор можно для любого языка, к тому же есть языки которые можно расширять без этого геморроя; - C расширяемый так как можно выкинуть стандартный препроцессор и написать для него свой - тут дальше можно спросить как вы будете писать препроцессор, если вы ответите что на том же C можно ответить цитатой "Это все равно что затачивать молоток при помощи другого молотка")

Таким образом обсуждать по существу с вами невозможно.

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

Упоминаемая двойная корявость в метафоре "заточки молотка"

Предложили сравнить быстродействие функций не описав реализацию

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

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

Давайте тогда я соглашусь для вида с вашей точкой зрения и вы раскажете, как и на чем вы пишете свои препроцессоры и для каких конкретно целей?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552935
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#как и на чем вы пишете свои препроцессоры и для каких конкретно целей?

Пишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы).
Т.е. подробности реализации убираются с целью оставить только DSL модели.

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

Пример подобного есть тут http://www.oracle.com/technetwork/developer-tools/jheadstart/overview/index.html

Вот тут даже картинки есть, наглядно показывающие превращение модельки в форму для пользователя:
http://www.oracle.com/technetwork/developer-tools/jheadstart/jhs11-overview-129401.pdf



А соглашаться со мной не надо, в 99.9999% это пагубно для неокрепших умов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552968
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
socimedПишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы).
Т.е. подробности реализации убираются с целью оставить только DSL модели.


То есть фактически вы используете XML написанный ручками в качестве синтаксиса для своего DSL? И XML разбираете и преобразовываете в C при помощи того же C?

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


Какого рода наследование?

Пример подобного есть тут


Посмотрю.

А соглашаться со мной не надо, в 99.9999% это пагубно для неокрепших умов.

Если вы не приводите своих аргументов и игнорируете мои - то для виду можно согласиться. Вот видите - я согласился и мы продвинулись в интересный оффтопик.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38552988
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема мертвая. Я посмотрел, ради интереса, кто тут пишет и отрицает ООП.
Простите, что перехожу на личности, но никаких оскорблений себе не позволяю.

socimed, 78,54% сообщений в категории "Просто треп"
Из оставшихся 44 большая часть в этой теме.
По сути дела, тоже просто треп, аргументы на уровне первой категории.

sphinx_mv,
тут все же по профессиональным темам посты.
Но. Большая часть сообщений в разделе WinForms, .Net Framework.
Это чистое ООП. Мыши плакали, кололись, но продолжали есть кактус?

Кстати, очень много программистов пишет под WinForms и Delphi, толком не понимая идеи ООП.
Это я ни про кого-то конкретно, если что. Сталкивался с одним таким человеком.
Он много писал на Delphi, но недавно рассказывал, что долго считал, что ООП - это для компонентов, кнопок, окон.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553008
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimed я лет 20 кодировал в ООП, чтоб как раз осознать всю его ограниченность и убогость
Неужели прямо с пеленок? Или может вы 50-летний дед, который всю жизнь потратил на ООП, и только к старости осознал как сильно ошибался?
а разгадка проста: перед нами фантазирующий школьник.
В следующий раз пиши "лет 10", чтобы так откровенно не палиться
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553011
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, кстати, тема от заголовка ушла очень далеко. Если по теме ответить, то применение объектов может дать где-то просадку по производительности, но это абсолютно не существенно. По сути вызов метода сводится к f(self, params). Не нужен self - используй статический метод. ООП - концепция, тут дело не в производительности, поиск узких мест и их оптимизация не является проблемой. Я бы тоже не согласился с ответом автором топика, и захотел бы более развернутого ответа. Но интервьюер должен направлять кандидата на нужные темы, а не требовать угадать, что он хочет услышать.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553047
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553056
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F2F4,
разумеется, я об этом и пишу.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553140
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
F2F4Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов.

А VMT? А инкапсуляция?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553153
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#socimedПишется на том-же С, модели описываются по упрощенным BNF (XML семантически подобным). Цели простые - обобщенное программирование (программы пишут другие программы).
Т.е. подробности реализации убираются с целью оставить только DSL модели.


То есть фактически вы используете XML написанный ручками в качестве синтаксиса для своего DSL? И XML разбираете и преобразовываете в C при помощи того же C?
Нет, я назвал - семантически подобный. Т.е. там в виде описаний то, что можно описать через XML.
А так форма представления более простая, C подобная (что-то вроде JSON), без всяких этих ваших натужных XML-овских тегов и атрибутов.


F#Модели реального мира описываются в одном месте, а весь остальной обвяз - от структур базы данных до интерфейса пользователя получаются генератором, с возможностью конечной доработки через "наследование".

Какого рода наследование?
Тебе генератор сделал web форму по шаблону. В нужных местах ты можешь ее дополнить вручную, просто заполнив include файлы нужным функционалом. К примеру есть блок валидации введенных данных - по-умолчанию он с модели тянет только признак - "Должно быть не пусто". А так ты можешь еще чего туда дописать, типо "дата рождения не должна быть в будущем и более 120 лет назад". Т.е. ты можешь унаследоваться от сгенерированного кода, расширить его функционал (или заменить), без потери возможности перегенерации того, от чего ты унаследовался, и так, чтоб оно твои дополнения не похерило (они-то все в отдельных файлах лежат, генерированное с самописным не пересекается на файлом уровне).

Ну и т.д.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553179
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#F2F4Addx, в процедурном программировании приходится тот же самый self передавать в явном виде, так что ООП по типу С++ не требует накладных расходов.

А VMT? А инкапсуляция?

Инкапсуляция - это скрытие доступа к данным. Это есть и так (в том-же C есть понятие static, к примеру, структуры можно объявлять и аллоцировать приватно, ну и т.д.)

VMT - это просто костыль, придуманный для усложнения вызовов процедур в угоду синтаксическому сахару, в общем случае он не нужен, бери и вызывай явно что там тебе нужно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553220
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#,
тут сравнивается просто само наличие объектов.
VMT без виртуальных методов не существует,
такой возможности в не ОО языках нет вообще.
При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности.
Для не виртуальных методов VMT не используется.
Про инкапсуляцию поясните.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553249
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
AddxF#,
тут сравнивается просто само наличие объектов.
VMT без виртуальных методов не существует,
такой возможности в не ОО языках нет вообще.


В не ОО языках во-первых, пишут код подставляя реализацию статически (типа, если мы точно знаем. что сюда может придти только triangle то вызываем triangle_draw).

Во-вторых, можно использовать if или case (см оконные процедуры в виндах)

В-третьих, можно сделать VMT ручками и управлять самостоятельно.

При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности.


Про возможности никто не спорит - спор о том, есть потери или нет.

Для не виртуальных методов VMT не используется.
Про инкапсуляцию поясните.

Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553251
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedVMT - это просто костыль, придуманный для усложнения вызовов процедур в угоду синтаксическому сахару, в общем случае он не нужен, бери и вызывай явно что там тебе нужно.
А про динамический полиморфизм ты разумеется не слышал. И для чего он нужен тоже не знаешь.

F#А VMT? А инкапсуляция?
виртуальные функции надо юзать только там, где нужен полиморфизм. В этих случаях все равно нет ничего быстрее.
Инкапсуляция в плюсах опять-таки только по необходимости + можно инлайнить.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553254
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxVMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще.
Чушь. Такая возможность называется "указатель на функцию" и в "не ОО языках" используется как минимум с семидесятых годов. Ну это если не считать ассемблера, в котором, наверняка, ещё гораздо раньше.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553265
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Очень просто - если мы обращаемся снаружи к полю объекта напрямую, то наш код получается зависит от реализации свойства. (И мы уже не можем безболезненно подменить поле методом). Если же обращаемся через метод, то есть накладные расходы (хотя не уверен, может, оптимизатор может быть натаскан на такие частный случаи и просто инлайнить то же обращение к полю - понятно только если оно в той же единице линковки)
Для этого как минимум придумали свойства, в которых как раз и можно безболезненно подменить поле методом.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553293
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
softwarerДля этого как минимум придумали свойства, в которых как раз и можно безболезненно подменить поле методом.

С сохранением бинарной совместимости? Сомневаюсь что это есть в C++ - не можете привести ссылку?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553307
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы тут злоупотебляем VMT. Как будто свет клином сошёлся...

А Роман Душкин в своей книге различает несколько полиморфизмов. Это о птичках кст.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553325
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#AddxF#,
тут сравнивается просто само наличие объектов.
VMT без виртуальных методов не существует,
такой возможности в не ОО языках нет вообще.


В не ОО языках во-первых, пишут код подставляя реализацию статически (типа, если мы точно знаем. что сюда может придти только triangle то вызываем triangle_draw).

Во-вторых, можно использовать if или case (см оконные процедуры в виндах)

В-третьих, можно сделать VMT ручками и управлять самостоятельно.

При этом есть некоторые потери, но они возникают не сами по себе, а как небольшая плата за определенные возможности.


Про возможности никто не спорит - спор о том, есть потери или нет.

Для не виртуальных методов VMT не используется.
Про инкапсуляцию поясните.

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

Реализовать самостоятельно можно все, что угодно. В конце концов компиляторы с поддержкой ООП тоже пишут на языках, в которых нет таких вещей. Все современные компиляторы с ООП обращаются напрямую к полю, тут просадки нет. Статически можно реализовать и в C++, а в С, например, действительно виртуальных методов и свойств нет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553337
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#С сохранением бинарной совместимости?
Нет (если я правильно понимаю, что Вы назвали бинарной совместимостью). И если перекомпиляция кажется слишком большой ценой, никто не заставляет этим пользоваться.

F#Сомневаюсь что это есть в C++
А мир у нас ограничен C++?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553353
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerAddxVMT без виртуальных методов не существует, такой возможности в не ОО языках нет вообще.
Чушь. Такая возможность называется "указатель на функцию" и в "не ОО языках" используется как минимум с семидесятых годов. Ну это если не считать ассемблера, в котором, наверняка, ещё гораздо раньше.

И чего? При чем тут указатель на функцию? Какие виртуальные методы в C (к примеру) ?
Речь идет о возможностях, которые предоставляет язык. А не о том, как именно реализована поддержка виртуальных методов, и VMT в частности. Было бы очень странно, если бы поддержка виртуальных методов была реализована на чем то вообще невообразимом, что не поддержано даже ассемблером :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553374
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AddxИ чего? При чем тут указатель на функцию? Какие виртуальные методы в C (к примеру) ?
Речь идет о возможностях, которые предоставляет язык.
Верно. Виртуальный метод и указатель на функцию - это одно и то же, и эту возможность предоставляет язык. VMT - это просто таблица указателей на функции. Давным-давно программисты делали (с помощью языковых средств) динамический полиморфизм с помощью указателей на функции. В какой-то момент эту идею сгруппировали с несколькими другими и результат назвали ООП. Чуть позже в языки добавили ООП-синтаксис, который позволил записывать использование этих идей в более удобной форме.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553434
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВерно. Виртуальный метод и указатель на функцию - это одно и то же, и эту возможность предоставляет язык. VMT - это просто таблица указателей на функции. Давным-давно программисты делали (с помощью языковых средств) динамический полиморфизм с помощью указателей на функции. В какой-то момент эту идею сгруппировали с несколькими другими и результат назвали ООП. Чуть позже в языки добавили ООП-синтаксис, который позволил записывать использование этих идей в более удобной форме.

Если в сильно упрощенном виде, то да. ;)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553492
F#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
F#
Гость
softwarerА мир у нас ограничен C++?

Я отвечал на "ООП по типу С++ не требует накладных расходов."
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553582
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F#Я отвечал на "ООП по типу С++ не требует накладных расходов."
Ну так "по типу" же. Свойства вполне укладываются в сишную идеологию "не требовать накладных расходов", а их бинарная совместимость ровно такая же, как у инлайнящихся методов доступа.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553647
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр,

1. _Разумеется_, правильно заюзаное ООП даёт прирост скорости программе. Оно удешевляет её разработку и сопровождение. Раз так, то часть сэкономленных денег заказчик может дополнительно вложить в оборудование.
2. _Разумеется_, правильно заюзаное ООП даёт прирост скорости программе. Оптимизатор лучше понимает намерения разработчика и правильно расставляет приоритеты в оптимизации. Сравните производительность функции с двумя десятками if (мне вернули ошибку) { завершиться так и сяк } и функции с блоками try ... catch , которые для прогона без ошибок не стоят ровно ничего.
3. _Разумеется_, правильно заюзаное ООП даёт прирост скорости программе. Оно освобождает мозги для более полезных задач, чем прилаживание одного и только одного деструктора к каждому конструктору при каждом варианте выполнения и т.п.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553684
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru,
если убрать "_Разумеется_, правильно заюзаное ООП даёт прирост скорости программе.",
то соглашусь :)
Удешевление разработки и сопровождения отнюдь не всегда положительно сказывается на расходы заказчика, и уж совсем не факт, что он вложит их в оборудование. )
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553712
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxiv_an_ru,
если убрать "_Разумеется_, правильно заюзаное ООП даёт прирост скорости программе.",
то соглашусь :)
Удешевление разработки и сопровождения отнюдь не всегда положительно сказывается на расходы заказчика, и уж совсем не факт, что он вложит их в оборудование. )

Там был неприкрытый стёб.

Обработка ошибок даже с двумя десятками if (пациент тонко шутит на незнание оптимизации по switch/case типовым кодером) всегда будет раз в 10-200 быстрее, чем обработка исключений, просто из-за крайней неэффективности реализации этого самого механизма исключений.

Но типовой ООП программист этим не озадачивается и вовсю использует exception как форму goto XXI века.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553732
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedОбработка ошибок даже с двумя десятками if (пациент тонко шутит на незнание оптимизации по switch/case типовым кодером) всегда будет раз в 10-200 быстрее, чем обработка исключений, просто из-за крайней неэффективности реализации этого самого механизма исключений.

Но типовой ООП программист этим не озадачивается и вовсю использует exception как форму goto XXI века.Вобще-то я про скорость кода, исполняемого в случае, когда ни одно исключение так и не вылетело. Нету if-ов --- нечему рвать конвейер ядра. Если ошибка таки приключилась --- тут уже один чорт не до скорости, тут лишь бы не посыпалось всё :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38553799
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedОбработка ошибок даже с двумя десятками if (пациент тонко шутит на незнание оптимизации по switch/case типовым кодером) всегда будет раз в 10-200 быстрее, чем обработка исключений, просто из-за крайней неэффективности реализации этого самого механизма исключений.

Но типовой ООП программист этим не озадачивается и вовсю использует exception как форму goto XXI века.Вобще-то я про скорость кода, исполняемого в случае, когда ни одно исключение так и не вылетело. Нету if-ов --- нечему рвать конвейер ядра. Если ошибка таки приключилась --- тут уже один чорт не до скорости, тут лишь бы не посыпалось всё :)

Я говорил про то, что в мозгах ООП "программистов" замечен типовой сдвиг по фазе. Они путают exception с нелокальным goto, там даже не про вопрос ошибок, а просто вот так они делают setjmp/longjmp (которые редкий C программист в здравом уме вот просто так начнет использовать, в равной степени и ucontext/coroutine, просто по причине их сложности).

Но exception-goto для ООП-истов относительно дешев, вот там и процветает эта разновидность говнокодирования.


А вот обработка ошибок - это настолько отдельная тема, что тут можно смело начинать холивар на 100500 страниц.
В моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.

К примеру не ввел пользователь свое ФИО - это нифига не exception, это просто обычный поток кода, который завернет его "пользователя" обратно на поле ввода.

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

Но в мире ООП это, конечно, не так.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554040
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedВ моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.Явный обработчик на конкретную ошибку как раз подпадает под это правило. Это раз. Ну и падать в core не всегда полезно, общество может осудить. Особенно если ошибка --- сетевой затык с пакетом фигни для какого-то ящика у неоперативного персонала, а падение в корку будет сопровождаться голосом тёти Риты, сиреной, разбегательством людей из машзала во все стороны и аварийным остановом турбины.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554071
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedК примеру не ввел пользователь свое ФИО - это нифига не exception
Забавный пример к тезису "страшно долгий неэффективный exception".

socimedдальнейшее поведение ПО непредсказуемо, и может привести к еще большей порче данных. Потому самое безопасное тут - просто упасть
Предлагаю внедрить такой подход, например, на рентгеновском аппарате - если произошла ошибка, просто упасть, оставив излучатель работать. Программист придёт, разберётся - выключит.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554086
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedВ моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.Явный обработчик на конкретную ошибку как раз подпадает под это правило. Это раз. Ну и падать в core не всегда полезно, общество может осудить. Особенно если ошибка --- сетевой затык с пакетом фигни для какого-то ящика у неоперативного персонала, а падение в корку будет сопровождаться голосом тёти Риты, сиреной, разбегательством людей из машзала во все стороны и аварийным остановом турбины.

Потеря пакета, разрыв соединения - это не ошибка, а штатное, обрабатываемое поведение. Должен существовать в явном виде код, который может с ней справиться, не приводя состояние системы в неопределенное.

В том то и дело, что разработчик должен дошурупать до этого, и более того - понаписать тесты. А не тупо вхреначить finally на любые типы ошибок и думать что там оно как-то само все обработается.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554088
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПотеря пакета, разрыв соединения - это не ошибка, а штатное, обрабатываемое поведение. Должен существовать в явном виде код, который может с ней справиться,
И этот код в ряде случаев озаглавлен catch Потеря_Пакета_Или_Разрыв_Соединения.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554092
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedК примеру не ввел пользователь свое ФИО - это нифига не exception
Забавный пример к тезису "страшно долгий неэффективный exception"

Там нет никакой связи с "долготой". Ты читаешь криво. Тема из обсуждения тормознутости exception в сравнении с if вообще перешла в другое измерение - отделение понятия setjmp/longjump/exception, от понятия необрабатываемой ошибки, понятия обрабатываемой ошибки, и контроля входящих данных.

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

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

Начни с MISRA .

Как только там найдешь что-то конкретное про с++ exception - ты обязательно сообщи, ок?

Вот к примеру тут http://www.appinf.com/download/SafetyCriticalC .pdf в части требований JSF и того, что именно разрешено в MISRA

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

И таких блоков там (по идее) должен стоять не один, а штуки четыре, причем абсолютно независимых. Странно, что тебе это не очевидно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554097
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedПотеря пакета, разрыв соединения - это не ошибка, а штатное, обрабатываемое поведение. Должен существовать в явном виде код, который может с ней справиться,
И этот код в ряде случаев озаглавлен catch Потеря_Пакета_Или_Разрыв_Соединения.

И что? Это как-то гарантирует, что программа справится со всеми аварийными случаями в этом try/catch блоке?

Что вот тот бросивший exception кусок - не разрушит потихому память в объекте сокета, приведя к каскадному NullPointerException уже при попытке его закрытия, внутри этого catch?

Гарантия где?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554100
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedsoftwarerпропущено...

И этот код в ряде случаев озаглавлен catch Потеря_Пакета_Или_Разрыв_Соединения.

И что? Это как-то гарантирует, что программа справится со всеми аварийными случаями в этом try/catch блоке?

Что вот тот бросивший exception кусок - не разрушит потихому память в объекте сокета, приведя к каскадному NullPointerException уже при попытке его закрытия, внутри этого catch?

Гарантия где?Нет 100% гарантий, вестимо. Ошибка всегда возможна, это вопрос вероятности. Но в ряде случаев можно надеяться, что вероятность достаточно мала, чтобы не вылезти ни разу за срок эксплуатации :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554101
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruНет 100% гарантий, вестимо. Ошибка всегда возможна, это вопрос вероятности. Но в ряде случаев можно надеяться, что вероятность достаточно мала, чтобы не вылезти ни разу за срок эксплуатации :)

Для систем, связанных с жизнью людей подобная демагогия просто недопустима. И там есть вполне четкие требования к тому, как должна быть организована обработка ошибок, в части формальных требований к избежанию возможных side effect.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554103
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

Я немножко в курсе. Чесслово. softwarer, предположу, тоже в курсе. А вот вы маленечко плаваете даже в таких вещах, как определение, что такое ошибка --- из ваших высказываний следует, что это что-то не предусмотренное разработчиком.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554106
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimed,

Я немножко в курсе. Чесслово. softwarer, предположу, тоже в курсе. А вот вы маленечко плаваете даже в таких вещах, как определение, что такое ошибка --- из ваших высказываний следует, что это что-то не предусмотренное разработчиком.

В курсе чего? Он ни сном не духом и дальше будет уверен, что для управления излучателем рентгеновского аппарата достаточно понаписать try/catch блок и это покроет 105% всех аварийных ситуаций.

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

Ошибка внешняя, которая явно является обрабатываемой - это просто частный случай входящих данных (по отношению к компоненту).

А вот любая внештатная ситуация, которая необрабатывамая - это и есть exception, и в большинстве случаев нужно падать в кору, потому что нет вообще никакой гарантии, что вышестоящие компоненты с ней справятся и были спроектированы, чтоб справляться.

Просто никто не тестирует свой код на предмет, а что если. А ты попробуй повставлять вызов exception во всякие разные места, где ты вызываешь третьесторонние компоненты, да потестить - справится ли твоя база данных с этим, не приведет ли к разрушению данных и противоречивому состоянию системы в целом. Простейший случай - out of memory - может возникнуть вообще где угодно. И?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554115
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПросто никто не тестирует свой код на предмет, а что если.Не говорите за всех, а? Иначе как раз "феерически глупое ослоумие" и получается.

socimedА ты попробуй повставлять вызов exception во всякие разные места, где ты вызываешь третьесторонние компоненты, да потестить - справится ли твоя база данных с этим, не приведет ли к разрушению данных и противоречивому состоянию системы в целом. Простейший случай - out of memory - может возникнуть вообще где угодно. И?Вот в чём я уверен, так это в том, что в вызовах третьесторонних компонент у нас ошибок нет. По причине отсутствия третьесторонних компонент. Это раз. И на случай out of memory в любом приличном сервере БД _разумеется_ предусмотрена не просто абы какая обработка, а специальный аварийный режим, в котором часть операций запрещается, часть транзакций откатывается, но сервер выживает и крутится дальше.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554116
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedя утверждаю, что ошибка это вообще все, что не предусмотрел разработчик.А вот Мейерс утверждает, что ошибка --- это когда программа делает не то, что пользователю разумно от неё ожидать. Пользователю. Про разработчика ни слова. Получаем две гипотезы: 1. Мейерсу надо учить букварь. 2. Вам надо учить букварь. Какую из них берём за рабочую?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554122
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedПросто никто не тестирует свой код на предмет, а что если.Не говорите за всех, а? Иначе как раз "феерически глупое ослоумие" и получается.

socimedА ты попробуй повставлять вызов exception во всякие разные места, где ты вызываешь третьесторонние компоненты, да потестить - справится ли твоя база данных с этим, не приведет ли к разрушению данных и противоречивому состоянию системы в целом. Простейший случай - out of memory - может возникнуть вообще где угодно. И?Вот в чём я уверен, так это в том, что в вызовах третьесторонних компонент у нас ошибок нет. По причине отсутствия третьесторонних компонент. Это раз. И на случай out of memory в любом приличном сервере БД _разумеется_ предусмотрена не просто абы какая обработка, а специальный аварийный режим, в котором часть операций запрещается, часть транзакций откатывается, но сервер выживает и крутится дальше.

как прикольно. специальный аварийный редим.

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

да неужели?


а третьей стороной является и glibc. и сама операционная система, потому твое утверждение про "у нас нет" выглядит просто невероятно смешно
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554127
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedя утверждаю, что ошибка это вообще все, что не предусмотрел разработчик.А вот Мейерс утверждает, что ошибка --- это когда программа делает не то, что пользователю разумно от неё ожидать. Пользователю. Про разработчика ни слова. Получаем две гипотезы: 1. Мейерсу надо учить букварь. 2. Вам надо учить букварь. Какую из них берём за рабочую?

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

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


это крайне опасно, ориентироваться на персоналии. люди в 95% случаев или просто идиоты, или ведут себя как идиоты, это правило рекурсивно и контекстно зависимо (среди докторов наук тоже 95% - идиоты, особенно когда они пытаются рассуждать не на свои профильные темы)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554134
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedи что, в блоках откатки транзакций совсем нет новых попыток выделить память в куче?Почему "попыток"? Вполне успешных выделений. Гарантированно успешных, потому что на этот случай есть специальный резерв памяти.

socimedа третьей стороной является и glibc. и сама операционная система, потому твое утверждение про "у нас нет" выглядит просто невероятно смешноТретьей стороной является Солнце, как источник космических лучей, приводящих к сбросу битов в ОЗУ. Тоже источник ошибок. Но и используемая часть glibc и используемая часть OS и используемая память являются достаточно надёжными ;)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554138
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedи что, в блоках откатки транзакций совсем нет новых попыток выделить память в куче?Почему "попыток"? Вполне успешных выделений. Гарантированно успешных, потому что на этот случай есть специальный резерв памяти.
И кто гарантирует, что этого резерва хватит?


iv_an_rusocimedа третьей стороной является и glibc. и сама операционная система, потому твое утверждение про "у нас нет" выглядит просто невероятно смешноТретьей стороной является Солнце, как источник космических лучей, приводящих к сбросу битов в ОЗУ. Тоже источник ошибок. Но и используемая часть glibc и используемая часть OS и используемая память являются достаточно надёжными ;)

Достаточно? И что будет если разработчики втихую добавят еще один вариант errno в send/recv, которого вы не предусмотрели в обработчике?
А еще можно впомнить про memcpy/memmove и весьма веселый спор Торвальдса и Дрейпера, на предмет чинить или не чинить.

Достаточно надежны... бугагага, принцессы тоже, не того, как известно, это самое не делают.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554140
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedлюди в 95% случаев или просто идиоты, или ведут себя как идиотыАга. Один вы у нас иноплянетянин, в белом фраке.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554142
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimediv_an_ruпропущено...
Почему "попыток"? Вполне успешных выделений. Гарантированно успешных, потому что на этот случай есть специальный резерв памяти.
И кто гарантирует, что этого резерва хватит?Я гарантирую.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554145
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedлюди в 95% случаев или просто идиоты, или ведут себя как идиотыАга. Один вы у нас иноплянетянин, в белом фраке.

Нет, я знаю, что я могу себя вести как идиот и обычно так себя и веду. Но я знаю это и умею с этим бороться, а вы - нет.

К примеру в отличие от тебя и softwarer при первом же упоминании про MISRA (когда мне пояснили что я идиот) я быстро ее скачал и попробовал изучить от и до (и продолжаю это делать), а не просто проигнориловал, напыщенно надув губки и сделав оценочное суждение, что как-же это так, как это меня такого с детства превозносимого умника только что ткнули носом в мое невежество - такого быть не может!

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

В этом и есть отличие, и что дает мне право перекочевать из 95% в 5% со временем, а вам - нет. Забавно, да?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554146
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedпропущено...

И кто гарантирует, что этого резерва хватит?Я гарантирую.

Значит гарантии вообще нет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554151
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedMISRA... скачал и попробовал изучить от и до ( и продолжаю это делать )Это в цитатник.
Чего там учить-то? Простейшие общеизвестные правила в количестве трёх страничек.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554160
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedMISRA... скачал и попробовал изучить от и до ( и продолжаю это делать )Это в цитатник.
Чего там учить-то? Простейшие общеизвестные правила в количестве трёх страничек.

Ага, 1.5 страничек.

Решил блеснуть познаниями? В той-же MISRA довольно четко сказано, что критический код не должен аллоцировать память, даже из резерва. Это тупо запрещено, динамическая аллокация.

У тебя же обработка OutOfMemory сделана через серию аллокаций из "резерва". Вывод? Ты не знаешь про эти простейшие правила, раз понаписал такой сказочной ерунды.


(Хотя, вообще-то, существует правило - если наступил в malloc на 0, то все что ты можешь - это зависнуть на этом месте циклом и продолжать пытаться вызывать malloc, пока память все-таки не вернется, потому что система кого-то прибъет да сама, и память появится в следующие 1..3 секунды - но про это правило ты походу тоже не знаешь).


Т.е. не надо казаться, что ты умнее других - твои же откровения говорят о сильно обратном (хотя ты конечно выглядишь и посвежее, чем подавляющее большинство местных "профи").
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554161
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, почитал средние страницы, про заточку молотка и т.п. Чем точить молотки, лучше бы гирю попилили.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554163
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruКстати, почитал средние страницы, про заточку молотка и т.п. Чем точить молотки, лучше бы гирю попилили.

Да и так понял что ты и там ничего не понял. Завышенная самооценка - страшная штука.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554166
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedРешил блеснуть познаниями? В той-же MISRA довольно четко сказано, что критический код не должен аллоцировать память, даже из резерва. Это тупо запрещено, динамическая аллокация.Чхать я хотел на эту мисру, у меня задачи несколько сложнее ABS-а. Есть специальные безопасные аллокаторы, разработанные специально для реалтайма, которые ценой меньшей средней производительности позволяют-таки выделять память с гарантированным уровнем фрагментации и гарантированным временем отклика. Разнообразные варианты Two Levels Segregate Fit, к примеру.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554170
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedпродолжать пытаться вызывать malloc, пока память все-таки не вернется, потому что система кого-то прибъет да сама, и память появится в следующие 1..3 секунды - но про это правило ты походу тоже не знаешьАнонимчик вы наш желтопёрый, да какое же критичное приложение будет звать системный malloc иначе как в контролируемо безопасный момент --- при старте или в "миллисекунду тишины"? Куча должна быть своей, полностью управляемой, с локализацией по времени и по потокам, и с временными отдельно контролируемыми кучками для модулей с трудно предсказуемым поведением. Со своей отладкой, с несколькими разными раскладками в памяти, и разумеется с valgrind-friendly вариантом.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554171
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedРешил блеснуть познаниями? В той-же MISRA довольно четко сказано, что критический код не должен аллоцировать память, даже из резерва. Это тупо запрещено, динамическая аллокация.Чхать я хотел на эту мисру, у меня задачи несколько сложнее ABS-а.
И? Только потому что система сложнее, она должна иметь заведомо и сознательно пониженную надежность? Да ты просто жжешь напалмом, просто в цитатник!


iv_an_ruЕсть специальные безопасные аллокаторы, разработанные специально для реалтайма, которые ценой меньшей средней производительности позволяют-таки выделять память с гарантированным уровнем фрагментации и гарантированным временем отклика. Разнообразные варианты Two Levels Segregate Fit, к примеру.

Бла-бла-бла-бла.

Ты вроде в базах данных работаешь, и то поди не знаешь, что из heap ничего, вообще-то, аллоцировать и не нужно, потому что shared-memory далается на mmap датафайла.
Где ты еще и можешь поаллоцировать память - это во временных пользовательских процессах, но там контекст сессии, и... сюрпрайз сюрпрайз obstac/alloca подобное выделение с предварительным резервированием, а не аллоцированием (сессия-вызов то краткосрочны, можно в конце прибить все одним free тапком).

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

Тебя пока только одно оправдывает - вся отрасль страдает еще большими глупостями, за очень редкими исключениями.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554173
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedпродолжать пытаться вызывать malloc, пока память все-таки не вернется, потому что система кого-то прибъет да сама, и память появится в следующие 1..3 секунды - но про это правило ты походу тоже не знаешьАнонимчик вы наш желтопёрый,
Ты у нас не желтоперый? И что? Умнее стал?

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



iv_an_ruда какое же критичное приложение будет звать системный malloc иначе как в контролируемо безопасный момент --- при старте или в "миллисекунду тишины"? Куча должна быть своей, полностью управляемой,
Своя куча? Жги еще! Свою операционную систему еще не начали писать, болезные?


iv_an_ruс локализацией по времени и по потокам, и с временными отдельно контролируемыми кучками для модулей с трудно предсказуемым поведением. Со своей отладкой, с несколькими разными раскладками в памяти, и разумеется с valgrind-friendly вариантом.

Дурдом.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554186
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

Ну дурдом так дурдом. Не буду мешать вам раскрываться во всей красе.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554187
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНа рентгеновском аппарате есть специальный watchdog блок
Умница. То есть ты сам знаешь, что в некоторых случаях твоё "упасть в кору с посмертным сообщением" не является правильной и достаточной реакцией на проблемную ситуацию, приходится приделывать ещё что-то. А иногда и падать в кору незачем.

socimedТы читаешь криво
Я читаю то, что написано. "Читаешь криво" - типичное заблуждение невнятно мыслящих категоричных юнцов (в том числе пенсионного возраста), убеждённых, что "любой, кто прочитает, должен меня правильно понять и восхититься моей мудростью и правотой".

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

socimedГарантия где?
Там же, где при кодировании if-ами. Ну и заодно там, где в вышеупомянутом watchdog-е - в нём ведь тоже могут случиться ошибки.

socimedДля систем, связанных с жизнью людей подобная демагогия просто недопустима
Да какая нахрен демагогия. Случится замыкание - и никакой watchdog выключить излучатель просто не сможет физически. Но комплексом мер можно снизить вероятность этого до величин порядка "только при сознательной диверсии" - к чему, собственно, и надо стремиться.

socimedОн дальше будет уверен
Системное замечание: со своими фантазиями на тему моих мыслей рекомендую тебе сходить в туалет.

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

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

socimedболее того, есть правило - не умеешь сам - учи других
Наконец-то стали ясны причины твоего появления в топике.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554188
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimed,

Ну дурдом так дурдом. Не буду мешать вам раскрываться во всей красе.
Эволюция неизбежна. Старые и слабые деревья с недоразвитой корневой системой в конечном счете обречены.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554190
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot socimed]Lepsikпропущено...

int do_something(size_t idx) {
return a[idx];
}


это не do something, это доступ по индексу, и он мало кому интересен - интереснее как ты его нашел, небось пробегом по всему массиву O(n).

скажи нам стоимость операций для массива - поиск значения O(n), добавления елемента O(n), удаление элемента O(n).

а также найди 2 разные строки с одинаковым sha-3

да - у меня 3 детей и скорее всего старше тебя
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554192
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedНа рентгеновском аппарате есть специальный watchdog блок
Умница. То есть ты сам знаешь, что в некоторых случаях твоё "упасть в кору с посмертным сообщением" не является правильной и достаточной реакцией на проблемную ситуацию, приходится приделывать ещё что-то. А иногда и падать в кору незачем.

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

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

Потому твоя ирония про "отставить включенным облучатель" не то что бессмысленна, она попросту безграмотна.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554197
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsikэто не do something, это доступ по индексу, и он мало кому интересен
С чего бы вдруг не интересен? Все, кто собираются ходить в массив, они хранят индексы, а не названия. Попробуй начать с этого (кроме внешних конечно, но по внешним именам ходят не в коллекцию, а в базу данных, ваш КО).

Lepsik - интереснее как ты его нашел, небось пробегом по всему массиву O(n).
При добавлении элемента в коллекцию возвращается его индекс. Зачем искать?

Lepsikскажи нам стоимость операций для массива - поиск значения O(n)
Если элементов меньше 100, то проще просканировать целиком - L1/L2 кеш сдюжит. Больше 100 элементов - это уже inmemory базы данных.

Lepsik, добавления елемента O(n),
Если добавляется в конец - то нулевая стоимость - снять бит в битмапе. Если нужно переаллоцировать - это другой вопрос, но в 99.99% случаев ничего переаллоцировать не нужно.

Lepsik удаление элемента O(n).
Нулевая - поставить бит в битмапе.

Lepsikа также найди 2 разные строки с одинаковым sha-3
Это еще зачем?

Lepsikда - у меня 3 детей и скорее всего старше тебя
И что с того? Наличие 3-х детей делает тебя авторитетом? Добавляет знаний?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554201
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedА как там падать в управляющем ПО (которое ВСЕГДА ненадежно по определению) - в кору или натужно обрабатывать exception - это до лампочки,
ОК, то есть утверждение про "нужно падать в кору" как минимум не более корректно, нежели противоположное. Тогда давай про задачи, watchdog-а не требующие. В них как, тоже будем падать в кору или сначала подёргаемся?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554206
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer,

Этот юнош ещё не знает главного недостатка корки. Если кто-то терзает мою бету и получает внятное сообщение об ошибке, то он мне его процитирует и, возможно, по моей просьбе прогонит ту или иную диагностику. Если кто-то терзает мою бету и получает кору, то дополнительная диагностика уже сильно затруднена либо невозможна, а доступ к коре мне никто не даст --- чорт его знает, какие конфиденциальные данные застряли в той коре.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554209
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedА как там падать в управляющем ПО (которое ВСЕГДА ненадежно по определению) - в кору или натужно обрабатывать exception - это до лампочки,
ОК, то есть утверждение про "нужно падать в кору" как минимум не более корректно, нежели противоположное.
Нет, потому что если не падать кору, а пытаться во что-бы то ни стало сохранять "работоспособное" состояние - то это верный путь ввести в заблуждение блок watch-dog, который будет считать что в управляющем ПО нет проблем, и не будет выключать облучатель.

Потому в случае рентгеновского аппарата вариант "если что-то пошло не так - то сразу упасть" - это единственное верное решение.

Посуди сам - у тебя блок catch ушел в бесконечный цикл, и....

softwarer Тогда давай про задачи, watchdog-а не требующие. В них как, тоже будем падать в кору или сначала подёргаемся?


В текущих реалиях этого безумного мира - увы, нет, если есть требование "выживать в любых ситуациях", то придется ходить по этим фундаментально ложным try/finally/catch

В остальном, если мы говорим не про программы для конечного пользователя (где сам человек выступает в роли watch dog), то правило требования watch dog остается незыблемым (как и справедливость про падения в кору). Т.е. любой сервер должен watch dog иметь, уметь перезапускаться автоматом и при любом подозрении падать в кору, пусть горемыки-кодеры сидят и пишут обработчики-фильтры внешних данных с ошибками,а не пытаются маскировать проблемы.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554213
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusoftwarer,

Этот юнош ещё не знает главного недостатка корки. Если кто-то терзает мою бету и получает внятное сообщение об ошибке, то он мне его процитирует и, возможно, по моей просьбе прогонит ту или иную диагностику. Если кто-то терзает мою бету и получает кору, то дополнительная диагностика уже сильно затруднена либо невозможна, а доступ к коре мне никто не даст --- чорт его знает, какие конфиденциальные данные застряли в той коре.

И? Ты опять, "дедуля", похоже попутал попутал огурцы c печеньем, когда утром молоко пил.

Понятие "кора" - это не обязательно то, что система тебе генерит при SIGSEGV, ты кору можешь сам какую угодно писать, хоть с данными, хоть без, это раз.
И два - вообще не понятно что ты хочешь сказать. Потому что в коре могут быть некие данные, то давайте вообще не будем никогда ее генерить, да и клиенту ничего про проблемы говорить не будем, пока он совсем данные не потеряет, или что?
О чем твой многоопытный и натруженный спич вот сейчас был?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554218
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruЭтот юнош ещё не знает главного недостатка корки.
Полагаю, в разных ситуациях главные недостатки разные. Скажем, в вышеупомянутом приложении "где пользователь не ввёл своё имя", падение в кору - просто верный способ заработать репутацию "чёрт знает что понаписали". Ну а в навигационном компьютере Ариана 5 - получить именно то, что получилось.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554223
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, спросил тут у одного дядьки, как сделана защита на современном рентгеновском аппарате. Ответ интересный. Там, оказывается, микромеханический кодовый замок и микромеханические реле времени. Ни случайные срабатывания ни зависания невозможны. Кроме того, против слишком частых или слишком долгих срабатываний ВВ-блок запитан через PTC-термистор, что ограничивает интегральную мощность на трубке. Хоть ты усни на кнопке "вылет птички", ничего страшного не будет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554226
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruКстати, спросил тут у одного дядьки, как сделана защита на современном рентгеновском аппарате. Ответ интересный. Там, оказывается, микромеханический кодовый замок и микромеханические реле времени. Ни случайные срабатывания ни зависания невозможны. Кроме того, против слишком частых или слишком долгих срабатываний ВВ-блок запитан через PTC-термистор, что ограничивает интегральную мощность на трубке. Хоть ты усни на кнопке "вылет птички", ничего страшного не будет.

И? Это и есть watchdog, аппаратный. Что и следовало, собственно доказать, а не вот те юношеские выделения про catch размазывать.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554229
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedя утверждаю, что ошибка это вообще все, что не предусмотрел разработчик.А вот Мейерс утверждает, что ошибка --- это когда программа делает не то, что пользователю разумно от неё ожидать. Пользователю. Про разработчика ни слова. Получаем две гипотезы: 1. Мейерсу надо учить букварь. 2. Вам надо учить букварь. Какую из них берём за рабочую?
эт точно
грекси лучше понимает вопрос
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554231
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

То есть что такое watchdog вы тоже не знаете? И сейчас мы увидим новые откровения из серии "вы все тупые и меня неправильно поняли" или ""кора" - это не обязательно то, что система тебе генерит".

Рентгеновский аппарат --- это _не_ watchdog. Он никого и не подумает перезапускать, ему вообще начхать на проблемы софта. Современный аппарат безопасен сам по себе, нет никакой возможности серьёзно переоблучить пациента иначе, чем влезть в высоковольтную часть с отвёрткой, паяльником и эпоксидной смолой.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554232
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimed,

То есть что такое watchdog вы тоже не знаете? И сейчас мы увидим новые откровения из серии "вы все тупые и меня неправильно поняли" или ""кора" - это не обязательно то, что система тебе генерит".




http://en.wikipedia.org/wiki/Watchdog_timer A watchdog timer (WDT; sometimes called a computer operating properly or COP timer, or simply a watchdog) is an electronic timer that is used to detect and recover from computer malfunctions

Вот то что ты там про механореле с таймером рассказывал.

И? Таймер? Таймер. Проблемы обнаруживает? Обнаруживает. Последствия проблем устраняет? Устраняет!

Чо тебе еще надо, дедуля, чего пристал на этот раз?


iv_an_ruРентгеновский аппарат --- это _не_ watchdog. Он никого и не подумает перезапускать, ему вообще начхать на проблемы софта. Современный аппарат безопасен сам по себе, нет никакой возможности серьёзно переоблучить пациента иначе, чем влезть в высоковольтную часть с отвёрткой, паяльником и эпоксидной смолой.

Ну и где я говорил, что весь рентгеновский аппарат целиком - это watchdog?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554233
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПосуди сам - у тебя блок catch ушел в бесконечный цикл, и....
И тот же самый watchdog его вырубил. Причём ты сам об этом упоминал пару сообщений назад (.. или подвисло..)

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

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

Можно говорить о ситуациях, обрабатываемых или не обрабатываемых конкретным модулем. Если сказано, что на ситуацию X модуль должен реагировать действием Y, то задача разработчика - это обеспечить. И если есть код, реализующий Y, то как управление придёт в него - с помощью if или с помощью catch - это вопрос технический.

Если ситуация модулем не обрабатывается, он должен сообщить об этом наружу. Это опять же может быть сделано исключением, может быть сделано специальным сигналом, может быть сделано падением - опять же, вопрос технический (что не мешает ему быть важным и ответственным).

socimedВ текущих реалиях этого безумного мира - увы, нет, если есть требование "выживать в любых ситуациях", то придется ходить по этим фундаментально ложным try/finally/catch
Рентгеновскому аппарату хорошо в том смысле, что "стоять выключенным" для него вполне реализует "выживать в любых ситуациях". Если речь идёт о летящем самолёте или работающей АЭС, то для "выживания нас" страусиной политики уже недостаточно, требуется как минимум умение перезагружаться. Если речь о боевой ракете вблизи цели, то "возможно неправильная реакция на неожиданную ситуацию" допустима, а вот падение в кору и ребут - стопроцентный промах. Если это радар ПВО, то там вообще есть шанс найти аварийный голосовой режим передачи данных. В общем... не стоит всё грести в одну кучу.

socimedпусть горемыки-кодеры сидят и пишут обработчики-фильтры внешних данных с ошибками,а не пытаются маскировать проблемы.
Ты борешься с симптомами. Я вполне согласен с твоим неприятием использования исключений для ветвления в штатных ситуациях, но ты доводишь эту идеологию до абсурда.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554237
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЕсть обрабатываемые проблемные ситуации, есть необрабатываемые.
Есть только одна обрабатываемая проблемная ситуация - это ввод человека. Ему можно сказать, что он ввел что-то не то (к примеру имя несуществующего файла).
Для этого бросать exception вовсе не обязательно.

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

Так вот. Для того, чтоб донести месадж о катастрофе до человека, не надо пытаться судорожно что-то передавать и пытаться восстановиться. Достаточно помереть всей цепочке, а программа монитор (или watchdog) уже как-нибудь донесет эту мысль до человека, что СЭР, ВСЕ ПРОПАЛО. Потому что попытка восстановиться из проблемы, непосредственно с человеком не связанной и его вводом не вызванной, т.е. не ожидаемой проблемы - может по цепочке породить каскад новых проблем.


Иначе - это не про проблемы, а просто про штатные ситуации. Т.е. если пользователь сдергивает по http файл, а файла нет - это не проблемная ситуация ни разу, а как раз очень даже штатная (с т.з. сервера) - т.е. он, сервер, вполне себе в состоянии эту мысль пользователю донести, не перейдя в неопределенное состояние с требованием аварийного восстановления по finally и прочим catch.

Вот это я и пытаюсь донести - что есть реальные проблемные ситуации с в принципе непредсказуемым поведением - это одно, их не надо пытаться обработать, а есть просто штатные ситуации, когда чего-то там не так с т.з. пользователя, но система вполне может с ними совладать - это совсем про другое, но и там Exception не нужны в принципе.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554238
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed http://en.wikipedia.org/wiki/Watchdog_timer A watchdog timer (WDT; sometimes called a computer operating properly or COP timer, or simply a watchdog) is an electronic timer that is used to detect and recover from computer malfunctions
Вот то что ты там про механореле с таймером рассказывал.
И? Таймер? Таймер. Проблемы обнаруживает? Обнаруживает. Последствия проблем устраняет? Устраняет!
Чо тебе еще надо, дедуля, чего пристал на этот раз?Я не "к тебе пристал", я просто обматываю ваши творения оранжевой сигнальной лентой, чтоб кто-нибудь не вступил по недоразумению.

Давайте доцитируем википедию хотя бы до конца параграфа. С того места, которое вам разонравилось.
During normal operation, the computer regularly restarts the watchdog timer to prevent it from elapsing, or "timing out". If, due to a hardware fault or program error, the computer fails to restart the watchdog, the timer will elapse and generate a timeout signal. The timeout signal is used to initiate corrective action or actions. The corrective actions typically include placing the computer system in a safe state and restoring normal system operation.Спрашивается, что из перечисленного делает упомянутый рентгеновский аппарат?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554241
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruСпрашивается, что из перечисленного делает упомянутый рентгеновский аппарат?

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

А как именно это всё релизовано - это глубоко вторичный вопрос. Главное, чтоб реализация watchdog была верифицирована, и не подвержена влиянию "прикладного кода" - всего того, что меняется слишком часто и практически никогда не верифицируется.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554243
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedВсе это и делает. Меняются только названия компонент и немного порядок действийВ таком случае вы всё правильно пишете: в вашей чуши надо только поменять слова и немного их порядок --- и спорить будет не о чем.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554244
Фотография Zukora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тролетема, автора в баню.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554245
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedВсе это и делает. Меняются только названия компонент и немного порядок действийВ таком случае вы всё правильно пишете: в вашей чуши надо только поменять слова и немного их порядок --- и спорить будет не о чем.

Человек, понаписавший свой valgrind дружественный аллокатор говорит мне о чуши? Да что за чушь!
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554246
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЕсть только одна обрабатываемая проблемная ситуация - это ввод человека.
В философском смысле любая ситуация - это ввод человека (прямой или косвенный). А в нормальном - это не так. Когда ты суёшь ногу в лифт и его дверцы, не закрывшись, открываются - это обработка проблемной ситуации. И если лифт упадёт в кору (и застынет как есть) это тебе не понравится.

socimedДля этого бросать exception вовсе не обязательно.
Не обязательно. Но иногда удобнее и разумнее, чем использовать какой-либо другой механизм.

socimedесли ты пишешь не библиотеку, а некий конечный софт, то о проблемах тебе говорить некому
Некий конечный софт состоит из набора модулей. Значительная их часть - "не конечные", то есть в твоей терминологии библиотечные. Более того, здесь можно ввернуть изящный пример. Возьми любой модуль, любой софт, который не обрабатывает некую проблему и должен по-твоему упасть в кору. Теперь я даю тебе задание: напиши автоматизированный тест для этого софта. Всё, получившийся продукт уже не должен падать в кору, он должен ставить галочку "тест пройден". Это иллюстрирует простой факт: модуль не знает о своём окружении и не может собственными силами решить, как правильно обрабатывать некую ситуацию. Именно поэтому "наверху разберутся" - чертовски разумный алгоритм реакции, и только "фишка-дальше-не-идёт-модуль" должен принимать решение.

socimedИначе - это не про проблемы, а просто про штатные ситуации.
В мире нет штатных и нештатных ситуаций. Есть только те, которые мы, с нашим мышлением, называем теми или другими.

socimedВот это я и пытаюсь донести - что есть реальные проблемные ситуации с в принципе непредсказуемым поведением - это одно, их не надо пытаться обработать,
Часто - не надо, но и здесь есть моменты. Пример с ракетой я уже привёл. Приведу другой пример: софтина обслуживает десять девайсов в десяти процессах/потоках. В случае нештатной ситуации с девайсом 6 софтина должна грохнуть/перезапустить соответствующий процесс/поток, но вот падать целиком и обламывать все десять - не должна.

socimedа есть просто штатные ситуации, когда чего-то там не так с т.з. пользователя, но система вполне может с ними совладать - это совсем про другое, но и там Exception не нужны в принципе.
Там без них можно обойтись. Ровно так же, как можно обойтись без циклов или без подпрограмм.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554251
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedЕсть только одна обрабатываемая проблемная ситуация - это ввод человека.
В философском смысле любая ситуация - это ввод человека (прямой или косвенный). А в нормальном - это не так. Когда ты суёшь ногу в лифт и его дверцы, не закрывшись, открываются - это обработка проблемной ситуации.
С чего бы вдруг? Это как раз обработка пользовательского ввода. В данном случае - ввода ноги, буквально.
Ситуация, изначально заложенная в конструкцию лифта, и обрабатываемая как штатная, ни разу не исключительная.

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

И она исключает дальнейшую работу лифта, на то она и исключение.

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

softwarersocimedДля этого бросать exception вовсе не обязательно.
Не обязательно. Но иногда удобнее и разумнее, чем использовать какой-либо другой механизм.
Демагогия.

Когда это когда? Если не брать готовых систем (к примеру VCL, где все построено на Exception и ты это изменить не можешь, потому просто обязан сам их продолжать использовать), то придумать нормальный вариант, когда они имеют право жить - почти невозможно.

softwarer Возьми любой модуль, любой софт, который не обрабатывает некую проблему и должен по-твоему упасть в кору. Теперь я даю тебе задание: напиши автоматизированный тест для этого софта. Всё, получившийся продукт уже не должен падать в кору, он должен ставить галочку "тест пройден". Это иллюстрирует простой факт:
Это лишь иллюстрирует неумение тобой писать тесты. Галочки ставит не падающий компонент, а монитор (watchdog) следящий за этим компонентом. Упал порожденный процесс - галочка. Не упал - другая галочка.

softwarersocimedИначе - это не про проблемы, а просто про штатные ситуации.
В мире нет штатных и нештатных ситуаций. Есть только те, которые мы, с нашим мышлением, называем теми или другими.
Штатная ситуация - это прописанная человеком в документации к объекту.
Условия работы лифта и т.д.

А нештатная - это падение метеорита в лифт - ни в одной инструкции подобное не прописано, что метеорит может попасть.
Там лишь, в инструкции, нечто вида - "в случае внештаной ситуации делайте то-то", в нашем случае - выпадайте в кору, или ставьте распорки в лифте, чтоб не брякнуться об пол с высоты 20 этажа. Авось поможет, от метеорита-то.

Но причины нештатной ситуации заранее не известны (метеорит это будет или инопланетный корабль с Проксима-центавра), потому она и нештатная, ибо заранее неведомая.

А раз неведомое, то должно быть одно действие, предельно безопасное - или помереть в кору и не нагадить всем, или застопориться в лифте, лишь бы не разбиться, ничего лучшего не придумать, нет, ну не выпускать же кабину из шахты лифта как с катапульты, с парашютом? (как это сделал бы типовой ООП программист, более чем уверен)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554268
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedsoftwarer.. Когда ты суёшь ногу в лифт и его дверцы, не закрывшись, открываются ..
Ситуация, изначально заложенная в конструкцию лифта, и обрабатываемая как штатная, ни разу не исключительная. А вот проблемная исключительная ситуация - это обрыв троссов,
Ты совсем заигрался словами и даже не подумал, что я специально подбросил тебе эту возможность.

И "ввод ноги", и "обрыв тросов" - это предусмотренные разработчиком ситуации. Штатные, в твоей терминологии. На каждую из них предусмотрена своя реакция, очень похожая: на одну - "раскрыть двери", на другую - "раскрыть распорки". Разница только в том, что после одной из них лифту разрешено восстановиться в стандартное состояние, а в другой ему сказано держаться до последнего.

Нештатная ситуация - это, например, выпадание у лифта дна (пола). И, насколько мне известно, ни в какую кору он при этом не выпадет, даже ездить на вызовы не перестанет (что, впрочем, уже совершенно неважно).

socimedДемагогия.
Выключи трепло.

socimedКогда это когда? ... то придумать нормальный вариант, когда они имеют право жить - почти невозможно.
Значит, у тебя бедная фантазия. Впрочем, "почти" показывает, что ты уверен в существовании таких вариантов и готовишь почву для отступления.

socimedЭто лишь иллюстрирует неумение тобой писать тесты. Галочки ставит не падающий компонент, а монитор (watchdog) следящий за этим компонентом.
Скучно играешь словами.

socimedsoftwarerВ мире нет штатных и нештатных ситуаций. Есть только те, которые мы, с нашим мышлением, называем теми или другими.
Штатная ситуация - это прописанная человеком в документации к объекту.
Условия работы лифта и т.д.
Противоречишь тому, что сам сказал тремя абзацами выше. Аварийное торможение при обрыве троса прописано в любых требованиях к лифту, то есть по твоей терминологии здесь штатно, а ты выше назвал его нештатным. Что, собственно, подчёркивает и так очевидное отсутствие у тебя понимания и продуманной позиции в вопросе.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554332
F2F4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimed ...тем больше я убеждаюсь, что с годами мозг наверное костенеет, особенно под прессом "архитектурных", т.н. "решений"Сказал дедуля, 20 лет писавший ООП.

Я не понимаю, вам так интересно что-то доказывать этому клоуну?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554341
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZukoraТролетема, автора в баню.

вообще-то, тролингом тут занимается только один человек :) И это не я...
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554351
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimediv_an_ruпропущено...
Вобще-то я про скорость кода, исполняемого в случае, когда ни одно исключение так и не вылетело. Нету if-ов --- нечему рвать конвейер ядра. Если ошибка таки приключилась --- тут уже один чорт не до скорости, тут лишь бы не посыпалось всё :)

Я говорил про то, что в мозгах ООП "программистов" замечен типовой сдвиг по фазе. Они путают exception с нелокальным goto, там даже не про вопрос ошибок, а просто вот так они делают setjmp/longjmp (которые редкий C программист в здравом уме вот просто так начнет использовать, в равной степени и ucontext/coroutine, просто по причине их сложности).

Но exception-goto для ООП-истов относительно дешев, вот там и процветает эта разновидность говнокодирования.


А вот обработка ошибок - это настолько отдельная тема, что тут можно смело начинать холивар на 100500 страниц.
В моем (и не только) понимании - единственно верная обработка ошибок - это упасть в core и выдать посмертный мессдж в syslog.
Все остальное - это не ошибка, а как раз разновидность данных, и эти все разновидности должна обрабатываться явно.

К примеру не ввел пользователь свое ФИО - это нифига не exception, это просто обычный поток кода, который завернет его "пользователя" обратно на поле ввода.

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

Но в мире ООП это, конечно, не так.

Не согласен с мнением. Эксепшены конечно нехорошо юзать для обычного разруливания инфы (как было сказано, например не введены данные в поле). Однако что делать, если я пишу компонент, работоспособностю которого можно пренебречь?
Ну вот представим, я например пишу оптимизатор кода. И другой прогер подрубает его к какой-нить IDE (самописной). Что будет, если вдруг, в языке добавится некая конструкция с оптимизацией которой могут возникнуть проблемы? Мне в момент сборки надо завалить среду и сказать пользователю "Сорри, произошла ошибка"? Или же лучше в момент возникновения ошибки, обработать её (заранее предусмотрев возможность оной), и пробросить исключение в основной код среды, которая удачно всё скомпилит, продолжит работу как полагается, но при этом выбросит сообщение "Код не оптимизирован, во время процесса оптимизации произошла ошибка... при повторении ситуации просим связаться с разработчиком" ну или "во время оптимизации произошла ошибка, код не был оптимизирован. Отправить данные об ошибке разработчикам?"

Кстати, а какое отношение исключения имеют к ООП? Что-то тема уже ушла далеко)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554414
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerПротиворечишь тому, что сам сказал тремя абзацами выше. Аварийное торможение при обрыве троса прописано в любых требованиях к лифту, то есть по твоей терминологии здесь штатно, а ты выше назвал его нештатным. Что, собственно, подчёркивает и так очевидное отсутствие у тебя понимания и продуманной позиции в вопросе.

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

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

Это и есть - отсутствие описания в руководстве обработки внештатной, исключительной ситуации, в части, а что делать после обрыва чтоб продолжать ездить вверх-вниз. А ничего не делать. Все. Оборвался тросс - core dump, жизненный цикл закончен.

softwarerВыключи трепло
Включи мозг

softwarerЗначит, у тебя бедная фантазия.
Это значит что у меня здравый рассудок, а нафантазировать можно чего угодно - даже гиппопотамов, летающий за счет реактивной струи из заднего прохода, проблема только в том, что подобная болезненная фантазия не дает им, гиппопотамам с реактивной струей, право на существование (хотя в мире ООП, конечно, законы физики не действуют, и позволено воплощать в граните любую сказочно глупую укатайку, что и происходит повсеместно - контроля то нет никакого).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554417
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрКстати, а какое отношение исключения имеют к ООП? Что-то тема уже ушла далеко)

Непосредственное. К примеру в НЕ ООП языке C исключений нет как таковых. Сейчас обсуждается вопрос - а нужны ли они, как сущность, или просто в мозгах ООП апологетов произошел тектонический сдвиг и они вкорячили в язык нечто неестественное, и, что характерно, принципиально неверное, приводящее лишь к созданию нового класса проблем, а не решению старых.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554426
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для мне исключения просто удобный способ описывать обработку ситуаций, не относящихся к основному потоку программы, отдельно.

Типа:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
- сходи на кухню
- открой холодильник
- возьми кефиру
- отпей глоток

Исключения:
- если там пожар вызови ноль один
- если холодильник спёрли, вызови ноль два
- если что-то не предусмотренное, скажи мне, я разбирусю

В любом случае в конце:
 поставь кефир на место и закрой холодильник, если он открыт.



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

Как-то раз мне пришлось писать программу расчета зарплаты на языке не поддерживающем исключения, и приходилось вводить подобные умолчания макросами, (типа #define HANDLEERROR(x) error = X; if (error) return error; ) и тупо копипастить эти макросы на каждой строчке.

Кстати, socimem, а у вас принят какой-нибудь метод статического анализа, который гарантирует незамалчивание ошибочных ситуаций (не обработку возвращаемых кодов ошибок)?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554437
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F2F4Я не понимаю, вам так интересно что-то доказывать этому клоуну?

Я считаю, что мы имеем дело с блаб-эффектом в неоперабельной форме. Соответственно, разговаривать можно только про уровень блаба и ниже. Все что выше - в области бессознательного и вызывает, скорее, эмоциональную реакцию.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554442
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНепосредственное. К примеру в НЕ ООП языке C исключений нет как таковых. Сейчас обсуждается вопрос - а нужны ли они, как сущность, или просто в мозгах ООП апологетов произошел тектонический сдвиг и они вкорячили в язык нечто неестественное, и, что характерно, принципиально неверное, приводящее лишь к созданию нового класса проблем, а не решению старых.
Если писать работу с файлом по всем правилам open/read/write/close то на каждом шаге нужно проверять retcode
и предусматривать goto на стандартный обработчик но не одной ошибки, а ГРУППЫ ошибок класса IO. Исключения -
это просто пакетная обработка группы однородных ошибок. И если искать рациональное зерно в использовании
исключений - то это визуальное сокращение объёма рутинного кода.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554447
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharper- открой холодильник
...
- если холодильник спёрли, вызови ноль два
...
если холодильник не спёрли то { поставь кефир на место и закрой холодильник, если он открыт. }
И даже с зелёными исправлениями в холодильнике регулярно обнаруживается пустая бутылка кефира, или ещё хуже --- бутылка, распознанная как пустая, выброшенная в мусорку, но при обработке исключения извлечённая из мусорки и таки поставленная в холодильник.

Почему речь про исключения, если топик про ООП? Потому что они были бы куда менее полезны, если б не раскрутка стека, позволяющая автоматом соблюсти инварианты времени существования объектов для auto объектов. В той части кода, которая пишется человеком в catch(), а не компилятором "в уме", обработка исключений не намного безопаснее, чем setjmp / longjmp.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554452
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПрограмёрКстати, а какое отношение исключения имеют к ООП?
Непосредственное. К примеру в НЕ ООП языке C исключений нет как таковых.
Совсем демагогию погнал, одним совпадением обосновываешь связь. А к примеру в НЕ ООП языке PL/SQL они есть, и что?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554456
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedв НЕ ООП языке C исключений нет как таковых.declare exit/continue handler и/или whenever sqlstate ... в разных .../PL --- это не исключения. unwind-protect в лиспах --- это то же не исключения. Ибо так говорил Заратустра socimed.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554463
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruв холодильнике регулярно обнаруживается пустая бутылка кефира, или ещё хуже --- бутылка, распознанная как пустая, выброшенная в мусорку, но при обработке исключения извлечённая из мусорки и таки поставленная в холодильник.


Разумеется пример упрощен, но основная мысль та же - держать основной поток программы как можно более ясным, а всякие исключения обрабатывать отдельно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554469
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedпропущено...

Непосредственное. К примеру в НЕ ООП языке C исключений нет как таковых.
Совсем демагогию погнал, одним совпадением обосновываешь связь. А к примеру в НЕ ООП языке PL/SQL они есть, и что?

И что? в PL/SQL и ООП есть по самое небалуйся, давно документацию читал?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554470
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ если искать рациональное зерно в использовании исключений - то это визуальное сокращение объёма рутинного кода.
Не только и даже не столько. Главное в другом: любая написанная программистом строка - потенциальное место ошибок, любая ненаписанная - уменьшает количество ошибок в программе. Исключения решают задачи, которые

а) нужно решать
б) без исключений нужно решать большим количеством "рутинного" кода
в) куда надёжнее, чем среднее качество "рутинного кода" у программиста.

Кроме этого, само по себе улучшение структуры программы, выделение чистых ветвей основной логики, обработчиков ошибок, в общем, все преимущества более ясного и чистого кода - дают определённое улучшение, то есть при тех же усилиях на разработку программа выйдет лучше (и, в частности, надёжнее).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554473
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedИ что? в PL/SQL и ООП есть по самое небалуйся, давно документацию читал?
Даже скучно, ты прыгаешь в каждую ловушку подряд. Ни один вменяемый человек не назовёт PL/SQL ООП-языком, а то "ООП", что там есть, настолько подчёркнуто независимо от исключений, что даже твоей наглости не хватит постулировать связь между ними.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554476
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperДля мне исключения просто удобный способ описывать обработку ситуаций, не относящихся к основному потоку программы, отдельно.

Типа:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
- сходи на кухню
- открой холодильник
- возьми кефиру
- отпей глоток

Исключения:
- если там пожар вызови ноль один
- если холодильник спёрли, вызови ноль два
- если что-то не предусмотренное, скажи мне, я разбирусю

В любом случае в конце:
 поставь кефир на место и закрой холодильник, если он открыт.



Это позволяет понять основную мысль программы, не отвлекаясь на детали во-первых, а во-вторых, вводит важное умолчание (сообщить об ненормальности, если она есть, возвратить использованные ресурсы в любом случае).?
О боже, да что за сказочный идиот! Когда у тебя пожар - ты что, первым делом будешь думать о том, чтоб поставить кефир обратно в холодильник, отзвонившись 02? Т.е. будешь рваться поставить кефир обратно, ценой риска собственной жизни?

Давно так не ржал.
WebSharperКак-то раз мне пришлось писать программу расчета зарплаты на языке не поддерживающем исключения, и приходилось вводить подобные умолчания макросами, (типа #define HANDLEERROR(x) error = X; if (error) return error; ) и тупо копипастить эти макросы на каждой строчке.
ООП мозга в действии, что поделать. Обычно не лечится, прогноз отрицательный
WebSharperКстати, socimem, а у вас принят какой-нибудь метод статического анализа, который гарантирует незамалчивание ошибочных ситуаций (не обработку возвращаемых кодов ошибок)?
В смысле? Все необработанные ошибки валятся в логи, и логи регулярно разбираются. В 99% случаев это помогает выявить недокодированные обработки в общем-то вполне себе штатных ситуаций, а не какие-то там исключения.

К примеру так был выловлен адский баг в send/recv методах на блокирующих сокетах линакса, когда они себя вели не совсем так, как прописано в документации, и по тихому разрушали клиентское соединение. И ничего, выловили причины, нарисовали workaround.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554480
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedИ что? в PL/SQL и ООП есть по самое небалуйся, давно документацию читал?
Даже скучно, ты прыгаешь в каждую ловушку подряд. Ни один вменяемый человек не назовёт PL/SQL ООП-языком, а то "ООП", что там есть, настолько подчёркнуто независимо от исключений, что даже твоей наглости не хватит постулировать связь между ними.

Это только тебе так кажется, что я куда-то прыгаю.

А так - ни один вменяемый человек НЕ пишет обработчики исключений на PL/SQL, особенно в прикладном коде, за очень редкими исключениями, и то, вызванными крайне кривожопой реализацией некоторых функций.

К примеру - нет адекватного способа проверить на конвертируемость строки в число, и таки да, приходится писать обработчик исключений на to_number. А была бы функция is_number - такое делать бы не пришлось.

Если и есть место исключениям, так это лишь посылка сигнала "смерти", когда серверный код диагностирует непреодолимое противоречие и бросает исключение в клиента - типо, всё, приплыли, давай делай rollback - а это и есть генерация того самого coredump, с подключением именно внешнего компонента к восстановлению предыдущего состояния (выполнения rollback).

Я бы ото посмотрел на то, как бы там типовой кодер сидел бы и писал catch/finally обработчики события "сделай rollback", натужно восстанавливая предыдущее состояние таблиц (на момент старта транзакций).

Садись два, ты даже тут не шаришь.


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

Ни разу не вправе! все что он вправе - это помереть, и пусть система делает rollback - закрывает хендлы файлов, вычищает аллоцированную память и т.д.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554485
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonsocimedНепосредственное. К примеру в НЕ ООП языке C исключений нет как таковых. Сейчас обсуждается вопрос - а нужны ли они, как сущность, или просто в мозгах ООП апологетов произошел тектонический сдвиг и они вкорячили в язык нечто неестественное, и, что характерно, принципиально неверное, приводящее лишь к созданию нового класса проблем, а не решению старых.
Если писать работу с файлом по всем правилам open/read/write/close то на каждом шаге нужно проверять retcode
и предусматривать goto на стандартный обработчик но не одной ошибки, а ГРУППЫ ошибок класса IO. Исключения -
это просто пакетная обработка группы однородных ошибок. И если искать рациональное зерно в использовании
исключений - то это визуальное сокращение объёма рутинного кода.

Естественно, если ты пишешь код на С, то ЛЮБОЙ системный вызов надо оборачивать в макрос или какой иной обработчик кода возврата (только по этому критерию можно сразу определять говнокод), который будет проверять код возврата, и, в случае неожиданного возврата - помирать нафиг, а не идти на goto.

Нет, ну реально, ты делаешь write, тебе возвращается код - нет места на диске, и что ты дальше будешь делать? Выводить пользователю сообщение "Место кончилось, продолжить да-нет"? Ну отлично, а если это серверное приложение, или пакетная обработка (.BAT/.SH файл, который запускает hudson/jenkins-CI ) как ты и кому ты вопрос да-нет выводить-то будешь?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554489
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedв НЕ ООП языке C исключений нет как таковых.declare exit/continue handler и/или whenever sqlstate ... в разных .../PL --- это не исключения. unwind-protect в лиспах --- это то же не исключения. Ибо так говорил Заратустра socimed.

Нет, потому что поймать и подавить whenever sqlerror не удастся.
Если ты на него наступил, то sqlplus просто помирает, возвращая код ошибки. Вариантов подсуетиться и подобработать нечто - там просто не предусмотрено.

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

Смешные вы деды, хотя чего там, свой аллокатор памяти.....
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554491
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЭксепшены конечно нехорошо юзать для обычного разруливания инфы (как было сказано, например не введены данные в поле).
Это на редкость плохой пример, поскольку так и с исключениями, и без них никто не пишет (ну кроме может быть самого автора несколько лет назад). Но этот пример стоит копнуть поглубже потому, что он.. "серединка на половинку", в нём важна трактовка.

Например, в проекте, которым я занял сейчас, есть набор классов. Объекты этих классов имеют имена, имена вводятся пользователем. Если имя не введено, то никакого исключения не происходит, объект даже может быть сохранён. У объекта есть свойство status, которое при этом (и в многих других случаях) получает значение dismounted, то есть "объект не готов к использованию". Вроде бы всё замечательно, "эксепшны не используются".

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

Вопрос в том, что сервисы могут быть вызваны мимо клиента, например, из интеграции. То есть возможна, например, следующая ситуация: программист написал-настроил какой-то код, который дёргает сервер, передаёт ему id объекта. А администратор взял и сломал этот объект в настройках, ну например, стёр его имя.

Если сервер попробует работать со сломанным объектом, последствия в принципе непредсказуемы (ну в какой-то степени предсказуемы - "скорее всего, где-то что-то сломается"). Поэтому на входе в слой api стоят примерно следующие проверки:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class API {
  public static void doSomething(MyObject o) {
    o.checkReady();
....

public class MyObject extends MyBaseObject
....

public class MyBaseObject {

  public void checkReady() {if (status != READY) throw new ObjectNotReady();}
....



То есть, чисто технически, "эксепшны юзаются для разруливания ситуации "пользователь не заполнил поле"". Но ключ здесь в точке зрения. В форме ввода незаполненность поля - штатная, рядовая ситуация, о которой незачем орать. Внутри ядра операции со сломанным объектом - ситуация нештатная, по которой надо отказаться обрабатывать запрос (и уж точно не падать в корку
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554495
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer Внутри ядра операции со сломанным объектом - ситуация нештатная, по которой надо отказаться обрабатывать запрос (и уж точно не падать в корку
У тебя опять понятийный сдвиг. Если сервер способен понять, что объект сломан - это как раз штатная ситуация, он, сервер, обучен такие ситуации определять и обрабатывать, для него это не исключение, и никто уже не говорит, что ему надо падать в кору, обнаружив пустое поле. Ему нужно лишь послать какую ошибку (код возврата) обратно в вызывающего, если это, конечно, предусмотрено API (если кодов возврата нет, то да, падать в кору - другого пути нет).


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

Все остальные ситуации, которые предусмотрены разработчиком - это как раз НЕ исключительные, а вполне себе штатные.

Почините понятийный аппарат уже, реально не смешно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554500
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНет, потому что поймать и подавить whenever sqlerror не удастся.
Если ты на него наступил, то sqlplus просто помирает, возвращая код ошибки. Вариантов подсуетиться и подобработать нечто - там просто не предусмотрено.Интересно, зачем во многие .../PL -и добавляют оператор resignal, если перед ним все равно ничего поймать не удастся? Зачем делают области видимости для whenever и declare continue/exit handler ?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554506
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedНет, потому что поймать и подавить whenever sqlerror не удастся.
Если ты на него наступил, то sqlplus просто помирает, возвращая код ошибки. Вариантов подсуетиться и подобработать нечто - там просто не предусмотрено.Интересно, зачем во многие .../PL -и добавляют оператор resignal, если перед ним все равно ничего поймать не удастся? Зачем делают области видимости для whenever и declare continue/exit handler ?
Если честно, то без понятия, эти ошибки природы мне не сильно интересны.
Какой смысл изучать изначально кривые и ошибочные реализации? Лучше изучать сразу верные, прямые и правильные "как надо".

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

Причины явления понятны - мозг стремиться или вообще ничего не делать, или идти предельно простым путем (часто ошибочным), но это как-то подозрительно становится нормой.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554507
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЭто только тебе так кажется, что я куда-то прыгаю.
А так - ни один вменяемый человек НЕ пишет обработчики исключений на PL/SQL,
А, понятно.

Ты уже второй раз применяешь аргументацию стиля "во-первых, я вернула кувшин целым, а во-вторых, уже брала его треснутым". Извини, но подобная недобросовестность в аргументации имхо несовместима с конструктивным разговором разумных людей.

socimedЕсли и есть место исключениям, так это лишь посылка сигнала "смерти", когда серверный код диагностирует непреодолимое противоречие и бросает исключение в клиента - типо, всё, приплыли, давай делай rollback - а это и есть генерация того самого coredump, с подключением именно внешнего компонента к восстановлению предыдущего состояния (выполнения rollback).
Раз ты не в курсе, рассказываю: в Oracle для этого не нужен внешний компонент. Сходи поучи теорию, студент, прежде чем пытаться что-то вякать про сложные темы типа обработки ошибок.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
Connected as test
 
SQL> create table c (i integer not null check (i < 5));
 
Table created
 
SQL> begin
  2    insert into c values(1);
  3    insert into c values(2);
  4    commit;
  5    insert into c values(3);
  6    insert into c values(4);
  7    insert into c values(5);
  8  end;
  9  /
 
ORA-02290: нарушено ограничение целостности CHECK(TEST.SYS_C0019086)
ORA-06512: на  line 8
 
SQL> select * from c;
 
---------------------------------------
                                      1
                                      2
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554509
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerРаз ты не в курсе, рассказываю: в Oracle для этого не нужен внешний компонент. Сходи поучи теорию, студент, прежде чем пытаться что-то вякать про сложные темы типа обработки ошибок.

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


В остальном - и о чем твой убогий пример? Ну да, поймал ты check constraint и дальше что? Можно продолжать пытаться в базу постать остальные записи, выдавив в catch блоке сообщения о том, что 3-ая запись не прошла? О чем ты вообще?

Потрудись хоть как-то мысль свою логически завершить неким выводом, пока у тебя это не получилось.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554531
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedСаша, не надо делать из меня дебила, я далеко не первый год в отрасли, и у тебя просто нет на подобные заявы прав, и отправка меня учить буквари выглядит так же смешно, как попытка тобой одеть на дядю милиционера подгузник.
К сожалению, некоторые дяди милиционеры с возрастом впадают в маразм, и на них таки приходится одевать подгузники. В твоём случае о подгузниках не ведаю, а вот теории несколько напоминают...

socimedВ остальном - и о чем твой убогий пример?
О том, что в своих пафосных рассуждениях про PL/SQL ты продемонстрировал незнание азов, и рассуждать о более продвинутых вещах "у тебя просто нет прав" (ц)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554540
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedСаша, не надо делать из меня дебила, я далеко не первый год в отрасли, и у тебя просто нет на подобные заявы прав, и отправка меня учить буквари выглядит так же смешно, как попытка тобой одеть на дядю милиционера подгузник.
К сожалению, некоторые дяди милиционеры с возрастом впадают в маразм,

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

А вот ты это не можешь.

И знаешь почему? Потому что я не впал в маразм, а лишь критически подошел к концепции ООП, сильно засомневавшись в том, не в пали ли в бытность в маразм ее создатели и всякие Страустрапы в частности.

А вот ты - ты ни в какие критически взгляды и не думал перейти, ты лишь пытаешься мне сейчас долдонить некие догматы твоей ВЕРЫ (нечто бездоказательное и малоосмысленное).

И? Думаешь мне интересны твои догматы Веры? Попробуй сначала подрасти над ними, потом вступай в споры. Пока твои примеры - реально, чуть менее, чем убоги все как на подбор - начиная от рентгеновского аппарата (ты там сел в лужу, даже iv_an_ru это признал), кончая вот недавним констрейном.

Все что ты можешь - это лишь в последней отчаянной попытке сохранить свою "репутацию" - попытаться отправить меня учить буквари. Т.е. тебе даже аргументировать уже нечем - выдохся, бедняга, не пробежав и 5 метров.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554546
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554547
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedУ тебя опять понятийный сдвиг. Если сервер способен понять, что объект сломан - это как раз штатная ситуация, он, сервер, обучен такие ситуации определять и обрабатывать,
Во-первых, ты в очередной раз противоречишь своим предыдущим словам. Лифт (сервер) способен понять, что объект сломан (трос порвался). Он, лифт, обучен такие ситуации определять и обрабатывать. То есть по твоей нынешней терминологии это для него штатная ситуация. Тынцать туда, где ты называл её нештатной?

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

socimedЕще раз - падение в кору - это на исключительной ситуации, ситуации, которая НЕ предусмотрена, НЕ ожидается, и НЕ является хоть как-то обрабатываемой хоть кем-то (в т.ч. вызывающим).
Модуль не знает и не может знать, является ли исключительная ситуация обрабатываемой хоть кем-то (в том числе вызывающим). Он знает лишь то, что не может обработать её собственными силами.

socimedПочините понятийный аппарат уже, реально не смешно.
Исцелися, врач.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554555
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote socimed]я сейчас могу запросто включить в себе обратно ООП программиста и себя же разнести по составляющим, довольно четко построив систему правил [/quotе]
Пока что ты не можешь ни выстроить добросовестной аргументации, ни даже для себя построить правила определения штатной-внештатной ситуации такие, что сам в них не путаешься. По этой причине я несколько сомневаюсь в твоей способности разнести что-то страшнее насморка.

Что до твоей неспособности понять простой пример, могу лишь повторить: качай внимательность и учи азы. Ты либо придуриваешься, либо настолько ослеплён своим величием, что не считаешь нужным открыть глаза.

Ну а с фантазиями по поводу моих мыслей ты знаешь, что делать.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554559
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТо есть, чисто технически, "эксепшны юзаются для разруливания ситуации "пользователь не заполнил поле"". Но ключ здесь в точке зрения. В форме ввода незаполненность поля - штатная, рядовая ситуация, о которой незачем орать. Внутри ядра операции со сломанным объектом - ситуация нештатная, по которой надо отказаться обрабатывать запрос (и уж точно не падать в корку

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

Это вот как пример с лифтом тут разбирали... Если человек поставил ногу в дверях и не даёт лифту закрыться, то орать, прерывать работу и дожидаться техника не разумно... Стоит просто рассмотреть эту ситуацию в обычном режиме и попросить пользователя отойти... Обычно эту роль выполняет тётка по ту сторону громкоговорителя... типа "НЕ МЕШАЙТЕ ЗАКРЫТИЮ ДВЕРЕЙ!!!".
С обрывом тросов, от пользователя это не зависит, а потому просьба "вылезьте из лифта через люк и попытайтесь перезакрепить тросы" как минимум не логична. В такой ситуации лифт должен быть полностью остановлен. ОДНАКО!!!... Если у лифта предусмотрены запасные тросы, то работу можно не прерывать, однако обработать ситуацию обрыва тросов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554561
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedпопытаться отправить меня учить буквари.ключевое слово "попытаться". Тщетно попытаться.

Вы настолько нестандартно воспитаны и настолько набиты самомнением, что я было решил, что это торквемада в новых трусах вышел поразвлечься после очередного бана. Увы. Торквемада был по крайней мере последователен в своих предубеждениях и знал соответствующую матчасть.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554563
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot softwarer]socimedя сейчас могу запросто включить в себе обратно ООП программиста и себя же разнести по составляющим, довольно четко построив систему правил [/quotе]
Пока что ты не можешь ни выстроить добросовестной аргументации, ни даже для себя построить правила определения штатной-внештатной ситуации такие, что сам в них не путаешься.
Я как раз вполне могу, и я тебя разбил в пух и прах на примерах рентгена, лифта и базы данных. И еще какого-то мальчика окунул с примером кефира и пожала (это чудо в здравом уме утверждало, что при пожаре надо ставить кефир в холодильник во что-бы то ни стало).

Просто у вас мозг настолько задеревенел, что вы не можете вынырнуть из своего уютненького отформатированного мирка.

Так это не моя проблема аргументации, это проблема задеревенелости ваших мозгов.



[quot softwarer]По этой причине я несколько сомневаюсь в твоей способности разнести что-то страшнее насморка.[/quotе]
Пук в лужу. Должно было наверное зацепить, но ты лишь повеселил окружающих своим "аргументом".

softwarerЧто до твоей неспособности понять простой пример, могу лишь повторить: качай внимательность и учи азы. Ты либо придуриваешься, либо настолько ослеплён своим величием, что не считаешь нужным открыть глаза.

Ну а с фантазиями по поводу моих мыслей ты знаешь, что делать.
Да, да, все так и обстоит. Короче, ты скатился уже до прямых оскорблений, я и не думал, что ты можешь падать так низко в своем бессилии.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554565
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedпопытаться отправить меня учить буквари.ключевое слово "попытаться". Тщетно попытаться.

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

Я уже недавно выяснил причины тотального оглупения. Народ настолько завален информационным шумом, что привлечь его внимание можно только явно вызывающим поведением, чуть ли не дать сначал по сопатке, а потом уже пояснять правила программирования.

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

А я пока лишь пытаюсь потрясти грушу, на которой плотно засели бездумные ООП верующие. Может чего и упадет ценного (пока только увы один компост падает, увы).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554567
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedУ тебя опять понятийный сдвиг. Если сервер способен понять, что объект сломан - это как раз штатная ситуация, он, сервер, обучен такие ситуации определять и обрабатывать,
Во-первых, ты в очередной раз противоречишь своим предыдущим словам. Лифт (сервер) способен понять, что объект сломан (трос порвался). Он, лифт, обучен такие ситуации определять и обрабатывать.
Нет, лифт как раз не обучен, садись в лужу опять, теоретик ты наш рентгеновый.

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

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

Зачем?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554570
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 socimed

Вообщето каждый сервер имеет градацию ошибок - так называемое severity.
Большинство ошибок является штатными или нормально обрабатываемыми.
Тотже MS SQL к примеру имеет аж 24 уровня таких ошибок
Из них только очень малая часть ошибок - Critical. Сбои оборудования, операционной системы и др. вещи
которые сигнализируют о серьезных проблемах в системе. И в этих случаях действительно сервер должен уйти в кор.
В остальных - естественно нет .

ЗЫ:
А вообще грекси ты слишком уныл и не интересен и вообще сегодня суббота - не кошерно тебе сраться на форумах.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554571
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кассир2 socimed

Вообщето каждый сервер имеет градацию ошибок - так называемое severity.
Большинство ошибок является штатными или нормально обрабатываемыми.
Тотже MS SQL к примеру имеет аж 24 уровня таких ошибок
Из них только очень малая часть ошибок - Critical. Сбои оборудования, операционной системы и др. вещи
которые сигнализируют о серьезных проблемах в системе. И в этих случаях действительно сервер должен уйти в кор.
В остальных - естественно нет .
Господи, и что? Где я говорил, что сервер должен падать в обморок вообще на всех типах ошибок?

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

Проблема лишь в том, что в 99.9999% случаев ООП программист ни сном ни духом бросает исключение, и думает, что его там кто-то сверху его обработает и вообще там на верху в курсе, что в него сейчас прилетит ЭТО и знают как с этим справиться.
А в 90% это, мягко говоря, не так (что там наверху справятся с этим попадаловом, не обрушив состояние сервера в полностью неопределенное, не потечя памятью или ресурсами).

Просто серверы типо mssql - они изначально не на ООП написаны (а на голом С, да да), и там как раз унутре с ошибками все чики-пуки, спасибо отцам-создателям из 70-80-х, когда Страустрап еще под стол пешком ходил.

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

КассирЗЫ:
А вообще грекси ты слишком уныл и не интересен и вообще сегодня суббота - не кошерно тебе сраться на форумах.
Я тут срусь чисто набегами, между походами в магазины и на тренировку.

А насчет унылости - не надо ляля, я не первый год на сруле сижу, и отлично знаю, что такое местная "унылосць и тупосць".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554572
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНарод настолько завален информационным шумом, что привлечь его внимание можно только явно вызывающим поведением, чуть ли не дать сначал по сопатке, а потом уже пояснять правила программирования.Если ради такой мелочи нужно "по сопатке", то Торвальдсу следовало начать разработку линукса если не с ядерного взрыва, то с угона самолёта, правда?

Вы попробуйте говорить умные вещи и не говорить глупостей. Уверяю вас, через некоторое время люди будут слушать вас намного внимательней, чем сейчас. И даже будут сами без вашей помощи передавать ваши слова дальше по цепочкам.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554574
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedНарод настолько завален информационным шумом, что привлечь его внимание можно только явно вызывающим поведением, чуть ли не дать сначал по сопатке, а потом уже пояснять правила программирования.Если ради такой мелочи нужно "по сопатке", то Торвальдсу следовало начать разработку линукса если не с ядерного взрыва, то с угона самолёта, правда?
Торвальдс в выражениях не стесняется, ты почитай сначала что он пишет про С++

И при чем тут самолет?


iv_an_ruВы попробуйте говорить умные вещи и не говорить глупостей. Уверяю вас, через некоторое время люди будут слушать вас намного внимательней, чем сейчас. И даже будут сами без вашей помощи передавать ваши слова дальше по цепочкам.
Мне глубоко плевать на каких-то глупых людей. Я уже приводил пример с MISRA. Мне (как не сильно умному) достаточно было просто услышать про него, чтобы сразу кинуться изучать. А местные .... считающие себя не глупыми (бугага три раза) слово MISRA пропустили мимо ушей, как-будто они настолько умны, что прочтение этого руководства - будет преступлением против их идентичности.

И?

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

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

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

Это то хоть понятно сейчас?

Все еще нет?

Пичалька.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554576
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЯ как раз вполне могу, и я тебя разбил в пух и прах
Будь добр религиозные тезисы нести в церковь, а эротические фантазии в туалет.

socimedПук в лужу.
Я и не думал считать тебя лужей.

socimedДа, да, все так и обстоит. Короче, ты скатился уже до прямых оскорблений, я и не думал, что ты можешь падать так низко в своем бессилии.
Хм, спасибо за неожиданный комплимент. Да нет, я иногда разрешаю себе опускаться до уровня собеседника, но это не тот случай.

socimedНет, лифт как раз не обучен, садись в лужу опять, теоретик ты наш рентгеновый.
За выдвижение страхующих распорок отвечают законы физики (ознакомься с конструкцией сначала), а не некое программное обеспечение,
Я сказал, что обучен "лифт", а не "программое обеспечение". Твоё передёргивание расцениваю как признание поражения.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554577
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedПроблема лишь в том, что в 99.9999% случаев ООП программист ни сном ни духом бросает исключение, и думает, что его там кто-то сверху его обработает и вообще там на верху в курсе, что в него сейчас прилетит ЭТО и знают как с этим справиться.


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

Вообщем тебе нужно чтото из азбуки почитать по Try-Catch обработкам.
Потому что они реально есть в той или иной степени в любом языке.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554580
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЯ сказал, что обучен "лифт", а не "программое обеспечение".
И каким образом ты, программист, можешь обучить лифт, кроме как через ПО?

softwarerТвоё передёргивание расцениваю как признание поражения.

Ок, как хочешь, засчитаем сей дешевый прием как последнюю попытку сохранить лицо. Твое.
Будем и дальше продолжать увлекательно пытаться сохранить остатки твоего достоинства или просто закруглимся на этом?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554583
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

Пока вы мне даёте все основания считать вас невоспитанным анонимным дураком, мнящего себя самым умным и к тому же телепатом, вы можете хоть заподталкиваться.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554587
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирsocimedПроблема лишь в том, что в 99.9999% случаев ООП программист ни сном ни духом бросает исключение, и думает, что его там кто-то сверху его обработает и вообще там на верху в курсе, что в него сейчас прилетит ЭТО и знают как с этим справиться.


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

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


КассирНе обязательно заниматся кровь из носа восстановлением испорчерного состояния, но занятся логированием перед смертью приложения и попыткой сохранения важных данных - вполне полезно.
Проблема в том, что это логгирование может и не сработать, это раз. А два - 99.99% написанного кода, особенно серверного, спокойно пытается продолжать работу, поймав необработанное исключение, как-будто так и было задумано.

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

КассирВообщем тебе нужно чтото из азбуки почитать по Try-Catch обработкам.
Потому что они реально есть в той или иной степени в любом языке.
О, еще один местный "гений" решил мне про азбуки рассказать. Иди сам читай, может чего и прочитаешь там, между строк, предыдущие прочтения тебе похоже не сильно и помогли.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554588
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimed,

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

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

Займеся выяснением кто из нас воспитаннее или больший дурак? Могу дать фору по обеим направлениям.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554590
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короче я понял о чем говорит Грекс.
С точки зрения восстановления данных он прав, никто не занимается восстановлением данных в блоках Catch.
Это просто не имеет смысла в большинстве случаев. Обычно в Catch дается возможность попытаться понять и сообщить что произошло и прекратить дальнейшее выполнения цепочки действий.

Это правильно с точки зрения одной взятой компоненты. Но с точки зрения приложения - это неверно.

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

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

Собственно так и работает ОСь, крах приложения с любой ошибкой ведет к смерти приложения но не ОСи.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554593
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedИ каким образом ты, программист, можешь обучить лифт, кроме как через ПО?
Довольно жалкая попытка сменить тему. Итого имеем:

модуль "лифт" умеет реагировать на обрыв троса аварийным торможением

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

итого, согласно последней версии твоих определений, для "лифта" это штатная ситуация

ты же называл её нештатной, что зафиксировано в форуме

итого, ты пытаешься впарить то, в чём сам блуждаешь и путаешься

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

socimedОк, как хочешь, засчитаем сей дешевый прием как последнюю попытку сохранить лицо. Твое. Будем и дальше продолжать увлекательно пытаться сохранить остатки твоего достоинства или просто закруглимся на этом?
Моё достоинство от тебя никак не зависит. А насчёт дешевизны уж извини, подбираю под собеседника.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554595
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedПока мне носом не ткнули в тот факт, что память может быть разнушена настолько, что даже логгирование уже не сработает, не говоря уже про продолжение работы.
Может. Мало того, может быть разрушена память с программным кодом, так что и попытка уйти в кору не сработает. Вон как на Фобосе - плюхнулся битик, и if (a) goto core станет if (a) goto continue.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554598
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЗаймеся выяснением кто из нас воспитаннее или больший дурак? Могу дать фору по обеим направлениям.
Это звучит как признание себя самым воспитанным дураком. Судя по выше написанному невоспитанный, но не не дурак. Какая-то логическая нестыковка.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554599
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedПока мне носом не ткнули в тот факт, что память может быть разнушена настолько, что даже логгирование уже не сработает, не говоря уже про продолжение работы.


Я тебе попытаюсь показать на пальцах.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
try
{
   //Вероятность выполнения этого кода 100%
   ...
}
catch()
{
    try
    {
    //Вероятность выполнения этого кода 0.01%
     Log();
    }
    catch()
    {
        //Вероятность выполнения этого кода 0.0001% (сбой оборудования, ОС и др.)
    }
}



Вот ты пытаешся апеллировать к вероятности в 0.0001%. Причем никак не рассказываешь как побороть оставшиеся 0.0001% случаев, а пытаешся убрать трай кетчи и просто лететь сразу в кор без логирования.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554600
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedИ каким образом ты, программист, можешь обучить лифт, кроме как через ПО?
Довольно жалкая попытка сменить тему. Итого имеем:

модуль "лифт" умеет реагировать на обрыв троса аварийным торможением

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

итого, согласно последней версии твоих определений, для "лифта" это штатная ситуация

Абсолютно неверно.
Штатная ситуация - это та ситуация, которая происходит при нормальном функционировании объекта.

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

Я об этом говорил уже раз пять минимум.

С какого это перепугу обрыв тросса - штатная ситуация?

Штатная ситуация ошибки - это когда пользователь, находясь на 7-м этаже, нажимает кнопку 7. В результате система выдает ошибку, бибикнув, типо что ты делаешь, глупыш. Выпадать в кору, прекращать свое существование на этом действии лифт не должен. Ногу засунул в дверь - тоже штатная ситуация, да, ошибка пользователя, падать в кору? Нет конечно, вот обработчик (через if, блин, а не через catch, если и это еще никто до сих пор не понял).

Но если распорки выпущены (брошен exception_ - все, никакие нажатия кнопок не имеют право вернуть лифт в рабочее состояние, неужели это так трудно осознать?

softwarer ты же называл её нештатной, что зафиксировано в форуме

итого, ты пытаешься впарить то, в чём сам блуждаешь и путаешься

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

Мне уже лень отвечать на эти ложные выводы. Хочешь считать так - считай себе дальше, мне лично уже все равно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554602
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирКороче я понял о чем говорит Грекс.
С точки зрения восстановления данных он прав, никто не занимается восстановлением данных в блоках Catch.
Это просто не имеет смысла в большинстве случаев. Обычно в Catch дается возможность попытаться понять и сообщить что произошло и прекратить дальнейшее выполнения цепочки действий.

Это правильно с точки зрения одной взятой компоненты. Но с точки зрения приложения - это неверно.

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

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

Собственно так и работает ОСь, крах приложения с любой ошибкой ведет к смерти приложения но не ОСи.

Все верно, и вот тут самое время (получив хоть одного что-то понимающего) перейти к следущему циклу холивара - осознать, что любая система (отказоустойчивая) должна состоять:

- из независимых компонент, каждое из которых может падать в кору, не обваливая соседние
- компоненты общаются между собой специальными вызовами (marshalling, RPC, что угодно из отряда IPC, да хоть http-json)
- отдельно должен существовать компонент-монитор, который отслеживает состояние системы в целом и перезапускает компоненты, которые упали почему-то.


Если говорить про, допустим, веб сервер, то нам нужно иметь

- монитор (zabbix, systemd)
- компонент, который отвечает за поддержку очереди клиентов (nginx, haproxy, squid)
- компонент, который отвечает за логику приложения (apache, php)
- компонент, которых отвечает за базу данных (mysql)

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

При этом зоной риска является apache и php - место, где сидит прикладной код. Завалить сервер баз данных или nginx по определению намного сложнее, просто потому что туда не пускают недоученных кодировщиков с пятью классами московского мехмата, которые по причине непонимания базовых концепций пишут сказочный говнокод уже который год.


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

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

Ура ура.

А то лифты, рентгены, азбуки. Ути пути. Глаза разуйте - все придумано и так до вас.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554603
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedпамять может быть разнушена настолько, что даже логгирование уже не сработает, не говоря уже про продолжение работы.память может быть разрушена настолько, что и корка не сдампится. Это не повод кричать "а-а-а, всё пропало" и саботировать написание кода согласно требованиям в пользу того кода, который больше нравится.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554604
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimed,

С точки зрения Здания (Сервер) это штатная ситуация. Лифт оборвался, улетел вниз, ну и хрен с ним. Сообщили о инциденте и забыли. На работу отдела на первом этаже это почти никак не повлияет.
А ты пытаешся рассказать что обрыв лифта внутри здания ведет к выводу из строя всего Здания (Сервера).

Чтобы вывести из строя здание, нужно валить его пилоны, а єто уже совсем другая ситуация.
Также как и чтобы вывести из строя ОСь нужно валить ее ядро.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554606
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedпамять может быть разнушена настолько, что даже логгирование уже не сработает, не говоря уже про продолжение работы.память может быть разрушена настолько, что и корка не сдампится. Это не повод кричать "а-а-а, всё пропало" и саботировать написание кода согласно требованиям в пользу того кода, который больше нравится.

Корку дампит внешний компонент, читая /proc/x/mem

У вас не так?

Садись два. Попытка показаться умным не удалась.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554608
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedКассирКороче я понял о чем говорит Грекс.
С точки зрения восстановления данных он прав, никто не занимается восстановлением данных в блоках Catch.
Это просто не имеет смысла в большинстве случаев. Обычно в Catch дается возможность попытаться понять и сообщить что произошло и прекратить дальнейшее выполнения цепочки действий.

Это правильно с точки зрения одной взятой компоненты. Но с точки зрения приложения - это неверно.

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

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

Собственно так и работает ОСь, крах приложения с любой ошибкой ведет к смерти приложения но не ОСи.

Все верно, и вот тут самое время (получив хоть одного что-то понимающего) перейти к следущему циклу холивара - осознать, что любая система (отказоустойчивая) должна состоять:

- из независимых компонент, каждое из которых может падать в кору, не обваливая соседние
- компоненты общаются между собой специальными вызовами (marshalling, RPC, что угодно из отряда IPC, да хоть http-json)
- отдельно должен существовать компонент-монитор, который отслеживает состояние системы в целом и перезапускает компоненты, которые упали почему-то.


Если говорить про, допустим, веб сервер, то нам нужно иметь

- монитор (zabbix, systemd)
- компонент, который отвечает за поддержку очереди клиентов (nginx, haproxy, squid)
- компонент, который отвечает за логику приложения (apache, php)
- компонент, которых отвечает за базу данных (mysql)

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

При этом зоной риска является apache и php - место, где сидит прикладной код. Завалить сервер баз данных или nginx по определению намного сложнее, просто потому что туда не пускают недоученных кодировщиков с пятью классами московского мехмата, которые по причине непонимания базовых концепций пишут сказочный говнокод уже который год.


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

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

Ура ура.

А то лифты, рентгены, азбуки. Ути пути. Глаза разуйте - все придумано и так до вас.

Ну ты сейчас кажешся немножечко идиотом.
Потому что пришел сюда под знамена "Долой Трай Кетч!"
А философия Трай Кетч как раз и построена на архитектуре разделения компонент.
И дается возможность вызывающему "перезапустить, обработать, залогировать" сбои в этой компоненты.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554609
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кассирsocimed,

С точки зрения Здания (Сервер) это штатная ситуация. Лифт оборвался, улетел вниз, ну и хрен с ним. Сообщили о инциденте и забыли. На работу отдела на первом этаже это почти никак не повлияет.
А ты пытаешся рассказать что обрыв лифта внутри здания ведет к выводу из строя всего Здания (Сервера).

Чтобы вывести из строя здание, нужно валить его пилоны, а єто уже совсем другая ситуация.
Также как и чтобы вывести из строя ОСь нужно валить ее ядро.

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

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

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

На тему - какой идиотище придумал pthread и вообще сказал совать все компоненты системы в один процесс?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554611
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedЧитай выше. У тебя уже есть просветвления, в части того, что компоненты системы должны быть изолированы, и падение одного из них в кору (и рестарт оного) не должны обрушивать всю систему.


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

А ты пытаешся тут рассказать про вылеты в кор и бесполезности Трай Кетч не понимая,
что обьект класса это и есть контролиуемая компонета .
Потому что состояние ее инкапсулировано. И внешний вызывающий код просто обрабатывает ситуацию сбоя в этом обьекте.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554612
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирНу ты сейчас кажешся немножечко идиотом.
Потому что пришел сюда под знамена "Долой Трай Кетч!"
А философия Трай Кетч как раз и построена на архитектуре разделения компонент.
И дается возможность вызывающему "перезапустить, обработать, залогировать" сбои в этой компоненты.

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

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

Ну реально, взял и протер рандомно память всех НЕ СВОИХ объектов (и твоих тоже), и что ты там будешь ловить в своих catch, чудо?

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

А ты такой сидишь и думаешь - ох, ептыть, ничего страшного, в логах то НЕТ НИЧЕГО (логи писать некому было, все померло, в т.ч. писалка логов).

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

catch, ага ага.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554613
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирsocimedЧитай выше. У тебя уже есть просветвления, в части того, что компоненты системы должны быть изолированы, и падение одного из них в кору (и рестарт оного) не должны обрушивать всю систему.


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

Осознание себя идиотом - уже делает тебя умным. Без дураков, это один из критериев (не многие на это способны).
У тебя есть задатки, не останавливайся.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554614
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНа тему - какой идиотище придумал pthread и вообще сказал совать все компоненты системы в один процесс?"Узок их круг, страшно далеки они от народа".
Нити - это прагматизм. Что характерно, не мешающий догматикам делать по одной нитке на процесс.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554615
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирТоесть с точки зрения отдельно взятой маленькой компоненты уйти в кор - это правильно.
С точки зрения сервера - в корне неверно.Собсно, softwarer питал то же самое три страницы тому назад. И раз компонента не знает, что ей делать, она должна не убивать весь процесс, а аккуратно сообщить о нерешаемой проблеме наверх. Просто и логично. Предмет спора отсутствует. Но при этом socimed ведёт себя как кот креативного директора и в лучшем случае призывает читать весьма азбучные спеки как будто там одиннадцатая заповедь, а в худшем --- путается в собственных словах.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554616
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovsocimedНа тему - какой идиотище придумал pthread и вообще сказал совать все компоненты системы в один процесс?"Узок их круг, страшно далеки они от народа".
Нити - это прагматизм. Что характерно, не мешающий догматикам делать по одной нитке на процесс.

Это понятно, что прагматизм - памяти раньше было мало, накладные расходы на процесс велики, и надо было что-то с этим делать.

Но в современных реалиях (процесс и тред делаются одной и той-же фукнцией clone()), а также наличия CoW (copy-on-write - порожденные процессы используют те-же data сегменты памяти, что и родитель, до первой операции записи одной из сторон) ставят под вопрос адекватность тех, кто в здравом уме начинает писать на тредах в наше время.

Вернее не ставят - они вполне адекватны канонам отсуствия осмысленности своих действий, но мы говорим не про их адекватность ситуации "делай как все мы дураки делаем, ибо так принято у нас тут, и не задавай вопросов".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554619
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedКак насчет того, что catch не сработает просто потому, что соседний безумный компонент напрочь разрушил память и твоего компонента тоже?

Ну реально, взял и протер рандомно память всех НЕ СВОИХ объектов (и твоих тоже), и что ты там будешь ловить в своих catch, чудо?


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

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


Ну к слову в лифте внизу шахты есть пружины. Это тот самый кетч. И да, те кто их туда ставят, подразумевают что в аварийный момент эти пружины будут на месте и все также будут пружинить по все тем же законом ньютона.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554620
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruКассирТоесть с точки зрения отдельно взятой маленькой компоненты уйти в кор - это правильно.
С точки зрения сервера - в корне неверно.Собсно, softwarer питал то же самое три страницы тому назад. И раз компонента не знает, что ей делать, она должна не убивать весь процесс, а аккуратно сообщить о нерешаемой проблеме наверх. Просто и логично. Предмет спора отсутствует. Но при этом socimed ведёт себя как кот креативного директора и в лучшем случае призывает читать весьма азбучные спеки как будто там одиннадцатая заповедь, а в худшем --- путается в собственных словах.

Еще раз - расширяем сознание, расширяем!

Компонента - это отдельный изолированный процесс. Совать несвязанные (или слабо связанные) компоненты в один процесс запрещено (в современной архитектуре LAMP, к примеру, сделанно именно так). Даже сессия Пупкина физически изолирована от сессии Петрова - на уровне процессов apache, падение Пупкина никак не завалит Петрова или Сидорова.

Это то хоть понятно уже?

Еще раз для тех, кто любит падать ниц перед авторитетами. Берем архитектуру LAMP и просвещаемся до полного просветления, где и как кому там положено падать и когда, чтоб не завалить вообще всех (даже по mysql - обтекаем на тему MySQL HA, replication, etc)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554621
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedАбсолютно неверно.
Штатная ситуация - это та ситуация, которая происходит при нормальном функционировании объекта.
Любая аварийная сиутация - она нештатная,
Ты опять меняешь определение.

Вообще, не знаю, читал ли ты "1984", но твой стиль очень похож: ты пытаешься внедрить "новояз", причём с официально содержащимся в нём двоемыслием и принципиальной невозможностью высказаться на нём "неверно".

По сути ты пытаешься сказать, что классификация ситуации зависит от способности с ней справиться; умеет продукт обработать - ситуация штатная, не умеет - нештатная. Пикантности придаёт тот факт, что даже так стройной системы не получается. Ради лифта тебе пришлось ввести требование "возврата в нормальное состояние", мол, способна система восстановиться - значит, штатное, не способна - значит нештатное и должна падать в кору. На этом пути тебя ждёт очередное жестокое разочарование, такая система как самолёт. Летит он себе, летит, бац - в него прилетает ракета, двигатели повреждены, впереди аварийная посадка. Нештатная ситуация? Ну да, безусловно, во всяком случае вернуться в нормальный полёт самолёт неспособен. Что делать, падать в кору? Ну да, конечно, чтоб в соответствии с законами физики". Потом построим новый самолёт и новых пассажиров.

Ладно, бог с ними, с твоими путаницами. Под сурдинку ты пытаешься просунуть вторую "идею", мол "штатные ситуации" надо обрабатывать if-ами и не надо exception-ами. Почему? Да потому что они "штатные". И вот из-за этого-то ты и вертишься с определением штатных как уж на сковородке. Пытаясь деликатно прикрыть тот факт, что сама аргументация, мягко говоря, высосана.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554624
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте поговорим о концепции Crash-only
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554625
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

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

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

Что теперь получается? А то, что мы не сможем вынести контроль энергией в отдельный модуль, так как нам нужны методы этого модуля в процессе движения лифтом, а также в процессе обработки входящих команд. + на всех уровнях мы будет создавать уйму проверок на наличие энергии и задавать соответствующие реакции. А представьте, если у лифта есть запасной трос, на случай обрыва основного, и логика при обрыве та же, что и при пропадании энергии? ещё одна проверка на каждом этапе (приём команды, выполнение команды, завершение команды)? Сколько времени и сил будет затрачено? И насколько модульным получится код? то есть сможем ли мы нанять двух программистов, один из которых будет отвечать за безопасность, а другой за электронику? НЕТ!!! они будут в каждой второй строчке влазить в код друг-друга.

А теперь то же, но на эксепшенах... Программируем команды езды лифта, нажатия кнопок etc. И в случае проблемы с выполнением очередной команды пробрасываем исключение (если хотим - обрабатываем внутри процедуры причину ошибки, что не очень удобно... но лучше в данном случае пробрасывать некое общее исключение аля "отсутсвует требуемый ресурс" или просто "ошибка выполнения того-то"). А в основном коде оборачиваем все процессы в try..catch..finally... В catch проверяем целостность системы и определяем причину ошибки и её критичность (для питания подрубаем локальный источник, для тросов активируем запасные). А в finally, если ошибка не критична даём команду на завершение текущей операции. Каждый повторный ввод команды будет сопровождаться проверкой целостности и игнорироваться в случае, если что-то не так (соответственно логироваться). И тогда вся система становится модульной (мне пофигу как контролируется процесс энергоснабжения, если я программирую езду лифта. Я просто знаю, что если нету нужных ресурсов, то стоит сказать об этом системе лифта, а там уже всё разрулят).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554627
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛагманДавайте поговорим о концепции Crash-only Meteorit-hit-only

Лучше об этой
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554628
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирsocimedКак насчет того, что catch не сработает просто потому, что соседний безумный компонент напрочь разрушил память и твоего компонента тоже?

Ну реально, взял и протер рандомно память всех НЕ СВОИХ объектов (и твоих тоже), и что ты там будешь ловить в своих catch, чудо?


Во-первых, есть куча мейнстримовых языков где ты память соседних обьектов так просто не потрешь.
Это только в языках, специально созданных для участников паралимпиад по программированию.
Особо дуракоустойчивых: Java, C#, PHP, 1C.

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


Кассир И их на сегодня большинство.
Ну да, и 95% людей - идиоты. И что с того?

КассирВо-вторых, я удивлен что ты еще сидишь дома не прикладывая кухонную дощечку к голове. Ведь в любой момент тебе в форточку может залететь метеорит и поцелить тебе прямо в голову. Также как невозможность записать лог, всетаки вероятность ненулевая. Будешь идти на кухню, прихватишь дощечку на всякий.
В-третьих, всматриватся в картинку до просветления 15540627
Я кастрюлю на голове ношу, даже фоточки есть:




КассирУ тебя ситуация всё, приплыли, лифт не только сорвался и упал в шахту, он упал так, что пробил нафиг пол и попал и в магазин, и в офис, поубивав там человеков.


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

Лифты разрабатывают не программисты ООП, потому не надо выстраивать такие аналогии, что пружина - это catch.
Нифига это не catch, это лишь способ как-то смягчить последствия core dump

Если бы на пружине прыгали по 10 раз на дню - вот тогда да, это был бы catch
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554629
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedКомпонента - это отдельный изолированный процесс. Совать несвязанные (или слабо связанные) компоненты в один процесс запрещено (в современной архитектуре LAMP, к примеру, сделанно именно так). ....
(зевая) Изолированных процессов не существует, ну по крайней мере пока мы говорим об аппаратуре с произвольным доступом к памяти. На компе выполняется единственная программа, под названием ОС, и "изолированные процессы" - обманчивая абстракция, которой она утешает горе-программистов. "Никому верить нельзя, мне - можно" (ц) "Уж я-то ни разрушу ни собственной памяти, ни вашей", и прочее в том же духе.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554631
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНо в современных реалиях (процесс и тред делаются одной и той-же фукнцией clone()), а также наличия CoW (copy-on-write - порожденные процессы используют те-же data сегменты памяти, что и родитель, до первой операции записи одной из сторон) ставят под вопрос адекватность тех, кто в здравом уме начинает писать на тредах в наше время.Вашу адекватность оно ставит под сомнение.
COW использует, о ужас, исключения и появился он достаточно давно, чтобы применяться даже кондовым fork-ом. Потому как деталь VMM.
Проблема в том, что никакое IPC не может конкурировать с механизмами синхронизации внутри процесса.
С учётом того, что защитные страницы, которые тоже деталь VMM, решают существенную часть проблем защиты памяти ниток друг от друга - нет у многопроцессной модели никаких выдающихся преимуществ перед многопоточной.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554632
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimed,

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

Вот допустим играешь ты в игрулину - стратегию. И в стратегии у тебя висит 400500 монет. Открываешь
ты эту крякалку и просто ищешь в адрессном пространстве своей игрухи число 400500, а таких мест допустим 50.
Какое именно место отвечает за монеты естественно программа узнать не может, поэтому все эти места редактирует,
допустим в 1000500. И что ты думаешь ? Кор дамп, игруха не запускается, посыпались графические лаги. Хрен там,
сколько так не делали в разных игрухах такого замечено не было. Я это к чему, по теории вероятности наверное добрую
треть адрессного пространства вообще можно потереть нулами и это почти никак не скажется на работе ПО.
И так впринципе работает все ПО. Как известно нет такого сложного ПО в котором нет багов, некоторые баги
живут десятки лет. Потому в кор уходить совсем не обязательно в большинстве случаев.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554633
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarersocimedАбсолютно неверно.
Штатная ситуация - это та ситуация, которая происходит при нормальном функционировании объекта.
Любая аварийная сиутация - она нештатная,
Ты опять меняешь определение.
Ничего я не меняю, я тебе талдычу одно и то-же, просто иногда разными словами.
Я чтоли виноват, что ты не можешь с первого раза осилить сказанное так, как задумывал автор.

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


softwarerПо сути ты пытаешься сказать, что классификация ситуации зависит от способности с ней справиться;
Уже теплее, да.

softwarer умеет продукт обработать - ситуация штатная, не умеет - нештатная.
Ура ура!

softwarer Пикантности придаёт тот факт, что даже так стройной системы не получается. Ради лифта тебе пришлось ввести требование "возврата в нормальное состояние", мол, способна система восстановиться - значит, штатное, не способна - значит нештатное и должна падать в кору.
Йес! ты наконец-то прочитал то, что я писал, прежде чем начинать писать опровержения!


softwarer На этом пути тебя ждёт очередное жестокое разочарование, такая система как самолёт. Летит он себе, летит, бац - в него прилетает ракета, двигатели повреждены, впереди аварийная посадка. Нештатная ситуация? Ну да, безусловно, во всяком случае вернуться в нормальный полёт самолёт неспособен. Что делать, падать в кору? Ну да, конечно, чтоб в соответствии с законами физики". Потом построим новый самолёт и новых пассажиров.
Ну вообще-то при прилете в самолет ракеты - да, он в 99.9% случаях падает. В кору. С генерацией посмертных логов в черный ящик.

Бывает иначе? Приведи примеры конкретных случаев, статистику сравним - скольким самолетам удалось выжить после попадения в них ракеты и приземлиться.

softwarerЛадно, бог с ними, с твоими путаницами. Под сурдинку ты пытаешься просунуть вторую "идею", мол "штатные ситуации" надо обрабатывать if-ами и не надо exception-ами. Почему?
Потому что современное глупое прямоходящее существо, под названием кодер - потерял способность отличать их.
if-ы от exception. Он и вовсе норовит exception использовать как эдакий суррогат return.

Почему так? Ну потому что ему очень легко эти exception использовать, а по рукам бить некому - все работает и так.
До первой внештаной ситуации с потерей данных (которую в 99.9999% случаев просто замалчивают, и никак не чинят).

Т.е. тот самый тектонический сдвиг парадигм и понятийного аппарата.

И решение у него одно - вообще запрет использования exception

softwarer Да потому что они "штатные". И вот из-за этого-то ты и вертишься с определением штатных как уж на сковородке. Пытаясь деликатно прикрыть тот факт, что сама аргументация, мягко говоря, высосана.
Хочешь считать так - считай, я не буду специально бороться против ограниченности твоего восприятия и суждения - ты волен находиться в каких угодно системах заблуждений и неверных трактовок сказанного мной и не только мной.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554634
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
socimedЕсли бы на пружине прыгали по 10 раз на дню - вот тогда да, это был бы catch

Интересно, на каком это кетче прыгают по десять раз на дню ?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554635
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedБерем архитектуру LAMP и просвещаемся до полного просветления, где и как кому там положено падать и когда, чтоб не завалить вообще всехНа нагрузках, которые требуются нашим клиентам, LAMP не имеет ни малейших шансов. Ни A, ни M, ни P. Ни вместе, ни по отдельности. Потому что полные безнадёжные тормоза.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554636
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КассирИнтересно, на каком это кетче прыгают по десять раз на дню ?У нас это "Socket error ...". И не по десять, а гораздо больше.

P.S. Да, в требованиях к оборудованию есть фраза про устойчивый интернет-канал, но - что есть у пользователей, с тем и работают.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554641
Кассир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovКассирИнтересно, на каком это кетче прыгают по десять раз на дню ?У нас это "Socket error ...". И не по десять, а гораздо больше.

P.S. Да, в требованиях к оборудованию есть фраза про устойчивый интернет-канал, но - что есть у пользователей, с тем и работают.

Надо не прыгать на кетче, нужно уходить в кор дамп.
Так светоч обьектно традиционно ориентированого программирования говорит,
Негоже спорить с отцом русских стилей рукопашных приемов на дельфи
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554662
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedНичего я не меняю, я тебе талдычу одно и то-же, просто иногда разными словами.
Ну да, ну да.

socimedЯ чтоли виноват, что ты не можешь с первого раза осилить сказанное так, как задумывал автор.
Конечно. Ведь ты задумывал изложить бред экстремальную точку зрения в хамских ярких формулировках так, чтобы с ним согласились.

socimedУже теплее, да.
Да успокойся ты. Как бы тебе ни хотелось тешить себя мыслью "меня не понимают, поэтому возражают", на самом деле возражают именно потому, что понимают.

socimedНу вообще-то при прилете в самолет ракеты - да, он в 99.9% случаях падает. В кору. С генерацией посмертных логов в черный ящик. Бывает иначе? Приведи примеры конкретных случаев, статистику сравним - скольким самолетам удалось выжить после попадения в них ракеты и приземлиться.
Бывает, бывает. Начиная с широко известного случая, когда МиГ приземлился с торчащим из борта Sidewinder-ом. Но смотреть надо не эту статистику, а другую: сколько самолётов уничтожается ракетой, а сколько - после поражения сохраняет достаточную целостность и управляемость (и покидается лётчиками потому, что ждать следующей ракеты или сажать повреждённую машину дураков нет). Тут можно начать со столь же широко известного Пауэрса, по которому после первого попадания выпустили ещё пять ракет. К твоему сведению, вообще, у лётчиков и зенитчиков в инструкции прописаны так называемые двойные пуски, то есть по цели обычно стреляют двумя ракетами сразу - и тем не менее, пилоты с хорошей вероятностью приземляются живыми и относительно невредимыми.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554684
Фотография акуз-лингвист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruКассирТоесть с точки зрения отдельно взятой маленькой компоненты уйти в кор - это правильно.
С точки зрения сервера - в корне неверно.Собсно, softwarer питал то же самое три страницы тому назад. И раз компонента не знает, что ей делать, она должна не убивать весь процесс, а аккуратно сообщить о нерешаемой проблеме наверх. Просто и логично. Предмет спора отсутствует. Но при этом socimed ведёт себя как кот креативного директора и в лучшем случае призывает читать весьма азбучные спеки как будто там одиннадцатая заповедь, а в худшем --- путается в собственных словах. беда в том, что в 99% наверху обрабатывают штатные ошибки, игноря аккуратные сообщения.

Возьми любой код с тырнета с коннектом к субд и посмотри, обрабатывается ли там ошибки сети.
А не стаандартное 'неверный логин/пароль'.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554690
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТут можно начать со столь же широко известного Пауэрса, по которому после первого попадания выпустили ещё пять ракет.Пауэерс, кстати, подарил ещё одну историю про надёжность. Уже в отставке, он постоянно летал на вертолёте, у которого давным-давно был сбит ноль на топливомере. В один прекрасный день один черезчур внимательный механик это заметил на земле, исправил, но не сообразил, что это старый дефект, на который пилоты делали известную поправку. И никому не сказал. Пребывавший в неведении Пауэрс внезапно для себя остался без топлива и разбился.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554692
Фотография акуз-лингвист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusoftwarerТут можно начать со столь же широко известного Пауэрса, по которому после первого попадания выпустили ещё пять ракет.Пауэерс, кстати, подарил ещё одну историю про надёжность. Уже в отставке, он постоянно летал на вертолёте, у которого давным-давно был сбит ноль на топливомере. В один прекрасный день один черезчур внимательный механик это заметил на земле, исправил, но не сообразил, что это старый дефект, на который пилоты делали известную поправку. И никому не сказал. Пребывавший в неведении Пауэрс внезапно для себя остался без топлива и разбился. вот это и есть 'аккуратно сообщить наверх'.
Тот самый случай, когда надо было кричать, а вместо этого механик отделался экепшеном не критическим.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554700
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedО боже, да что за сказочный идиот!

Товарищ модератор, не отключайте его, пожалуйста, я еще не наигрался!
Готов признать себя идиотом, мальчиком-инвалидом, участником паралимпиады.

А вы, socimed, попробуйте не оскорблять явно, а хотя бы как-то опосредованно. А то во-первых, вас отключат, во-вторых, другие люди подумают, что вы просто не владеете чем-то более сложным :)

WebSharperКак-то раз мне пришлось писать программу расчета зарплаты на языке не поддерживающем исключения, и приходилось вводить подобные умолчания макросами, (типа #define HANDLEERROR(x) error = X; if (error) return error; ) и тупо копипастить эти макросы на каждой строчке.
ООП мозга в действии, что поделать. Обычно не лечится, прогноз отрицательный


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

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


То есть получается что пока ситуация не возникнет вы об этом не узнаете?
А как они достигают лога? Вот, например у меня есть вызов какой-нибудь функции. Если нет исключений обычно либо она возвращает код ошибки (типа HRESULT под виндой), либо устанавливает какой-нибудь признак ошибки (типа GetLastError) если ничего специального не делать, то она ни в лог не попадет ни обработается. Могу себе представить, что сообщение второго типа можно записать в лог, но это будет только последнее такая ситуация на момент записи в лог и предыдущую она замаскирует.

Как сделано у вас?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554702
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
акуз-лингвистiv_an_ruпропущено...
Пауэерс, кстати, подарил ещё одну историю про надёжность. Уже в отставке, он постоянно летал на вертолёте, у которого давным-давно был сбит ноль на топливомере. В один прекрасный день один черезчур внимательный механик это заметил на земле, исправил, но не сообразил, что это старый дефект, на который пилоты делали известную поправку. И никому не сказал. Пребывавший в неведении Пауэрс внезапно для себя остался без топлива и разбился. вот это и есть 'аккуратно сообщить наверх'.
Тот самый случай, когда надо было кричать, а вместо этого механик отделался экепшеном не критическим."не критическим экепшеном" отделался тот пилот, который установил _традицию_ чтения кривой шкалы вместо соблюдения _регламента_ "запись в журнал --- ремонт и запись в журнал --- контроль".
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554705
Фотография акуз-лингвист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruакуз-лингвистпропущено...
вот это и есть 'аккуратно сообщить наверх'.
Тот самый случай, когда надо было кричать, а вместо этого механик отделался экепшеном не критическим."не критическим экепшеном" отделался тот пилот, который установил _традицию_ чтения кривой шкалы вместо соблюдения _регламента_ "запись в журнал --- ремонт и запись в журнал --- контроль". то есть цепочка необработаных некритических эксепшенов, приведшая к краху системы.
О чем и пытается сказать грекс.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554710
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
акуз-лингвист,

Вариант "выпрыгнуть с летящего вертолёта при обнаружении дрейфа шкалы прибора" тоже как-то не очень :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554711
Фотография акуз-лингвист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruакуз-лингвист,

Вариант "выпрыгнуть с летящего вертолёта при обнаружении дрейфа шкалы прибора" тоже как-то не очень :) так раньше надо было кричать. Выпадать в кору.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554714
Фотография акуз-лингвист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
акуз-лингвистiv_an_ruакуз-лингвист,

Вариант "выпрыгнуть с летящего вертолёта при обнаружении дрейфа шкалы прибора" тоже как-то не очень :) так раньше надо было кричать. Выпадать в кору. в-смысле для пилота в полете это штатная ситуция, а вот механик на земле должен был оповестить громко под роспись о замене.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554723
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
акуз-лингвистiv_an_ruИ никому не сказал. Пребывавший в неведении Пауэрс внезапно для себя остался без топлива и разбился. вот это и есть 'аккуратно сообщить наверх'.
Тот самый случай, когда надо было кричать, а вместо этого механик отделался экепшеном не критическим.
Вот это и есть как раз отсутствие эксепшна. Пауэрс вместо того, чтобы кричать, прореагировал на проблемную ситуацию доступным ему образом. Позже механик, вместо того, чтобы кричать, прореагировал на проблемную ситуацию доступным ему образом. Оба изо всех сил постарались "не бросить эксепшн наверх". В результате....

П.С. А что здесь будет аналогом "падения в кору"? Приземлить вертолёт в том месте, где обнаружил погрешность прибора, и радировать "дальше не полечу"?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554729
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
акуз-лингвистакуз-лингвистпропущено...
так раньше надо было кричать. Выпадать в кору. в-смысле для пилота в полете это штатная ситуция, а вот механик на земле должен был оповестить громко под роспись о замене.Механик на земле при плановом обслуживании не мог про это узнать, ему был нужен пинок от пилота, который заметил возникшую неисправность.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554755
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник


...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554925
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedБерем архитектуру LAMP и просвещаемся до полного просветления, где и как кому там положено падать и когда, чтоб не завалить вообще всехНа нагрузках, которые требуются нашим клиентам, LAMP не имеет ни малейших шансов. Ни A, ни M, ни P. Ни вместе, ни по отдельности. Потому что полные безнадёжные тормоза.

Ути пути, глаза-то подраззуй, я выше говорил про haproxy и nginx. Чукча не читатель?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554931
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperНе могли бы вы из жалости хотя бы сказать, как в данном случае поступать правильно?
Кусок кода в действии, как правильно отрабатывать коды возврата ошибок?

Да очень просто. assert подобное действие. Вида

#define EHANDLE(expr) { if (!(expr)) mycoredump(); }

...

EHANDLE((n = recv(....)) > 0 || errno == EWOULDBLOCK || errno == EAGAIN)


иди так (но так опаснее, errno могут перепротереть)

n = recv(....);

...

EHANDLE((n = > 0 || errno == EWOULDBLOCK || errno == EAGAIN)


Т.е. пессиместический сценарий - если мы способны справиться с кодом возврата - идем дальше, если нет - тупо падаем нафиг.
И так обрабатывается КАЖДЫЙ внешний вызов, системный в т.ч. Новые коды возврата, ВНЕЗАПНО появившиеся в новой редакции GLIBC просто не пройдут - приложение будет брякаться оземь каждый раз, когда на них наступит (мы так обнаружили EAGAIN, к примеру, на блокирующихся сокетах, где его быть не должно, а оно было!)




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


То есть получается что пока ситуация не возникнет вы об этом не узнаете?
Я то как раз узнаю. И довольно быстро.


WebSharperА как они достигают лога? Вот, например у меня есть вызов какой-нибудь функции. Если нет исключений обычно либо она возвращает код ошибки (типа HRESULT под виндой), либо устанавливает какой-нибудь признак ошибки (типа GetLastError) если ничего специального не делать, то она ни в лог не попадет ни обработается. Могу себе представить, что сообщение второго типа можно записать в лог, но это будет только последнее такая ситуация на момент записи в лог и предыдущую она замаскирует.

Как сделано у вас?

В лог пишется сообщение всегда, и процессом компонента, и отдельно - процессом монитора. Т.е. и процесс сам на себя пишет посмертный некролог (если сможет), и монитор, видя по условиям, что компонент помер (ээээ, heartbeart таймер в shm) - тоже пишет по нему в лог некролог, вдруг у померающего сил не хватит на себя кляузу в лог понаписать (бывает и такое, довольно часто).

Просто системный монитор пишет скупо, а сам помирающий про себя может понапиасть не в пример больше - и стэк трейс, и номера строк, и даже какие локальные и не только значения переменных.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554972
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimediv_an_ruпропущено...
На нагрузках, которые требуются нашим клиентам, LAMP не имеет ни малейших шансов. Ни A, ни M, ни P. Ни вместе, ни по отдельности. Потому что полные безнадёжные тормоза.

Ути пути, глаза-то подраззуй, я выше говорил про haproxy и nginx.Поскольку бред ваш мало связен, я даже не пытаюсь увязать ваши разные посты. Если вы не путаетесь на протяжении одного поста, то это у вас уже достижение. Поэтому раз пост про lamp, то и ответ про lamp.

Да и чем бы помогли "haproxy и nginx" --- непонятно.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554996
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedEHANDLE((n = recv(....)) > 0 || errno == EWOULDBLOCK || errno == EAGAIN)


Вы это ручками вставляете в каждый вызов или у вас есть слой функций с проверками?
Есть ли статический вылидатор (Типа PVS Studio) который убеждается, что EHADNLE не забыли вставить.

То есть получается что пока ситуация не возникнет вы об этом не узнаете?

Я то как раз узнаю. И довольно быстро.


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

И еще что происходит с ошибками, которые известны (то есть проходят фильтр в EHANDLE ) как они обрабатываются потом?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38554997
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надежда Бабкина,
если человек не нужен, его надо игнорировать, если его не игнорируют, значит он на что-то пригождается :)
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555002
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedпропущено...


Ути пути, глаза-то подраззуй, я выше говорил про haproxy и nginx.Поскольку бред ваш мало связен, я даже не пытаюсь увязать ваши разные посты. Если вы не путаетесь на протяжении одного поста, то это у вас уже достижение. Поэтому раз пост про lamp, то и ответ про lamp.

Да и чем бы помогли "haproxy и nginx" --- непонятно.

Человек, не понимающий, как связаны высокие нагрузки и haproxy вещает (сидя в погребе), что ему мало что понятно, и что дескать раз ему, ото сидя в погребе, мало что понятно, то это бред?

Зачот!

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

Это просто жесть, товарищи, просто. Куда я попал?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555004
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharpersocimedEHANDLE((n = recv(....)) > 0 || errno == EWOULDBLOCK || errno == EAGAIN)


Вы это ручками вставляете в каждый вызов или у вас есть слой функций с проверками?
Есть ли статический вылидатор (Типа PVS Studio) который убеждается, что EHADNLE не забыли вставить.

Каждый вызов внешних (не своих) функций так оборачивается. Реально - вообще всех (которые возвращают что-то про ошибку, есть такие функции которые не фейлятся никогда чисто по дизайну - их не обернешь). Доверять третьей стороне у меня никаких оснований нет.

Насчет PVS Studio не знаю (не пользуемся), но PC-Lint это (разворачивание макросов) отрабатывает на ура, ну и кто попроще, вроде cppcheck (правда ими уже не пользуемся - толку ноль).


WebSharperпропущено...


Я то как раз узнаю. И довольно быстро.


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

И еще что происходит с ошибками, которые известны (то есть проходят фильтр в EHANDLE ) как они обрабатываются потом?

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

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

Пару раз было (не по glibc) что разработчики втихую расширяли список кодов возврата, даже не удосужившись это поместить в Changes (а фигли, типо читайте коммиты и код, ага). Тоже поймали постфактум.

Но обычно редко - заранее прописанные обработки спасают отцов демократии и не только. И это единственно верно, в сравнении с тупейшим (даже кретинским) подходом на finally и catch пофиг какой ошибки, типо на все ошибки обработка одинакова (привет безумный мир ООП).
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555071
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedЧеловек, не понимающий, как связаны относительно высокие нагрузки и haproxy Поправил. Начиная с какого-то уровня, никакие красивые картинки "здесь у нас фронт а здесь у нас база" _не__ра_бо_та_ют. Round-robin DNS, симметричная кластерная СУБД, в которой каждая нода сама отвечает на HTTP- и прочие запросы, и на этом всё.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555102
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedЧеловек, не понимающий, как связаны относительно высокие нагрузки и haproxy Поправил. Начиная с какого-то уровня, никакие красивые картинки "здесь у нас фронт а здесь у нас база" _не__ра_бо_та_ют. Round-robin DNS, симметричная кластерная СУБД, в которой каждая нода сама отвечает на HTTP- и прочие запросы, и на этом всё.

Я и так уже понял, что ты в highload не бум бум, не надо усугублять.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555111
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

Если бы вы имели достаточную квалификацию, чтобы оценки расставлять --- бум бум я или не бум бум --- то мы были бы знакомы либо лично, либо "через одного". Это не шутка и не фигура речи, это медицинский факт. Поэтому если хотите разбираться и учиться --- может быть и есть некий смысл продолжать, если хочется потроллить --- не тратьте всехнее время, КПД все равно ноль.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555112
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimed,

Если бы вы имели достаточную квалификацию, чтобы оценки расставлять --- бум бум я или не бум бум --- то мы были бы знакомы либо лично, либо "через одного". Это не шутка и не фигура речи, это медицинский факт. Поэтому если хотите разбираться и учиться --- может быть и есть некий смысл продолжать, если хочется потроллить --- не тратьте всехнее время, КПД все равно ноль.

Вообще-то это рт тебя реально КПД ноль, ни одной свежей идеи, факта или просто мысли ты за все эти страницы не высказал.

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

Что впрочем не важно, ибо пользуются им всего 5 с половиной контор, и то не факт что, что объясняет практически всё.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555131
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedКаждый вызов внешних (не своих) функций так оборачивается. Реально - вообще всех (которые возвращают что-то про ошибку, есть такие функции которые не фейлятся никогда чисто по дизайну - их не обернешь). Доверять третьей стороне у меня никаких оснований нет.


То есть получается, что в каждом месте, где находится вызов упомянутой recv есть перечисление кодов ошибок нам извенстных внутри вызова макроса EHANDLE. После чего идет уже обработчик ошибок где они же перечисляются еще раз (ну типа кейза большого)?

Насчет PVS Studio не знаю (не пользуемся), но PC-Lint это (разворачивание макросов) отрабатывает на ура, ну и кто попроще, вроде cppcheck (правда ими уже не пользуемся - толку ноль).


Я имел ввиду, что если кто-то забудет обернуть вызов в EHANDLE - будет ругаться какой-нибудь инструмент или нет.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555146
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharpersocimedКаждый вызов внешних (не своих) функций так оборачивается. Реально - вообще всех (которые возвращают что-то про ошибку, есть такие функции которые не фейлятся никогда чисто по дизайну - их не обернешь). Доверять третьей стороне у меня никаких оснований нет.


То есть получается, что в каждом месте, где находится вызов упомянутой recv есть перечисление кодов ошибок нам извенстных внутри вызова макроса EHANDLE. После чего идет уже обработчик ошибок где они же перечисляются еще раз (ну типа кейза большого)?
В целом примерно да, но в данном случае нет.

За сетевой трафик отвечает отдельный компонент, и он может падать при всяких неожиданных чихах. Реально это даже специально сделано - если в канале (сокете) что-то пошло не так, то проще помереть (потому что там может быть атакующий всякими скриптами с той стороны), чем выжить любой ценой и нагадить уже следующему клиенту отказом в обслуживании из-за покренившегося не на шутку внутреннего состояния (для REST API это вообще на 100% полный ОК).

А так, я уже говорил - существует вариант 2 - ты сначала получаешь код возврата, а потом пишешь case обработчики на уже полученный код. Или сразу в switch функцию тулишь, да как угодно.

Макрос EHANDLE - это лишь абстрактный пример. В реальности там целая система, отдельно макросы для сокетов, отдельно для общения с mysql, отдельно для Oracle - там своя кустистая система обработки, но все дергания этих API - только через спец обработчики, никаких игнорирований кодов возврата (кстати, PC-LINT тыкает носом, каждый раз, когда горе кодер забывает про код возврата, и это очень ОК).


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


WebSharperНасчет PVS Studio не знаю (не пользуемся), но PC-Lint это (разворачивание макросов) отрабатывает на ура, ну и кто попроще, вроде cppcheck (правда ими уже не пользуемся - толку ноль).


Я имел ввиду, что если кто-то забудет обернуть вызов в EHANDLE - будет ругаться какой-нибудь инструмент или нет.
Нет, не будет. Все мне известные анализаторы кода разворачивают даже многократно завернутые друг в друга макроподстановки.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555151
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimedни одной свежей идеи, факта или просто мысли ты за все эти страницы не высказал.Разумеется. Более того, я не написал ни одной новой свежей буквы. Потому что обсуждается одна общеизвестная азбука с использованием букв другой общеизвестной азбуки. Ни одна из этих двух азбук в нововведениях не нуждается.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555156
socimed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_rusocimedни одной свежей идеи, факта или просто мысли ты за все эти страницы не высказал.Разумеется. Более того, я не написал ни одной новой свежей буквы. Потому что обсуждается одна общеизвестная азбука с использованием букв другой общеизвестной азбуки. Ни одна из этих двух азбук в нововведениях не нуждается.

Это ты наконец-то решил высказать свежую мысль? Зачем ты это пишешь?
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555166
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
socimed,

Тесты крутятся, а вы вроде рыбки в аквариуме. Вроде и не так скучно. Читать что-то серьёзное или тем более писать --- невозможно, слишком часто прогон отвлекает, а мелочей меньше, чем прогонов.
...
Рейтинг: 0 / 0
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
    #38555236
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Модератор: Не получается у вас спокойно беседовать :(
...
Рейтинг: 0 / 0
418 сообщений из 418, показаны все 17 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]