На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
Дорогие друзья! Поздравляем вас с днём Победы!
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (37) « Первая ... 7 8 [9] 10 11 ...  36 37  ( Перейти к последнему сообщению )  
> C vs C++ , Не опять а снова
    Цитата sergioK @
    дайте свою версию

    Ах, простите великодушно - сразу не опознал, что вас интересуют версии, а не как оно на самом деле. Впредь не стану вам мешать искать ту, что больше нравится.
      Цитата sergioK @
      D_KEY
      В целом да если вникать в суть ,а не тупо не повторять его слишком эмоциональную фразу,

      Ну так чем не ответ :) ?
      Еще есть софт, который был написан изначально непрограммистами(как nginx, который писал сисадмин). Они вполне могут знать Си, в этом ничего удивительного нет. Но вот вряд ли они будут знать С++ на достаточном уровне.
        Цитата D_KEY @
        Объясни, что ты подразумеваешь под культурой, навязываемой языком?

        Давай я попробую. Смотри. Язык (любой: естественный, компьютерный) - это средство выражения мысли. Причём, правила языка определяют форму того, как эта мысль будет выражена. Используя язык в течение длительного времени (когда ты начинаешь на языке думать, а не переводить с одного на другое) язык начинает оказывать влияние на способ собственно мышления, способ формулирования, набор категорий, в которых мыслишь и т. п. Будешь использовать Haskel - начнёшь мыслить в категории чистых функций, лямбд, монад и прочего. Будешь использовать SQL - начнёшь думать в терминах запросов, связок таблиц, подзапросов и т. д. Способ структурирования программы, распределения ответственностей, работы с объектами, ресурсами, памятью... Естественно, это начинает проявляться тогда, когда язык используется достаточно долго. Отсюда и возникают явления типа "C с классами", "программировать на C# как на C++" и т. п. Привычка выражать мысли одним образом накладывает отпечаток на то, когда инструмент их выражения меняется.
          Это все понятно, но, ИМХО, не имеет никакого отношения к тому контексту, в котором "культура" была упомянута.
          Кроме того, я считаю, что с помощью языка нужна решать задачу, а не "мыслить" на этом языке. Ну и да, си-программисты вполне способны мыслить категориями классов и объектов без поддержки со стороны языка. Подобно тому, как можно мыслить категориями тех или иных паттернов без встроенной их поддержки в языке.
            Цитата D_KEY @
            Ну и да, си-программисты вполне способны мыслить категориями классов и объектов без поддержки со стороны языка.

            Ох, лучше бы они этого не делали...
              Цитата D_KEY @
              Кроме того, я считаю, что с помощью языка нужна решать задачу, а не "мыслить" на этом языке.

              «Нужно» и «как оно происходит» на самом деле не всегда совпадает все же.
                Цитата MyNameIsIgor @
                Simula и Smalltalk.

                А в чем их принципиальное отличие? Из статей с вики о них как-то не очень понял.
                Да и вообще - дело не в них же, а в том, что использование встроенных в C++ классов, очевидно, удобнее костылей С.
                  Цитата korvin @
                  Цитата D_KEY @
                  Кроме того, я считаю, что с помощью языка нужна решать задачу, а не "мыслить" на этом языке.

                  «Нужно» и «как оно происходит» на самом деле не всегда совпадает все же.

                  +100500
                  Сообщение отредактировано: Flex Ferrum -
                    Цитата korvin @
                    Цитата D_KEY @
                    Кроме того, я считаю, что с помощью языка нужна решать задачу, а не "мыслить" на этом языке.

                    «Нужно» и «как оно происходит» на самом деле не всегда совпадает все же.

                    Конечно не всегда. Ну так какую культуру навязывает С++, если люди на нем пишут совершенно разный код, если есть несколько "противоположных" культур его использования, если быдлокода на нем очень много, а репутация его, как быдлоязыка, не сильно отличается от php? Если бы С++ навязывал свое правильное использование, то не понадобилось бы всяким Саттерам вести всякие GoW, выпускать "сложные задачи"(которые почти все связаны с языковыми проблемами С++).

                    Добавлено
                    Цитата OpenGL @
                    что использование встроенных в C++ классов, очевидно, удобнее костылей С.

                    Ну это как посмотреть. Унаследованный от GObject класс на С(или Vala) я могу спокойно использовать, например, в питоне(прослойка пишется один раз и работает для всех классов - т.к. gobject - это прозрачное API для ООП). С классами С++ дело обстоит очевидно не так. Задачи бывают разными ;)
                    А для не обобщенной реализации ООП в Си достаточно структурок с указателями на функции. И то, только когда это действительно нужно. Можешь глянуть как это делается в сырцах subversion, например. С другой стороны, можно сделать более гибкую систему, чем та, что зашита в плюсах.
                    Да, плюсы удобнее, но не всегда :) И даже в этих случаях, профит от С++ не всегда перевешивает связанные с использованием С++ трудности. Я не понимаю, почему С++ нужно всегда предпочитать С. Я думаю, что все зависит от задачи, команды и перспектив развития.
                      Цитата D_KEY @
                      Ну это как посмотреть

                      Да как ни смотри - если хочешь видеть, конечно.
                      Цитата D_KEY @
                      Унаследованный от GObject класс на С(или Vala) я могу спокойно использовать, например, в питоне

                      И это выставляется как плюс? В мире Qt биндингов это рядовое событие.
                      Цитата D_KEY @
                      С классами С++ дело обстоит очевидно не так

                      Очевидно, это не для всех очевидно :D
                      Цитата D_KEY @
                      А для не обобщенной реализации ООП в Си достаточно структурок с указателями на функции.

                      В C++, наверное, потребуется что-то ещё?
                      Цитата D_KEY @
                      Можешь глянуть как это делается в сырцах subversion

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

                      Покажи мне пример такой системы. А заодно покажи, почему её нельзя было сделать на C++.

                      Добавлено
                      Кстати, D_KEY, в соседней теме Fester наглядно показывает причину, по которой выбирают C.
                        Цитата MyNameIsIgor @
                        И это выставляется как плюс? В мире Qt биндингов это рядовое событие.

                        В отличие от Qt, gobject'у не потребовались никакие расширения языка, moc и пр.

                        Цитата
                        Цитата D_KEY @
                        А для не обобщенной реализации ООП в Си достаточно структурок с указателями на функции.

                        В C++, наверное, потребуется что-то ещё?

                        В С++ реализация ООП зашита. И если тебе нужно что-то большее, приходится делать moc и ему подобные дополнительные инструменты. Ну или просто заводить параллельно "еще одну" ООП-реализацию.

                        Цитата
                        Покажи мне пример такой системы.

                        Да тот же GObject. Ну или что-нибудь в таком роде.

                        Цитата
                        А заодно покажи, почему её нельзя было сделать на C++.

                        Можно, но в обход существующей в языке ООП-реализации. От С это будет мало отличаться.
                          Цитата D_KEY @
                          В отличие от Qt, gobject'у не потребовались никакие расширения языка, moc

                          MOC - лишь возможное решение. И оно лучше, чем переложить его работу на макрухи. Так что раз GObject'у он не потребовался, им лишь в минус.
                          Цитата D_KEY @
                          и пр.

                          Что именно?
                          Цитата D_KEY @
                          В С++ реализация ООП зашита. И если тебе нужно что-то большее, приходится делать moc и ему подобные дополнительные инструменты. Ну или просто заводить параллельно "еще одну" ООП-реализацию.

                          Т.е. таки не приходится, а является возможным решением.
                          Цитата D_KEY @
                          Можно, но в обход существующей в языке ООП-реализации. От С это будет мало отличаться.

                          Поскольку эту параллельную реализацию ООП можно делать с использованием имеющейся реализации, шаблонов и пространств имён, то разница будет огромна и исключительно в лучшую сторону.
                          Цитата D_KEY @
                          Да тот же GObject. Ну или что-нибудь в таком роде.

                          Ты шутишь? Там двести страниц.
                            Цитата MyNameIsIgor @
                            Т.е. таки не приходится, а является возможным решением.

                            Выходящим за рамки языка.

                            Цитата
                            Цитата D_KEY @
                            Можно, но в обход существующей в языке ООП-реализации. От С это будет мало отличаться.

                            Поскольку эту параллельную реализацию ООП можно делать с использованием имеющейся реализации, шаблонов и пространств имён, то разница будет огромна и исключительно в лучшую сторону.

                            И говорила бы о негибкости предложенной в С++ реализации ООП.

                            Цитата
                            Ты шутишь? Там двести страниц.

                            Я не заставляю. Можешь не читать, вряд ли ты увидишь там что-то новое ;)
                            Посмотри на содержание.

                            Добавлено
                            Ладно, я перегибаю палку, честно говоря :)
                              Цитата D_KEY @
                              Ладно, я перегибаю палку, честно говоря

                              :blink: Кто ты и что ты сделал с D_KEY? :D
                                Цитата OpenGL @
                                Цитата D_KEY @
                                Ладно, я перегибаю палку, честно говоря

                                :blink: Кто ты и что ты сделал с D_KEY? :D

                                Копирайт Астин забыл :D
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (37) « Первая ... 7 8 [9] 10 11 ...  36 37


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0509 ]   [ 15 queries used ]   [ Generated: 10.05.24, 12:13 GMT ]