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

    никто их и не отождествляет, кроме тебя, Top -- это корневой тип, и в одних языках он есть (в виде, _например_ Object в Java, C#), в других -- нет. в некоторых есть эээ иллюзия его наличия? я про void*. чем с точки зрения системы типов является void*?

    кстати, в Delphi, емнип, тоже есть классы, соответствующие базовым типам (TInteger для Integer и т.п.). или не?

    Добавлено
    Цитата MyNameIsIgor @
    Т.е. вы научились аргументации у авторов TAPL.

    хорошо, так что ты скажешь по поводу квантификации?

    Добавлено
    Цитата D_KEY @
    Нет, не кажется. Ибо относительная логичность наличия Object'а в чистых ОО-языках, связана не с ОО возможонстями и принципами, а с отсутствием других "видов типов".

    что-то не вижу логики, как из отсутствия других видов типов кроме классов следует наличие класса Object?
      Цитата korvin @
      никто их и не отождествляет, кроме тебя, Top -- это корневой тип, и в одних языках он есть (в виде, _например_ Object в Java, C#), в других -- нет.

      Вот в этом же предложении ты их и отождествил. Object - корневой класс любой иерархии в этих языках. Top'ом он не является.

      Цитата
      чем с точки зрения системы типов является void*?

      В терминах С/С++ - указатель на данные любого типа. А так ... эмм... корневым ссылочным типом. Как-то так.

      Цитата
      кстати, в Delphi, емнип, тоже есть классы, соответствующие базовым типам (TInteger для Integer и т.п.). или не?

      Даже если они есть, сами базовые типы не являются классами и наследником TObject.

      Цитата
      что-то не вижу логики, как из отсутствия других видов типов кроме классов следует наличие класса Object?

      Не наличие(оно так и остается необязательным), а его логичность, т.к. в этом случае ты не космическую иерархию классов делаешь, а обеспечиваешь Top для своей системы типов.
      Сообщение отредактировано: D_KEY -
        Цитата korvin @
        хорошо, так что ты скажешь по поводу квантификации?

        А что вы хотите услышать? :)
          Цитата korvin @
          хоть и есть примитивные типы int, boolean и т.д., но всем им соответствуют какие-то классы
          В C++ ничто не мешает завести классы CBoolean, CInteger и т.д. Перегрузка операторов в помощь. Равно как и CSuperBaseClass.

          Добавлено
          Цитата korvin @
          чем с точки зрения системы типов является void*
          Наследием C.
          Сообщение отредактировано: trainer -
            Цитата korvin @
            кстати, в Delphi, емнип, тоже есть классы, соответствующие базовым типам (TInteger для Integer и т.п.). или не?

            Кстати, в GObject такие обертки тоже есть :)
              Цитата D_KEY @
              Вот в этом же предложении ты их и отождествил. Object - корневой класс любой иерархии в этих языках. Top'ом он не является.

              Даже если они есть, сами базовые типы не являются классами и наследником TObject.

              является, ибо у него нет супертипа, а неполная интеграция классов и типов всего лишь недоработка, не более
                Цитата korvin @
                является, ибо у него нет супертипа

                Но он и не является супертипом всех других типов. Так что Top'ом его назвать нельзя ;)

                Добавлено
                Или лучше вот что, объясни разницу с GObject для С.
                  Цитата MyNameIsIgor @
                  А что вы хотите услышать? :)

                  ваши претензии к аргументу

                  Добавлено
                  Цитата D_KEY @
                  Не наличие(оно так и остается необязательным), а его логичность, т.к. в этом случае ты не космическую иерархию классов делаешь, а обеспечиваешь Top для своей системы типов.

                  вот и в делфи/джаве/решетке и обеспечили Top для своих объектных систем типов, оставив при этом параллельно существующую необъектную систему типов, почему-то ниасилив сделать полноценную интеграцию, хотя уже в 1994-м году вышел стандарт CL с CLOS, где такая интеграция есть

                  Добавлено
                  Цитата D_KEY @
                  Или лучше вот что, объясни разницу с GObject для С.

                  я немного не понял того твоего поста про GObject. разницу с чем?
                    Цитата korvin @
                    вот и в делфи/джаве/решетке и обеспечили Top для своих объектных систем типов, оставив при этом параллельно существующую необъектную систему типов

                    А это значит, что Top'ом системы типов их Object'ы не являются. А если и являются то, в той же степени, что GObject(или аналог) для С/С++.

                    Добавлено
                    Цитата korvin @
                    Цитата D_KEY @
                    Или лучше вот что, объясни разницу с GObject для С.

                    я немного не понял того твоего поста про GObject. разницу с чем?

                    Разницу с TObject для Delphi, например. В плане отношения к Top.
                    Сообщение отредактировано: D_KEY -
                      Цитата trainer @
                      В C++ ничто не мешает завести классы CBoolean, CInteger и т.д. Перегрузка операторов в помощь. Равно как и CSuperBaseClass.

                      дело не в том, что можно, а в том, что это не распространяется на систему типов языка. и как вы укажете, что все классы, разработанные например не вами, а кем-то другим, не наследующиеся от SuperBaseClass являются субклассами SuperBaseClass?

                      Добавлено
                      Цитата D_KEY @
                      А это значит, что Top'ом системы типов их Object'ы не являются. А если и являются то, в той же степени, что GObject(или аналог) для С/С++.

                      являются. а значит это то, что в этих языках две системы типов.
                        Цитата korvin @
                        дело не в том, что можно, а в том, что это не распространяется на систему типов языка. и как вы укажете, что все классы, разработанные например не вами, а кем-то другим, не наследующиеся от SuperBaseClass являются субклассами SuperBaseClass?

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

                        Добавлено
                        Цитата korvin @
                        а значит это то, что в этих языках две системы типов.

                        :wacko:
                        В таком случае, чем тебя не устраивает вторая система типов, которую обеспечивает библиотека(например, GObject)?
                        Или это обязательно должно быть вшито в язык? Как-то не похоже на тебя :lol:
                          Цитата D_KEY @
                          Разницу с TObject для Delphi, например. В плане отношения к Top.

                          кроме того, что классы в делфи реализованы на уровне языка, а GObject реализован средствами языка (и препроцессора), разницы никакой
                            Кстати, в вики есть статья о Top type
                            И там таки различные Object'ы к Top относят(с различными оговорками).
                            Но там и GObject фигурирует :yes:
                            Цитата
                            Object - Smalltalk, JavaScript, Ruby, and some others.
                            java.lang.Object - Java. Frequently written without the package prefix, as Object. Note also that it is not a supertype of the primitive types;...
                            System.Object - C#, Visual Basic .NET and other .NET Framework languages
                            object - Python since the type/class unification in Version 2.2 (new-style objects only; old-style objects in 2.x do not have this as a base class)
                            Gobject - Glib
                            ...
                            interface{} - Go


                            Добавлено
                            Цитата korvin @
                            Цитата D_KEY @
                            Разницу с TObject для Delphi, например. В плане отношения к Top.

                            кроме того, что классы в делфи реализованы на уровне языка, а GObject реализован средствами языка (и препроцессора), разницы никакой

                            А, ну то есть во всех рассматриваемых языках возможности с этой точки зрения одинаковые? Тогда о чем спорим?
                              Цитата D_KEY @
                              А если ты создашь свою ОО-систему(на основе сохранившейся "старой" ОО-системе) в Delphi в обход TObject, то ты тоже не получишь наследника TObject :)
                              Кстати, ты всегда можешь создать(автоматически) обертку.

                              ведь это будет другая система типов, да.

                              Цитата D_KEY @
                              В таком случае, чем тебя не устраивает вторая система типов, которую обеспечивает библиотека(например, GObject)?
                              Или это обязательно должно быть вшито в язык? Как-то не похоже на тебя :lol:

                              я не говорил, что меня она не устраивает.

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

                              Добавлено
                              Цитата D_KEY @
                              А, ну то есть во всех рассматриваемых языках возможности с этой точки зрения одинаковые? Тогда о чем спорим?

                              я не знаю, о чем ты споришь; Игорь заявил, что Top -- бред сивой кобылы, я ему ответил, что это не так и наличие Top бывает удобным.
                                Цитата korvin @
                                но вообще мне не очень нравится, когда в языке более одной системы типов (это относится ко всем языкам)

                                Ну вообще-то в С++ она едина. Только основана на значениях, а не ссылках, потому и общий тип есть только ссылочный. А boost::any тебе чем не нравится? Обеспечивает типобезопасные Top-обертки.

                                Добавлено
                                Цитата korvin @
                                Игорь заявил, что Top -- бред сивой кобылы, я ему ответил, что это не так и наличие Top бывает удобным.

                                Он говорил о космической иерархии классов. Это другое.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 330 331 [332] 333 334 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.4793 ]   [ 14 queries used ]   [ Generated: 31.07.26, 15:03 GMT ]