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

    Тебе эту фразу повторяли неоднократно, причем повторяли люди программирующие одновременно на нескольких языках, не привязываясь к одному конкретному...
      Цитата --Ins-- @
      Цитата Повстанець @
      но с другим поведением.


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

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

      Добавлено
      Цитата --Ins-- @
      Цитата Повстанець @
      что ссылочные и под-типы в делфи


      И не только в Delphi ;) Наверное только в c++ не так :D Учитывая что все эти языки появились позже и под влиянием c++, взяв из него кое что хорошее и выкинув плохое, делаем вывод что...

      оказалось слишком много "неосиливших" С++. Это действительно так :'(
      Кстати, у С++ слишком много недостатков, но обсуждаются почему-то в данных темах не они. Я уже подумываю, для интереса, С++ покритиковать самому. А то как-то скучно.
        D_KEY, для тебя еще раз, хоть я это уже и писал. В случае
        Rect.Points[0].X :=
        где Points[0] - это класс (как и Rect), никакая инкапсуляция не нарушается. Значение X в обход сеттера не меняется. Потому что сеттер свойства Points НЕ ЗАНИМАЕТСЯ отслеживанием изменений ЗНАЧЕНИЯ точки, он вызывается при присвоении ссылки. ЧТО СЛОЖНОГО???
          Цитата D_KEY @
          Все-таки там скорее нет мутабельных типов

          есть =) ты Scheme in 48 hours читал? IORef например. другое дело, что все "мутации" ммм "инкапсулированы" в монаду IO, и втащив значение в монаду, назад его не вернешь. говорят есть еще всякие unsafe*-модули, позволяющие даже вытаскивать из монады чистое значение (вот это уже можно в некотором смысле назвать "оконстаниванием"), но про них я ничего не знаю и вообще, если начал их юзать, то стоит задуматься, зачем тебе вообще Хаскелл =)
            Цитата --Ins-- @
            Очень точное словосочетание в случае, когда ты отказываешься от индексных свойств (и заменяешь их страшно представить чем) потому, что твой инструмент их поддержку должным образом не обеспечивает.

            Отказываюсь? Чтобы отказаться, надо знать для решения каких задач это нужно. Единственное, что пока услышал, это мегазадача "я так хочу". Я не вижу необходимости в свойствах вообще, а мне тут два индексных пытаются втюхать.
            Цитата --Ins-- @
            Это влияние с++, точно тебе говорю. Там же вроде свойств нет, вот и невозможно теперь программируя в другом языке мыслить его категориями

            Как странно... но... я программист на C#. Доктор, вы неправильно поставили диагноз, значит, вы какой-то недоучившийся доктор, и дипломчик у вас "левый".
              Цитата --Ins-- @
              :D Шаблоны в c++ конечно может и мощные, то вот ООП - убогое.

              Доказательства, пожалуйста. А то за всю тему только подобные неаргументированные выкрики ;)
              Некрасиво.
                Цитата --Ins-- @
                сеттер свойства Points НЕ ЗАНИМАЕТСЯ отслеживанием изменений ЗНАЧЕНИЯ точки


                В то время как если бы это была запись - то именно этим бы он и занимался
                  Цитата D_KEY @
                  Да хоть зачитайся. Состояние объекта описывается, как правило, не самой ссылкой на поле, а именно значением поля, хотя объект и содержит ссылку. Если С++ позволяет запретить такие изменения, то Delphi - нет. В результате порождаем лишнии копии объектов и заставляем клиентов или вручную эти копии удалять, или использовать какие-то обертки, вместо нормального доступа.

                  дык значением поля является объект и уже его состоянием должен заведовать его класс, а не какой-то другой
                    Цитата korvin @
                    арргх! еще раз: интерфейс "класса-контейнера" (TRect), ну никак не должен влиять на интерфейс класса поля (TPoint)
                    Нет, не должен. И TRect не должен. И integer не должен. И ещё целый парад типов также не должны это делать. Но тем не менее TRect является частью его состояния. И раз уж мне дали такой инструмент, как свойства которые собстно выставляют это поле напоказ, то должны дать инструмент позволяющий защитить моё поле от несанкционированного вмешательства. Вот в С++ этим инструментом является константность. А в делфи?
                      Цитата D_KEY @
                      Доказательства, пожалуйста.


                      Да были уже. Ты как-то грозился повторить на уровне библиотеки объектную модель Delphi. До сих пор жду :) Реализуй мне NewInstance, Dispatch, AfterConstruction, BeforeDestruction, SafeCallException - ну, для начала хотя бы :)
                        Цитата KILLER @
                        Ммм...Странно, что я до сих пор не почувствовал в нем острую потребность... :scratch:

                        я давно хотел почитать про АОП, никак руки не доходили, недавно почитал как реализован АОП для джавы (не платформы, а языка), мне сильно не понравилось, как там описываются точки соприкосновения и срезы, поэтому интерес к АОПу немного поугас. сама идея в общем-то неплоха, но реализовать по-хорошему думаю проблематично, от того и не шибко распространен. впрочем я не сильно интересовался этим вопросом, может на западе распространен достаточно, чтобы имело смысл поизучать
                          Цитата --Ins-- @
                          Да были уже. Ты как-то грозился повторить на уровне библиотеки объектную модель Delphi. До сих пор жду :) Реализуй мне NewInstance, Dispatch, AfterConstruction, BeforeDestruction, SafeCallException - ну, для начала хотя бы :)
                          С каких это пор объектная модель делфи стала эталоном ООП, или хотя бы удачной его реализацией? Кто так сказал? С чего взял?
                            Цитата MyNameIsIgor @

                            Как странно... но... я программист на C#. Доктор, вы неправильно поставили диагноз, значит, вы какой-то недоучившийся доктор, и дипломчик у вас "левый".

                            Как правило в университетах, не заостряют особого внимания на одном языке программирования, допустим когда я учился в университете у нас сначало был Паскаль, затем был С++ и паралельно Делфи, тогда же и SQL, далее был ассемблер и пролог, под конец нам преподавали FoxPro. Единственно что я жалею небыло C#, мне пришлось его изучать самому, и в принципе я его осилил, но в связи с работой, пришлось его забросить, и я его уже практически забюыл... И дума ютак во многих университетах/институтах, если не во всех, что преподавали делфистам - остается загадкой, неужто один делфи???
                              Цитата Повстанець @
                              каких это пор объектная модель делфи стала эталоном ООП, или хотя бы удачной его реализацией? Кто так сказал? С чего взял?

                              Не сметь богохульствовать! Там же до жопы индексных свойств!
                                Цитата --Ins-- @
                                D_KEY, для тебя еще раз, хоть я это уже и писал. В случае
                                Rect.Points[0].X :=
                                где Points[0] - это класс (как и Rect), никакая инкапсуляция не нарушается. Значение X в обход сеттера не меняется. Потому что сеттер свойства Points НЕ ЗАНИМАЕТСЯ отслеживанием изменений ЗНАЧЕНИЯ точки, он вызывается при присвоении ссылки. ЧТО СЛОЖНОГО???

                                В пятый раз повторяю, что ничего сложного тут нет и я понимаю, что происходит. И даже почему. Я не понимаю, зачем.
                                Я не прошу, чтобы вызывался сеттер. Я прошу, чтобы мне не дали изменить X, поскольку от этого зависит состояние Rect, а мы, фактически, позволяем напрямую изменять значение атрибута объекта Rect(да, я понимаю, что оно храниться ссылка, но состояние зависит от значения самого объекта, а не ссылки). ЧТО СЛОЖНОГО???
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 44 45 [46] 47 48 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.1645 ]   [ 15 queries used ]   [ Generated: 29.07.26, 07:34 GMT ]