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

            Тем что нет проблем с перекрытием имен, как пример, да еще нет проблем с перекрытием значений.
            Хотя конечно у плохих проектировщиков запрет множественного наследования сразу вызывает желание использовать антипаттерн God object :whistle:
              Цитата kanes @
              Самый главный для меня вопрос - какие преимущества у Delphi перед С# по теме разработки софта под Windows?

              На мой взгляд, никаких. Но сторонники Delphi вроде называли какие-то плюсы Delphi.

              Цитата
              Ну кстати и у С++ хотелось бы тоже мнения узнать.
              Какие плюсы у С++ перед C# для разработки прикладного софта под Windows? Не знаю, наверно никаких.
              А так понятно - кроссплатформенность(не такая мифическая, как у шарпа), скорость работы, аппетиты, возможность поработать напильником в случае необходимости.

              Добавлено
              Цитата kanes @
              Цитата D_KEY @
              kanes, а запрет множественного наследования чем хорош?

              Тем что нет проблем с перекрытием имен, как пример, да еще нет проблем с перекрытием значений.

              Ну так зачем запрещать? Как будь-то возможность заставляет применять множественное наследование там, где оно не нужно.
              Сообщение отредактировано: D_KEY -
                Повстанець, честно сказать не понял первый пункт, а насчет второго не вижу полезности.

                Цитата D_KEY @
                кроссплатформенность

                согласен
                Цитата D_KEY @
                аппетиты

                в смысле?
                Цитата D_KEY @
                возможность поработать напильником в случае необходимости.

                это про какие такие напильники?
                  Цитата D_KEY @
                  Какие плюсы у С++ перед C# для разработки прикладного софта под Windows? Не знаю, наверно никаких.

                  Всетаки думаю на мало-мощных компах у С++ всетаки есть плюсы перед шарпом, но так как маломощные компы уже прошлый век, то наверно и нема... разве что ядро какой нибудь сложной системы написать, а интерфейс на С#
                    Цитата kanes @
                    Цитата D_KEY @
                    аппетиты

                    в смысле?

                    В смысле прожорливости. Памяти и сборщика мусора.

                    Цитата
                    Цитата D_KEY @
                    возможность поработать напильником в случае необходимости.

                    это про какие такие напильники?
                    Про потенциальные возможности оптимизации.
                      Цитата D_KEY @
                      В смысле прожорливости. Памяти и сборщика мусора.

                      А в чем прожорливость?
                      Цитата D_KEY @
                      Про потенциальные возможности оптимизации.

                      А можно пример конкретнее?
                        Цитата kanes @
                        Повстанець, честно сказать не понял первый пункт, а насчет второго не вижу полезности.
                        Ну вот пример из дока:
                        ExpandedWrap disabled
                          using System;
                           
                          class App
                          {
                            delegate void MyDelegate(string s);
                            // Это функция, на которую мы будем ссылаться при помощи
                            // экземпляра делегата.
                            static void MyHandler(string s)
                            {
                              // Просто выведем на консоль аргумент, полученный нашей
                              // функцией.
                              Console.WriteLine(s);
                            }
                           
                            static void Main()
                            {
                              // Создадим экземпляр делегата, описанного ранее.
                              // В качестве единственного параметра конструктора
                              // передадим ссылку на метод MyHandler.
                              MyDelegate del = new MyDelegate(MyHandler);
                              // Создадим новый делегат и скомбинируем его
                              // с ранее созданным делегатом.
                              del += new MyDelegate(MyHandler);
                              // То же самое можно сделать следующим образом.
                              del = del + new MyDelegate(MyHandler);
                              // А теперь уберем из списка вызова делегата
                              // одну из ссылок на метод MyHanlder.
                              del -= new MyDelegate(MyHanlder);
                              // Затем обратимся к конечному делегату, естественно,
                              // что при этом по цепочке будут вызваны все методы,
                              // связанные с ним.
                              del("Hello, world!");
                            }
                          };
                        Т.е. внимание на строчку

                        del -= new MyDelegate(MyHanlder);

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

                        Добавлено
                        А на счёт полезности второго, дык я вроде описал пример.
                          Фишки шарпа, которые сразу приходят на ум:
                          - методы-расширения
                          - partial-классы
                          - свойства
                          - события
                          - лямбды
                          - yield
                          - reflection
                          - и да, сборка мусора
                            Цитата kanes @
                            Синтаксис Pascal - лично для меня чуть ли не самый главный был в свое время аргумент, чтобы перестать писать на Delphi

                            он неплох, но жутко примитивен и туп

                            Добавлено
                            Цитата kanes @
                            Эм, но про LINQ - я пожалуй говорить не буду, тут один уже наговорил (это я про Террагоста). Лично для меня - намного более удобно в языке реализована концепция ООП, запрещено множественное наследование, ключевое слово для абстрактных классов - и это тоже удобно. Свойства, правда они в Delphi вроде появились. Делегаты, События. В новом 4.0 - очень простой код для распараллеливания кода, ну точнее для написания параллельных циклов
                            Ну это первое что на ум приходит :D

                            один фиг жалкое убожество по сравнению со SmallTalk, Ruby, CLOS и т.п.
                              Цитата korvin @
                              он неплох, но жутко примитивен и туп

                              Щас тебе Делфийцы сделают атата :D
                                Цитата Повстанець @
                                Фиг с ними, с конструкторами, задолбали уже. Давайте про делегаты и события.

                                делегаты -- жалкие подобия замыканий
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) 1 [2] 3 4 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0484 ]   [ 16 queries used ]   [ Generated: 29.03.24, 13:19 GMT ]