На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (32) « Первая ... 23 24 [25] 26 27 ...  31 32  ( Перейти к последнему сообщению )  
> Развейте мои сомнения: упростится ли программирование при переходе от C к C++?
    Цитата Flex Ferrum @
    C++ (по стандарту) требует определённой поддержки от рантайма - исключения, rtti, реализация операторов и прочие мелочи. Поэтому рантайм линковаться будет. И инициализация его будет. Причём фишка в том, что даже если отключить исключения опцией, их инфраструктура все равно будет инициализироваться.
    По стандарту и сяшка требует определенной поддержки от рантайма, ведь у сяшки, внезапно, тоже есть стандартная библиотека. А так от плюсов успешно отрезается рантайм полностью. Да, мы теряем STL, RTTI, исключения и т.д., но сами возможности языка остаются при нас.
    Вот сразу нагуглилось - How to write a C++ program without libstdc++
    Сообщение отредактировано: applegame -
      Цитата JoeUser @
      Цитата D_KEY @
      Вопрос в том, дает ли тебе C++ по сравнению с Си столько, что его стоит изучать при условии его сложности и многочисленных тонкостей.
      Никто же не заставляет учить С++ в полном объеме. Например, можно вообще не заморачиваться с созданием собственных классов, но использовать STL как удобный набор отдельных "инструментов". Обычный процедурный подход. И наоборот, можно не использовать STL, а самому реализовывать свой набор "инструментов" - получаем ООП без метапрограммирования, а можно заморочиться и метапрограммированием. Вкус приходит во время еды.

      Для себя дома и один ты можешь писать на чем угодно. А если мы говорим о работе или открытых проектах с несколькими участниками, то эти рассуждения не работают.
        Т.е выводы на мой взгляд однозначны:
        - Программы написанные на Си работают не быстрее аналогичных написанных на С++. Возможно, даже медленнее, за счёт того, что С++ какие-то вещи переносятся в compile-time
        - По размеру преимуществ тоже может не быть. Но тут, при определённых усилиях.
        - На С++ легче писать более надежные программы, опять же, за счёт того, что компилятор выполняет массу рутинной работы. Которую в Си надо делать вручную.
        Сообщение отредактировано: Олег М -
          Цитата applegame @
          А вообще, тут не может быть иной аргументации, кроме как субъективной.

          Субъективное мнение тоже должно быть обосновано. ИМХО :)
            Цитата D_KEY @
            Для себя дома и один ты можешь писать на чем угодно. А если мы говорим о работе или открытых проектах с несколькими участниками, то эти рассуждения не работают.
            В таком контексте вопрос ТС вообще не имеет смысла, так что не в тему.
              Цитата amk @
              Ты перед запуском g++ файл с исходником не забыл переименовать в .cpp?

              Не забыл. И более того - если добавить что-либо плюсовое (хоть тупо #include <iostream>) - зависимость от libstdc++, естественно, появляется.

              Добавлено
              Цитата Олег М @
              Т.е выводы на мой взгляд однозначны:

              С этим согласен.
                Цитата D_KEY @
                Для себя дома и один ты можешь писать на чем угодно.

                Все верно - и это мой ответ на 2-й пункт вопроса топика.

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

                Это может быть ответом на первый пункт вопроса топика. А может быть потому, что в разных командах существуют разные подходы к проектированию. Некоторые требуют понимания, но не обязательного использования отдельных конструкций и/или парадигм языка.

                Требование: "знать все" - конечно манит :) но такого не бывает, как правило.
                  Цитата Олег М @
                  Т.е выводы на мой взгляд однозначны:
                  - Программы написанные на Си работают не быстрее аналогичных написанных на С++. Возможно, даже медленнее, за счёт того, что С++ какие-то вещи переносятся в compile-time
                  - По размеру преимуществ тоже может не быть. Но тут, при определённых усилиях.
                  - На С++ легче писать более надежные программы, опять же, за счёт того, что компилятор выполняет массу рутинной работы. Которую в Си надо делать вручную.

                  Тут надо отметить ещё что: серьёзные С-программисты не работают без lint или чего-то подобного. Точно так же, как серьёзные программы на плюсах не пишутся без использования статических анализаторов и санитайзеров. Это что-то вроде правил гигиены и чистых рук. Компилятор не может отловить всё (да и не должен), поэтому статический и динамический анализ ему в помощь.
                    Цитата JoeUser @
                    Требование: "знать все" - конечно манит :) но такого не бывает, как правило.

                    И заметь, что для си(и большинства языков) это звучит более реально, чем для C++.
                    Язык сложен. И все опровдание для этого - история его и отрасли.
                      Цитата Flex Ferrum @
                      Тут надо отметить ещё что: серьёзные С-программисты не работают без lint или чего-то подобного. Точно так же, как серьёзные программы на плюсах не пишутся без использования статических анализаторов и санитайзеров. Это что-то вроде правил гигиены и чистых рук. Компилятор не может отловить всё (да и не должен), поэтому статический и динамический анализ ему в помощь.
                      Надо еще отметить, что степень необходимости линтеров и статических анализаторов прямо связана с недостатками языка. И почему это компилятор не должен отлавливать все? Идеальный сферический язык (и компилятор) не должен требовать никаких линтеров и анализаторов.
                        Цитата D_KEY @
                        И заметь, что для си(и большинства языков) это звучит более реально, чем для C++.

                        Чисто ИМХО - сложность C++ заключается только в метапрограммировании. А SFINAE вообще вершина маразма. Чтобы получить помошь в контроле типов, нужно "научить" компилятор в своей программе правильно подставлять типы (если точнее - подставлять нужные сигнатуры). Ну и нахрена мне такая помощь? :lol: Должны помогать мне, а по факту, помогаю я :lol:

                        Добавлено
                        А вот все остальное в С++ совершенно понятно и прозрачно. И если добавляет сложность, то только в дополнительном объеме документации о полезностях.
                          Цитата applegame @
                          Надо еще отметить, что степень необходимости линтеров и статических анализаторов прямо связана с недостатками языка. И почему это компилятор не должен отлавливать все? Идеальный сферический язык (и компилятор) не должен требовать никаких линтеров и анализаторов.

                          Нет, не связана. Статические анализаторы есть для многих языков. Программисты - люди, они пишут с ошибками. Часть ошибок - довольно популярны. На их детект и настроены статические анализаторы. Что не может поймать статический анализатор - ловят динамические и тесты. В их необходимости, я думаю, ты не сомневаешься? :)
                            Цитата Flex Ferrum @
                            Это что-то вроде правил гигиены и чистых рук.


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

                              Не, мы о разном. :)
                                Цитата Flex Ferrum @
                                Тут надо отметить ещё что: серьёзные С-программисты не работают без lint или чего-то подобного.

                                Ну и серьёзные программисты должны быть в курсе проблематики. Соответственно у них не должно возникать вопросов по-поводу Си vs С++
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (32) « Первая ... 23 24 [25] 26 27 ...  31 32


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,1048 ]   [ 15 queries used ]   [ Generated: 23.05.24, 03:17 GMT ]