|
|
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
petalvikПоучаствую. socimedЕсли бы это было так, то ядра операционных систем и баз данных писали бы на C++, а не на C. А то и вовсе на Java или C#. Покормлю жирненького: OS Singularity - написана на C# (Sing#), по многим параметрам производительности рвёт другие ОС как тузик грелку. Этот проект закрыт давно как эпически провальный на техническом уровне (торпозит и глючит), иди покорми детей конфетами. Или пусть они тебя покормят, говорят сахар стимулирует мышление. petalviksocimedЛинус начал пилить линукс когда C++ уже вовсю был. Аналогично с ядром NT, ядром Mach, ядром Darwin и т.д. Никто не использовал C++. Понимаешь, каждый пишет на том языке, который лучше знает. Линус не знает кресты, поэтому на них не пишет. Если бы знал их, но не знал Си - писал бы на них. О, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста. Ну да ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:45 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Хм... кроме того что семантика работы с синглтоном иногда не позволяет распознать его, особенно если нет сорсов или работаем через удалённые интерфейсы. В Scala есть ключевое слово для обозначение одиночек, в Java - нету. ООП-фан-сектор предлагает создавать громкие и значимые названия методов инстанциирования типа createInstance () или getInstance () и запрещать явный конструктор. Но кроме этого больше нет никаких признаков того что мы получили одиночку. Тоесть глядя на код фиг поймешь получен объект или пула или из фабрики или тебе подсунули "единоличника" и эгоиста. Вкупе с тем что культура именования методов лежит вне скоупа языка - мы получаем вне-языковый синглтон. Ну и глобальность до кучи... побочные эффекты и блокировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:46 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
socimedpetalvik Понимаешь, каждый пишет на том языке, который лучше знает. Линус не знает кресты, поэтому на них не пишет. Если бы знал их, но не знал Си - писал бы на них. О, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста. Ну да ладно. Не пытайтесь нас запутать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 15:56 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
maytonТоесть глядя на код фиг поймешь получен объект или пула или из фабрики или тебе подсунули "единоличника" и эгоиста. Как мне кажется, это и есть реальный ъ-ООП (т.е. клиентскому коду неизвестно, что там за объект, независимо от того как он это получил). Но у джавистов обычно под синглтоном понимается statefull объект, получаемый от класса методом getInstance() (уж не знаю откуда ноги у этой школы растут, меня учили в университете смолтоку, и там можно просто переопределить метод new, например, поэтому необходимость контракта добычи объекта через newInstance() вызывала когнитивный диссонанс). А так вообще, слабо прадставляется архитектурная необходимость таких объектов, и скорее всего они создаются от безысходности и лени/неумения построить контекст приложения ( тащить его через конструкторы, инжектить там как нибудь или т.п., кому что нравится ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:11 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
ЛагманmaytonТоесть глядя на код фиг поймешь получен объект или пула или из фабрики или тебе подсунули "единоличника" и эгоиста. Как мне кажется, это и есть реальный ъ-ООП (т.е. клиентскому коду неизвестно, что там за объект, независимо от того как он это получил). Но у джавистов обычно под синглтоном понимается statefull объект, получаемый от класса методом getInstance() (уж не знаю откуда ноги у этой школы растут, меня учили в университете смолтоку, и там можно просто переопределить метод new, например, поэтому необходимость контракта добычи объекта через newInstance() вызывала когнитивный диссонанс). А так вообще, слабо прадставляется архитектурная необходимость таких объектов, и скорее всего они создаются от безысходности и лени/неумения построить контекст приложения ( тащить его через конструкторы, инжектить там как нибудь или т.п., кому что нравится ). "Тащить через конструкторы" - это вот . В примере кода, который там можно скачать вначале статьи, автор создаёт репозиторий на заказчика (CustomerRepository) при старте приложения, потом передаёт этот репозиторий в конструктор главного окна, окно - в конструктор рабочей области, рабочая область - в конструктор представления заказчика. И это ещё не полностью по фен-шую. По фен-шую с репой должна работать модель. Поэтому надо ещё из модели представления в модель передать всё... А что мешает сделать репу статичным типом - синглетоном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:21 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
user7320, А если две репы надо синхронизировать друг с другом? Куда их делать синглтоном? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:27 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
ЛагманmaytonТоесть глядя на код фиг поймешь получен объект или пула или из фабрики или тебе подсунули "единоличника" и эгоиста. Как мне кажется, это и есть реальный ъ-ООП (т.е. клиентскому коду неизвестно, что там за объект, независимо от того как он это получил). Но у джавистов обычно под синглтоном понимается statefull объект, получаемый от класса методом getInstance() (уж не знаю откуда ноги у этой школы растут, меня учили в университете смолтоку, и там можно просто переопределить метод new, например, поэтому необходимость контракта добычи объекта через newInstance() вызывала когнитивный диссонанс). А так вообще, слабо прадставляется архитектурная необходимость таких объектов, и скорее всего они создаются от безысходности и лени/неумения построить контекст приложения ( тащить его через конструкторы, инжектить там как нибудь или т.п., кому что нравится ). Это от отсуствия глобальных переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:33 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Лагманuser7320, А если две репы надо синхронизировать друг с другом? Куда их делать синглтоном? Я даже понятия не имею, о чём вы говорите. Это две разные репы, или два экземпляра одной и той же репы? О чём речь вообще? В примере, что я привёл, делается один экзепляр репы при самом старте приложения, как если бы это был синглетон. Но передаётся всем вниз по иерархии через конструкторы. Но при этом ссылка-то передаётся на один и тот же экземпляр. В ЭТОМ случае-то почему бы не использовать синглетон? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:35 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
user7320Лагманuser7320, А если две репы надо синхронизировать друг с другом? Куда их делать синглтоном? Я даже понятия не имею, о чём вы говорите. Это две разные репы, или два экземпляра одной и той же репы? О чём речь вообще? В примере, что я привёл, делается один экзепляр репы при самом старте приложения, как если бы это был синглетон. Но передаётся всем вниз по иерархии через конструкторы. Но при этом ссылка-то передаётся на один и тот же экземпляр. В ЭТОМ случае-то почему бы не использовать синглетон? Т. е. вроде используется как синглетон, но при этом не статик. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:37 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
user7320, user7320В ЭТОМ случае Если ваша задача сделать приложение, в котором никогда не нужно будет подключаться к двум "репам", то конечно можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:38 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Вторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:41 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
ЛагманВторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить. Так репа разве не в отдельной сборке? Подменили сборку и всё. Можно даже, наверное, сделать настройку выбра сборки, считываемую из файла конфига прямо во время рантайма. Т. е. не надо будет даже перекомпилировать и перезапускать приложение. Или я что-то не так понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:47 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
ЛагманВторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить. java.lang.String тоже нельзя повторно унаследовать. Но он - не синглтон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:48 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
user7320ЛагманВторая причина - повторное использование компонентов. Если вы не тащите, то у вас везде Singleton.getInstance(). А у меня класса Singleton нет, или я его хочу унаследовать. А у вас везде хардкод, нипереапридилить. Так репа разве не в отдельной сборке? Подменили сборку и всё. Можно даже, наверное, сделать настройку выбра сборки, считываемую из файла конфига прямо во время рантайма. Т. е. не надо будет даже перекомпилировать и перезапускать приложение. Или я что-то не так понимаю? А можно кондиционную компиляцию включить, и ант-скрипты, и прочее добавить. А таща через конструкторы вы управляете кодом без доп. костылей. Да, осмелюсь предположить что не понимаете. Я вообще плохо умею объяснять. maytonString тоже нельзя Ну так стринг это и не БД, с ним проще ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:53 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
socimedЭтот проект закрыт давно как эпически провальный на техническом уровне (торпозит и глючит) Проект закрыт не по техническим причинам, а потому что ещё одна ось на данном этапе никому не нужна. socimedО, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста. Ага, значит о производительности ни слова? ;) ЗЫ: и какое отношение высокоуровневые библиотеки имеют к написанию низкоуровневого кода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 16:53 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
petalviksocimedЭтот проект закрыт давно как эпически провальный на техническом уровне (торпозит и глючит) Проект закрыт не по техническим причинам, а потому что ещё одна ось на данном этапе никому не нужна. Ок, подождем следущего этапа, бугага. petalviksocimedО, еще один котороый не смог осилить простые предложения Линуса о нестабильности и непереносимости STL и буста. Ага, значит о производительности ни слова? ;) И про это тоже он писал, читай усиленнее, слово effective. http://article.gmane.org/gmane.comp.version-control.git/57918 petalvikЗЫ: и какое отношение высокоуровневые библиотеки имеют к написанию низкоуровневого кода? О чем ты, болезный? Код git (даже не ядра linux) - это недостаточно высокоуровнеый код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 17:00 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
авторПроизводительность чего? Производительность работы обычно действительно возрастает. производительность какой работы ? программиста или кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 17:19 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
авторИ напротив, с прямыми руками можно написать быструю программу на любом языке. советую писать на ассемблере, хороший язык без изворотов. первые ядра вобще в кодах писали и ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 17:35 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
RESEARCHавторИ напротив, с прямыми руками можно написать быструю программу на любом языке. советую писать на ассемблере, хороший язык без изворотов. первые ядра вобще в кодах писали и ничего. Без изворотов, типов, циклов, всего десяток переменных (регистров) и GOTO (точнее JMP и J*) наше всё... Для критичных к производительности участков самый идеальный вариант, для остального - мазохизм. PS Писал в студенчестве на АСМе для Z80. Жалко что соревнование за "тетрис в 1 кб" пропустил. Мечта идиота. До сих пор хочу попробовать написать, да все некогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 19:21 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Dima TRESEARCHпропущено... советую писать на ассемблере, хороший язык без изворотов. первые ядра вобще в кодах писали и ничего. Без изворотов, типов, циклов, всего десяток переменных (регистров) и GOTO (точнее JMP и J*) наше всё... Для критичных к производительности участков самый идеальный вариант, для остального - мазохизм. PS Писал в студенчестве на АСМе для Z80. Жалко что соревнование за "тетрис в 1 кб" пропустил. Мечта идиота. До сих пор хочу попробовать написать, да все некогда. Типов нет, но вот насчёт "изворотов, циклов, переменных", эээ... не знаю как в Z80, но в x86 и PDP-11 всё это в ассемблере есть, тем более в макроассемблере, кстати максимально просто и эффективно, по сравнению с ЯП высокого уровня со своими "тараканами". Имхо минусы ассемблера, перевешивающие все его достоинства - зависимость от железа, сложность отладки, огромный объём вроде-бы простого, но часто неочевидного кода, возможность застрелиться на каждом шагу. ЗЫ оператор goto почему ещё не обсуждали? :) на собеседованиях про него спрашивают или это считается дурным тоном? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:03 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Z80 удобен тем что скорость выполнения каждой директивы можно посчитать до тактов. Ни вам конвеера ни SIMD, ни оптимизаций переходов. Кстати этим пользовались для генерации хитрых звуков типа Spech Synthez. И я-бы щас уже выкинул дефолтную прошивку с бейсиком. Залил-бы что-то поинтереснее. И графическая библиотека там была - отстой. Окружности рисовала параметрически. И Пентагон 128 хотел. И чтоб со MIDI звуком. И чтоб 2 флопака. Хехе... Мечты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:08 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
aswsТипов нет, но вот насчёт "изворотов, циклов, переменных", эээ... не знаю как в Z80, но в x86 и PDP-11 всё это в ассемблере есть На счет циклов несогласен. Сложно назвать циклом такую конструкцию Код: sql 1. 2. 3. 4. я считаю это всегда называлось условным переходом. Хоть в Z80 хоть в x86. Хотя циклом тоже можно назвать если именно так написано, без наворотов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:25 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Dima T, собери два варианта. С "IF-GOTO" и "DO-WHILE" и посмотри ассемблерный выхлоп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:31 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
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%, во флэш игрушки играть разве что самые примитивные можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:47 |
|
||
|
А давайте-ка обсудим :) Кто считает что ООП даёт прирост скорости программе?
|
|||
|---|---|---|---|
|
#18+
Dima TaswsТипов нет, но вот насчёт "изворотов, циклов, переменных", эээ... не знаю как в Z80, но в x86 и PDP-11 всё это в ассемблере есть На счет циклов несогласен. Сложно назвать циклом такую конструкцию Код: sql 1. 2. 3. 4. я считаю это всегда называлось условным переходом. Хоть в Z80 хоть в x86. Хотя циклом тоже можно назвать если именно так написано, без наворотов.например, x86 есть LOOP и его варианты, в PDP-11 есть SOB, вместе с меткой они выглядят не хуже литералов начала-конца цикла в любом ЯП, причём возможности управления и выхода из цикла неограничены, в отличие от ЯП высокого уровня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:57 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38548828&tid=1341468]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 478ms |

| 0 / 0 |
