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

      :lool:

      Пояснишь? И в чем заключается логика, когда одни типы назначаются "ссылочными", другие "обычными"? Зачем? Нет ли тут противоречий с самим понятием "типа"?
      Вот лично мне кажется, что лучше, когда все переменные в языке являются ссылками, а примитивные типы объявляются immutable(что дает возможность в реализации сделать переменные этих типов не ссылками, а значениями, без каких-либо последствий для программиста).
      Или уж делать как в С/С++ - все задавать руками и предоставить возможность определять свой вид косвенного обращения и управления ссылками и выделенной памятью - отсюда умные указатели и т.п.

      Добавлено
      Цитата korvin @
      Цитата Qraizer @
      Если они были в исходной постановке задачи, значит не просто так.

      но зачем?

      Это надо спрашивать автора. Значит понадобились.
        Цитата D_KEY @
        Нет ли тут противоречий с самим понятием "типа"?

        нет
          Цитата korvin @
          Цитата D_KEY @
          Нет ли тут противоречий с самим понятием "типа"?

          нет

          Тип является атрибутом значения, а не переменной. Если мы вносим само понятие ссылки или указателя в систему типов, то логично, чтобы это были отдельные типы: ссылка на T и/или указатель на T. То есть значением этих типов(если не брать в расчет оптимизации) будут ссылки(в реализации, скорее всего, адреса) на значение типа T.
          Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. Во-первых, неясно, что представляют собой переменные, а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа.

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

            Это малая цена за избавление от лишнего гемо
            Цитата D_KEY @
            Или уж делать как в С/С++ - все задавать руками и предоставить возможность определять свой вид косвенного обращения и управления ссылками и выделенной памятью - отсюда умные указатели и т.п.


            P.S.
            D_KEY, Oxygene бы тебе пришёлся по нраву :D

            Добавлено
            P.S.S.
            Что я делаю не так?
            ExpandedWrap disabled
                  char a[1];
                  cin >> a;
               
                  if (a == "y")
                  {
                  }
              Цитата DesweR @
              Цитата D_KEY @
              Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык. Во-первых, неясно, что представляют собой переменные, а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа.

              Это малая цена за избавление от лишнего гемо

              Нет там его :) А плата очень высокая - отсутствие логики в ядре языка == кривое языковое ядро.

              Цитата
              D_KEY, Oxygene бы тебе пришёлся по нраву :D

              А что там?
              В любом случае меня воротит от паскале-подобного синтаксиса. Ничего не могу с собой поделать. Это не объективно, потому на эту тему не спорю.
              Очень мешает освоению ады, которую таки хочу знать.

              Добавлено
              Цитата DesweR @
              P.S.S.
              Что я делаю не так?
              ExpandedWrap disabled
                    char a[1];
                    cin >> a;
                 
                    if (a == "y")
                    {
                    }

              Используешь язык программирования, который не знаешь.
                Цитата D_KEY @
                А плата очень высокая - отсутствие логики

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

                Цитата D_KEY @
                А что там?

                Всё как в C# :)

                Добавлено
                Цитата D_KEY @
                Используешь язык программирования, который не знаешь.

                И всё таки, что там?
                  Цитата DesweR @
                  Цитата D_KEY @
                  А плата очень высокая - отсутствие логики

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

                  И не возникнет, пока не станешь хотя бы пытаться программировать на других языках или просто не захочешь углубить теоретические знания.

                  Цитата
                  Цитата D_KEY @
                  А что там?

                  Всё как в C# :)
                  Значит не понравится. Странная иерархия типов, деление на ссылочные и обычные типы, и т.п.

                  Цитата
                  Цитата D_KEY @
                  Используешь язык программирования, который не знаешь.

                  И всё таки, что там?

                  Как бы объяснить не сишнику... Начнем с того, что, char[1] - это не "строка" и даже не С-строка.
                    Цитата DesweR @
                    И всё таки, что там?
                    Там только с фигурными скобками всё хорошо.
                      Цитата Adil @
                      Цитата DesweR @
                      И всё таки, что там?
                      Там только с фигурными скобками всё хорошо.

                      +1 :D
                        Цитата D_KEY @
                        И не возникнет

                        И не возникнет, пока пишу на ЯП высокого уровня ;)

                        Цитата D_KEY @
                        Как бы объяснить не сишнику...

                        Ответ то я знаю, казалось бы где логика?
                        ExpandedWrap disabled
                              char a;
                              cin >> a;
                           
                              if (a == 'y')
                              {
                              }
                          логика тут:
                          ExpandedWrap disabled
                            std::string a;
                            std::cin >> a;
                             
                            if( a == "y" )
                            {
                            }
                            Цитата D_KEY @
                            Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык.

                            нет.

                            Цитата D_KEY @
                            Во-первых, неясно, что представляют собой переменные

                            вполне ясно.

                            Цитата D_KEY @
                            а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа.

                            размеченная структура. но нам это знать не нужно. внутренняя реализация -- забота разработчиков языка. барьеры абстракций, да.

                            ExpandedWrap disabled
                              let cons a b -> (lambda m -> a b)
                              let car p -> p (lambda a b -> a)
                              let cdr p -> p (lambda a b -> b)

                            cons возвращает процедуру или значение типа Cons-cell?

                            Добавлено
                            Цитата D_KEY @
                            И не возникнет, пока не станешь хотя бы пытаться программировать на других языках или просто не захочешь углубить теоретические знания.

                            у меня никаких путаниц не возникало ни с одним языком, кроме С++, т.к. я ожидалл, что объекты в нем, как и везде -- ссылочные.
                              Цитата DesweR @
                              Цитата D_KEY @
                              И не возникнет

                              И не возникнет, пока пишу на ЯП высокого уровня ;)

                              Уверен? Ты подразумеваешь степень отдаленности от аппаратной платформы(и тут ты прав) или степень высокоуровневости и выразительности доступных тебе абстракций?

                              Цитата
                              Цитата D_KEY @
                              Как бы объяснить не сишнику...

                              Ответ то я знаю, казалось бы где логика?

                              Почему не воспользовался строками из стандартной библиотеки С++?
                              Почему ты не ознакомился с понятием С-строк, раз уж решил их использовать?

                              Цитата
                              ExpandedWrap disabled
                                    char a;
                                    cin >> a;
                                 
                                    if (a == 'y')
                                    {
                                    }

                              Если ты об отношении единичного объекта и массива, то и пиши так:
                              ExpandedWrap disabled
                                    char a[1];
                                    cin >> a[0];
                                 
                                    if (a[0] == 'y')
                                    {
                                    }

                              :)

                              Добавлено
                              Цитата korvin @
                              Цитата D_KEY @
                              Если же мы делаем некоторые типы изначально ссылочными, то вносим путаницу в язык.

                              нет.

                              Ну как же нет?

                              Цитата
                              Цитата D_KEY @
                              Во-первых, неясно, что представляют собой переменные

                              вполне ясно.
                              И что же?
                              Допустим, переменные - ссылки. Тогда у нас получается ссылка на ссылку для ссылочных типов?
                              А может у нас просто отпадает надобность в ссылочных типах ;) ?
                              Допустим, переменные - значения. Тогда у нас получается, что поведение переменной зависит от того, ссылочный у нас тип или нет.
                              Прекрасный повод задуматься об обобщенном коде.

                              Цитата
                              Цитата D_KEY @
                              а во-вторых возникает вопрос: ссылками на значение какого типа являются значения ссылочного типа.

                              размеченная структура. но нам это знать не нужно. внутренняя реализация -- забота разработчиков языка. барьеры абстракций, да.

                              Это дополнительные подкопотные знания, торчащие наружу, а не барьеры абстракции.

                              Цитата
                              Цитата D_KEY @
                              И не возникнет, пока не станешь хотя бы пытаться программировать на других языках или просто не захочешь углубить теоретические знания.

                              у меня никаких путаниц не возникало ни с одним языком, кроме С++, т.к. я ожидалл, что объекты в нем, как и везде -- ссылочные.

                              Значит у тебя сыграла привычка. А в С++ нужно думать всегда о том, что делаешь. Это не красивые слова, это действительно так. Плохо это или хорошо - вопрос отдельный.
                              Сообщение отредактировано: D_KEY -
                                упс, недоглядел =)
                                Сообщение отредактировано: korvin -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 173 174 [175] 176 177 ...  494 495


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