На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 460 461 [462] 463 464 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата --Ins-- @
    Хотя вопрос производительности стоит остро как правило в тех самых дровах и серверах, а для Java-софта человекочасы и доллары важнее тактов и байт

    Вопрос производительности стоит остро, когда понабирают дебилов не понимающих языка. И которые потом забивают память и проц своими жава-перделками. java неплохой язык, но увы 80% жавистов его тупо не знают. Знают только как пользоватся тем что он дает. А как это внутри устроено не знают. Читал недавно одну статью, как жава прогер открыл для себя истину, и получил просветление, после нескольки лет опыта узнав что у него тип boolean весит аж 4 байта. И поэтому у него кончилось 15 гигов памяти, когда он создал булевский массив на 500 милионов элементов...

    Добавлено
    Цитата --Ins-- @
    Не им, старым добрым паскалем с той же семантикой, где объекты - типы значений

    И как же ты на нем бедненький писал то? Небось вот матерился и писал? Мне кажется ты даже не задумывался об этом когда на нем писал. Так к чему у тебя притензии ?
    С виду напоминает, как чувак купил себе мерседес, и доказывает всем что круче него быть не может машины.
      Цитата KILLER @
      И как же ты на нем бедненький писал то? Небось вот матерился и писал? Мне кажется ты даже не задумывался об этом когда на нем писал. Так к чему у тебя притензии ?


      Матерился я потом, когда узнал что фигней страдал :) Хотя вру, не матерился. Просто больше потом не страдал

      Цитата KILLER @
      С виду напоминает, как чувак купил себе мерседес, и доказывает всем что круче него быть не может машины.


      Неет, это как человек который с жигули пересел на мерседес, и доказывает тем, кто до сих пор на жигули - что жигули это говно
      Сообщение отредактировано: --Ins-- -
        Что за скрытый пользователь всё читает тему и не пишет? :huh:
          Цитата --Ins-- @
          Матерился я потом, когда узнал что фигней страдал Хотя вру, не матерился. Просто больше потом не страдал

          Какой фигней? Конкретно что плохого то в этом? Какие недостатки? На примере желательно, на жизненом, а не придуманом сферическом примере, который можно под ЛСД только написать...

          Цитата --Ins-- @
          Неет, это как человек который с жигули пересел на мерседес, и доказывает тем, кто до сих пор на жигули - что это говно

          Ну да. Делфи это говно. Хотя мне Делфи тоже нравился в свое время. Ты же на делфи до этого ездил? Ну все верно... А С++ ты не юзал, поэтому пересев на свой мерседес, ты не мошеь судить о машине на которой не ездил ;)
            Цитата --Ins-- @
            Цитата D_KEY @
            Не понятно, зачем разделять пользовательские типы на ссылочные и значений.


            А мне непонятно зачем подменять понятие объекта и класса, и зачем передавать объекты по значению.

            Никто понятий не подменяет. class в С++ может объевлять не только класс иерархии наследования. Но позволяет делать и это. Потому С++ и является языком с поддержкой ООП, но не ОО-языком. Я не понимаю твоего вопроса. Если не надо передавать - не передавай. В чем трудность?
            Как, кстати, мне в Delphi изменить работу этих самых неявных ссылок на объекты? Язык же нативный и без сборки мусора... Вот в С++:
            ExpandedWrap disabled
              // сырой указатель
              typedef my_type * my_type_ptr;
              //  указатель, уникально владеющий объектом
              typedef unique_ptr<my_type> my_type_unique;
              // подсчет ссылок
              typedef shared_ptr<my_type> my_type_shared;
               
              // так же могут быть другие "указатели",
              // для размещения в shared memory, например
              // или там от какой-нибудь реализации GC
              // ...

            И если очень хочется, ты можешь выбрать один из видов указателей, сделать удобный typedef и получить такое же поведение, как в Delphi и даже немножко больше(т.к. сможешь менять вид указателя).

            Цитата
            Нисколько не удивляюсь что от этой тенденции благоразумно уходят со временем, и не только в Delphi

            Какой тенденции?

            Добавлено
            И на всякий случай скажу, что вышеприведенные typedef'ы и указатели будут одинаковы для любых типов.
              Цитата --Ins-- @
              Я не понимаю, ЗАЧЕМ в с++ объекты - это сами данные, а не ссылки на них, что приводит к таким интересным вещам, как передача объектов по значению

              Кстати, я вот что тут подумал. В принципе если так прикинуть, то ссылки мало того что дороже выходят, они то дают и еще большие костыли. Вот какие проблемы могут быть с передачей параметров по значению(допустим программист банально забыл одну зкорючку, как тут выразились, поставить)? Ну давай прикинем, я вижу несколько проблем:
              1) Замедляется скорость(допустим когда передали массив данный, весь он будет копироваться, если массив большой - займет время)
              2) Ну еще может не сработать динамический полиморфизм. Т.к. будет создана копия объекта базового класса, а не производного.
              3) ??? Что еще?
              Про копию синглтона, это бред, потому что ты не знаешь что такое синглтон и как он устроен и как работает. Синглтон специально проектируется так, чтобы нельзя было создать больше одного объекта для этого класса.

              А теперь прикинем какие минусы у нас возникают с сылочной семантикой:
              1) Замедляется скорость программы в целом. Данные обычно хранятся в куче, что как бэ намекает.
              2) Если мы забыли инициализировать объект или создать его, выхватываем AV. Кстати это вполне себе не сферическая ситуация.
              3) Прогаммист может банально забыть особенность ссылочной семантики, и вместо копирования данных будет копировать ссылку на них, что может привести к нежелательной модификации оригинала.
              4) Программист может банально забыть особенность ссылочной семантики и при сравнении сравнить ссылки, а не данные, содержащиеся за ссылкой.
              5) Дальше тупо лень вспоминать....
                Цитата KILLER @
                1) Замедляется скорость программы в целом. Данные обычно хранятся в куче, что как бэ намекает.

                Цитата
                An STL vector always allocates memory for its data on the heap. Heap allocation is slower than stack allocation.

                http://assoc.tumblr.com/post/411601680/per...-plain-c-arrays
                  Цитата KILLER @
                  3) Прогаммист может банально забыть особенность ссылочной семантики, и вместо копирования данных будет копировать ссылку на них, что может привести к нежелательной модификации оригинала.

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

                    Цитата
                    A vector does not store its data in a continuous chunk of memory. Pointers to the start and end of the vector will be stored in a different location from the data itself.

                    :facepalm: :lool: korvin, не читай на ночь советских газет :)
                      Цитата jack128 @
                      это субъективно. точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит.

                      Так оно там происходит из-за того, что две семантики в одном языке... Или нет?

                      Добавлено
                      korvin, твои источники тебя обманывают :)
                        Цитата jack128 @
                        это субъективно. точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит.

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

                        Цитата korvin @
                        1
                        Цитата
                        ) Замедляется скорость программы в целом. Данные обычно хранятся в куче, что как бэ намекает.

                        Цитата An STL vector always allocates memory for its data on the heap. Heap allocation is slower than stack allocation.

                        И? Я тебе не про массивы данных говорю. А про обычные объекты. А ты можешь почитать еще и про всякие std::map, std::set, std::string и т.д. они тоже память для данных в куче выделяют. При этом объекты самих классов создаются на стэке!

                        Добавлено
                        Цитата jack128 @
                        точно так же можно забыть особенность семантики значений и вместо изменения оригинала модифицировать копию. в .NET подобное сплошь и рядом для структур происходит.

                        В том и дело что в С++ сложно это забыть. Потому что там только семантика значений. А ссылочную семантику нужно писать специально, т.е. лишние символы нужно набирать. А вот то что ты говоришь в .NET, и в Java скорее всего это есть. Потому что в этих языках две семантики идут паралельно. Сначало ты упорно работал с какими нибудь int'ами, ну алгоритм сложный там писал. А потом тебе резко понадобились объекты пользовательских типов. И вот тут тебе нужно свой мозг быстренько переключить на ту особенность, что объекты пользовательских типов отличаются от примитивных типов. В С++ тебе не нужно переключаться на этот ньюанс. Вот о чем я.
                          :)
                          user posted image
                            D_KEY, :good: :crazy:
                              Цитата --Ins-- @
                              Везде. Есть ссылочные типы, а есть типы передаваемые по значению. Первые - это не только классы, но классы в частности.

                              Ага. :wacko: Т.е. всё ещё хуже, чем я думал. :whistle: Семантику типов надо распечатать и прилепить посреди монитора. <_<
                              Цитата --Ins-- @
                              Ну а про твои наблюдения в окне CPU - вообще без комментариев.
                              Вот и и правильно. Пишем PROCEDURE Proc(v: DataRecord); FAR; EXTERNAL; а видим фигу. Что тут комментировать?

                              Добавлено
                              Цитата --Ins-- @
                              Я боюсь разорвать твой шаблон, но из-за этих ваших объектов, которые не только объекты, но и не объекты, использовать ООП в с++ настолько неудобно, что пришлось придумывать другие языки со смесью ссылочной и нессылочной семантик, и внезапно для ООП использовать стали именно их, а с++ остался там, где не до объектов
                              Не помогло...

                              Добавлено
                              Цитата --Ins-- @
                              О том, что я подозрительно отношусь к эксперту, который не может объяснить внятно и понятно элементарные и фундаментальные вещи, указать на ошибки в чужих рассуждениях. Видать, у самого целостной картины нет А еще то, что я такой скромный потому что я такой красивый
                              А как назвать эксперта, который не может понять элементарные и фундаментальные вещи? Гы:
                              Цитата --Ins-- @
                              На практике я с такими случаями не встречался, всегда нужно передавать по ссылке. Хочу услышать ответ на этот простой вопрос, который уже десятый раз задаю
                              "Сынок, это море. - Хде?? :crazy: " © "Что тут комментировать?" :-?
                              Сообщение отредактировано: Qraizer -
                                Вы все еще труп пинаете? :D
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 460 461 [462] 463 464 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5877 ]   [ 14 queries used ]   [ Generated: 29.07.26, 01:57 GMT ]