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

    Замени Катю Лель, кем бы она ни была, на Карузо что ли. Тут же все встанет на свои места. Поинт в том, что когда в противостояние "звиздабольство против звиздабольства" на одной стороне внезапно подключается "практика, показывающая правильность теории", то расклад сил необратимо меняется.
    А какая нахер разница? Если Карузо сказал бы, что гроулинг это говно, а оперный тенор - ништяк, то мы все должны дружно ему поверить, просто потому что он добился известности? Достижения Торвальдса больше связаны с его личностными характеристиками, чем скиллом в программировании. Судя по его речам, программист он так себе. Но при этом он несомненно упорный и сильный лидер, с также, по всей видимости выдающийся специалист в области архитектуры ПО.

    Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
    Сообщение отредактировано: applegame -
      Кстати, про CVS, на мой взгляд он был совершенно прав. CVS позволяет совместно вести работу над проектом, но при этом постоянно теряется история изменений. И критика Subversion у него вполне справедливая. В Subversion слишком много ручной работы.

      Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
        Цитата applegame @
        то мы все должны дружно ему поверить, просто потому что он добился известности?

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

        Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
          Цитата applegame @
          Если Карузо сказал бы, что гроулинг это говно, а оперный тенор - ништяк

          Если бы Карузо сказал, что ему нахер не нужен гроулинг и петь он будет тенором, то ты бы сказал, я уверен, "Ну, ок, Карузо, ты тут певец ртом, тебе видней".

          Цитата applegame @
          Судя по его речам, программист он так себе

          Скилл программирования определять по речам? Это даже круче диагноза по фотографии.

          Добавлено
          Цитата applegame @
          просто потому что он добился известности?

          Кстати да, ты причину со следствием не путаешь?

          Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
            Цитата Qraizer @
            Цитата D_KEY @
            Это значит, что мы вводим кучу запретов для использования языка. Зачем вообще его брать тогда?
            В то время в языке больше ничего и не было по сути. Даже библиотека ограничивалась C library и iostreams. А шаблоны представляли собой либо слабоюзабельный курьёз, либо другой синтаксис для макросов, от реализации зависело.

            Тем более, нафига такое счастье? :)

            Цитата
            Просто нельзя было допустить в Linux язык, который ниасилил, иначе потерял бы и рычаги правления развитием ОСи, и репутацию. Вот он и не допустил

            Прям какой-то заговор против C++ :lol:
            Ты так говоришь, будто плюсы прям обязательно было использовать. А вот он, такой негодяй, специально и назло не стал :crazy:
            И вообще, осиливать C++ - святой долг каждого программиста :)

            Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
              Цитата D_KEY @
              И вообще, осиливать C++ - святой долг каждого программиста :)

              Ага, особенно веб-программера, так что автор выбрал путь истинного джедая ))

              Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                Самурая. Вот-вот мееееедленно и печально начнёт делать себе сеппуку.

                Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                  Цитата Астарот @
                  То есть человек, который продемонстрировал свою способность постигнуть и язык, и железо на таком уровне, что бы писать ядро, которое по факту оказалось мега-успешным

                  Ну, всё же стоит отметить, что первая (или какая там, 0.0.1) публичная версия была крайне проста (любительских ОС такого уровня достаточно много), была, по словам самого же Торвальдса, абсолютна не портабиельна и прибита гвоздями к Intel 386, а мега-успеха достигла за счёт не столько технических, сколько организационных факторов:
                  1) отсутствие альтернатив:
                  1.а) GNU упоролись по микроядру и всё ещё пилили и пилили свой Hurd, который до сих пор не готов и уже вряд ли будет, а ядра-то им как раз и не хватало
                  1.б) BSD-шники «воевали» с SCO на юридическом поприще (сам Торвальдс же говорил, если бы не это обстоятельство, он бы и не взялся за Линукс, взял бы 386BSD)
                  1.в) остальное — проприетарное
                  2) собственно использование свободной лицензии, что позволило куче заинтересованных личностей свободно качать исходники, копаться в них и допиливать
                  3) (в продолжение 1.а) «подстраивание» ядра под окружение GNU, в котором уже была куча готового софта, что позволило:
                  3.а) довольно быстро соорудить более-менее полноценную ОС
                  3.б) пробовать заменять получившейся ОСью коммерческие unix'ы

                  Думаю, даже «выбор» C вряд ли можно назвать выбором, просто C он уже, видимо, знал достаточно, цели создать «принципиально новую ОС с нескучным API» не было, нужно было что-то unix-подобное вместо Minix'а, востребованность оказалась высокая, вот Торвальдс и оказался в нужное время в нужном месте с нужным кодом.

                  Сравнить с той же Plan 9: более продуманная и «стройная» архитектура, простой и гибкий API, позволяющий легко делать вещи, которые в unix'ах и их подобиях либо не делались вообще, либо делались сложно и через одно место. Но: закрытый код, проприетарная лицензия, отсутстуие совместимости с POSIX (и соответственно, с кучей софта, написанного под POSIX), что не позволяло заменить ею unix'ы привели к тому, что она оказалась никому не нужна, хотя также, как и Линукс написана на C (а, да, в ряд негативных фактороы: ещё и на своём диалекте, не совместимом с ANSI C), более качественным образом, гораздо более известными (на тот момент, во всяком случае) людьми.

                  Про совместимость с POSIX не надо только упоминать DOS и классическую MacOS — у них были свои ниши, практически не пересекающиеся с unix'ами, им POSIX-совместимость не нужна была.

                  Или с другой стороны: есть HaikuOS, написанная на C++ (в значительной степени, по крайней мере), но как-то не взлетела.

                  Кхм…
                  Цитата
                  В Haiku корректно работают приложения, скомпилированные разными бинарно несовместимыми между собой версиями gcc (2.95 и 4). Это достигнуто путём компиляции всех библиотек операционной системы, использующихся в приложениях, обеими версиями gcc. Затем, во время запуска приложения, операционная система Haiku определяет, с помощью какой версии gcc это приложение было скомпилировано, и выполняет динамическое связывание с версией системных библиотек, скомпилированных соответствующей версией компилятора.


                  https://ru.wikipedia.org/wiki/Haiku

                  Хотя в ангийской версии статьи текст по-другому написан, хз кому верить, но, в C, я так понимаю, такой проблемы нет?


                  Нет, я не пытаюсь как-то принизить вклад Торвальдса и не утверждаю, что писать ядра на C — глупость, а на C++ — норм, но вы бы как-то мух отдельно, котлеты отдельно: отвечать на «исторически/организационные» аргументы техническими контраргументами и наоборот — как-то некорректно.

                  Добавлено
                  Цитата Астарот @
                  Вот-вот мееееедленно и печально начнёт делать себе сеппуку.

                  Зачем самому делать? Наверняка уже есть boost::seppuku

                  Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                    Цитата Астарот @
                    А вариант того, что он все "осилил", и осилив вполне сознательно принял решение, что такой хоккей ему не нужен, не рассматривается?
                    Почему же. Ну как вариант: он не осилил рассказать об этом нормальным языком. Тоже неплохо характеризует. Но вряд ли. Увы, его речь была вполне однозначна.

                    Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                      Цитата
                      вы бы как-то мух отдельно, котлеты отдельно: отвечать на «исторически/организационные» аргументы техническими контраргументами и наоборот — как-то некорректно.

                      Да я вообще банально про то, что "ниасилил" вообще не аргумент, с любой точки зрения, а не про то, что мои аргументы правильные :-?

                      Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                        Цитата D_KEY @
                        Нет, он подразумевает, что человек так решил для себя. Или ему обязательно нужно было потратить годы на изучение тонкостей C++, а только потом выбирать "аргументированно"?

                        Зачем потом? ПлЮсы видны сразу невооружённым взглядом - для понимания того, чем полезны деструкторы и методы, в том числе виртуальные, из коробки нужно тратить не годы, а минуты максимум. А вообще с чем ты споришь? Эта твоя версия только подтверждает изначальный тезис о неосиляторстве же :lol:

                        Цитата Астарот @
                        Да нет, это не вопросы глупые. Это ты понять не хочешь, что заявления про "ниасилил" тоже должны быть не менее, а даже более, чем аргументированными. Но этого, как видим, нет и в помине.

                        Почитай что ли его аргументацию за Си. Аргументов там нет и в помине, объяснения, почему несколько раз тут названные преимущества плюсов таковыми не являются - тем более. Я не знаю, как было во времена самого начала разработки линя, но во время появления git смысла писать на си его абсолютно не было - плюсы дали бы в нём больший профит.

                        Цитата D_KEY @
                        То, что оскорбления, обзывательства и отсутствие ясно выраженных аргументов само по себе не означает ничего, кроме скверного характера, невоспитанности и ЧСВ.
                        Человек вполне может быть прав. Он может не уметь аргументировать свою позицию. Более того, он не обязан это делать

                        Ну ок - аргументами такого уровня можно защищать такую точку зрения, с которой я могу быть согласен в силу каких-либо иных причин. И что дальше? Это автоматом делает данные аргументы более состоятельными? :lol:

                        Цитата D_KEY @
                        Линус победил не в споре Он создал linux. Он создал git. Это важно. А его манера выражения или аргументация в спорах - нет.

                        А кто-то тут умаляет его заслуги? Не надо додумывать то, что не говорилось. Он, безусловно, молодец, но это не добавляет контрагрументов к утверждению о том, что си - нафиг не нужное легаси, заменяемое с получением профита как минимум плюсами.

                        Добавлено
                        Цитата OpenGL @
                        с которой я могу быть согласен в силу каких-либо иных причин.

                        Что, кстати, не факт - CVS я в глаза не видел, а гит видел, и он какашка :crazy:

                        Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                          Похоже, что кто-то считает вопрос выбора языка исключительно техническим вопросом :) Но ведь языки программирования нужны для людей, а не для компа и разрабатываемой системы. Это же, по сути, выбор инструмента :-? Причем C и C++ инструменты в случая ядра одинаково подходящие. Один проще, другой имеет больше возможностей.

                          Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                            Цитата OpenGL @
                            но во время появления git смысла писать на си его абсолютно не было - плюсы дали бы в нём больший профит.

                            Это голое предположение :-? И таки git вот он тута, вся индустрия на нем.

                            Цитата OpenGL @
                            Что, кстати, не факт - CVS я в глаза не видел, а гит видел, и он какашка :crazy:

                            Я тоже не видел CVS. Но я видел ClearCase, и поверь мне - гит это просто космос! :crazy:

                            Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                              Цитата OpenGL @
                              Зачем потом? ПлЮсы видны сразу невооружённым взглядом - для понимания того, чем полезны деструкторы и методы, в том числе виртуальные, из коробки нужно тратить не годы, а минуты максимум.

                              Ну потратил он. Решил, что ему не нужно. Почему это плохо? Это же его проект.

                              Про деструкторы
                              Цитата Martin Sústrik. Why should I have written ZeroMQ in C, not C++

                              ...
                              Moreover, even if initialisation wasn't a problem, termination definitely is. You can't really throw exceptions in the destructor. Not because of some self-imposed artificial restrictions but because if the destructor is invoked in the process or unwinding the stack and it happens to throw an exception, it crashes the entire process.

                              Thus, if termination can fail, you need two separate functions to handle it:

                              ExpandedWrap disabled
                                class foo
                                {
                                public:
                                    ...
                                    int term ();
                                    ~foo ();
                                };


                              Now we are back to the problem we've had with the initialisation: There's a new 'semi-terminated' state that we have to handle somehow, add new conditions to individual member functions etc.
                              ExpandedWrap disabled
                                class foo
                                {
                                public:
                                    foo () : state (semi_initialised)
                                    {
                                         ...
                                    }
                                 
                                    int init ()
                                    {
                                        if (state != semi_initialised)
                                            handle_state_error ();
                                        ...
                                        state = intitialised;
                                    }
                                 
                                    int term ()
                                    {
                                         if (state != initialised)
                                             handle_state_error ();
                                         ...
                                         state = semi_terminated;
                                    }
                                 
                                    ~foo ()
                                    {
                                         if (state != semi_terminated)
                                             handle_state_error ();
                                         ...
                                    }
                                 
                                    int bar ()
                                    {
                                         if (state != initialised)
                                             handle_state_error ();
                                         ...
                                    }
                                };

                              Compare the above to the C implementation. There are only two states. Not initialised object/memory where all the bets are off and the structure can contain random data. And there is initialised state, where the object is fully functional. Thus, there's no need to incorporate a state machine into the object:

                              ExpandedWrap disabled
                                struct foo
                                {
                                    ...
                                };
                                 
                                int foo_init ()
                                {
                                    ...
                                }
                                 
                                int foo_term ()
                                {
                                    ...
                                }
                                 
                                int foo_bar ()
                                {
                                    ...
                                }



                              Цитата
                              Почитай что ли его аргументацию за Си. Аргументов там нет и в помине, объяснения, почему несколько раз тут названные преимущества плюсов таковыми не являются - тем более.

                              А почему там это должно быть? :)

                              Цитата
                              но во время появления git смысла писать на си его абсолютно не было - плюсы дали бы в нём больший профит.

                              :lool:
                              Какой именно профит? git стал чуть ли не де-факто стандартом, это важнее в миллион раз языка на котором он написан, а ты еще какой-то профит хочешь.

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

                              А вот он не заменял и профита почему-то получилось больше, чем у тебя или меня за всю нашу программерскую жизнь :D

                              Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                                Цитата D_KEY @
                                Ну потратил он. Решил, что ему не нужно. Почему это плохо? Это же его проект.

                                Это не плохо, только это не является объективным и обоснованным аргументом, объясняющим причины использования си, только и всего.

                                Цитата D_KEY @
                                Про деструкторы

                                В отрывке ниписан какой-то бред - вместо элементарного RAII используется какой-то ручной init и term. Статью целиком пока не читал - надо осилить сей опус.

                                Цитата D_KEY @
                                git стал чуть ли не де-факто стандартом, это важнее в миллион раз языка на котором он написан, а ты еще какой-то профит хочешь.

                                Цитата D_KEY @
                                А вот он не заменял и профита почему-то получилось больше, чем у тебя или меня за всю нашу программерскую жизнь

                                А толку? То, что си - говно это не отменяет ни разу.

                                Добавлено
                                А вообще ты, похоже, зациклился. Короче, если от тебя вновь будет что-то, на что уже в теме был дан ответ - будет игнор, так что не обессудь :-?

                                Это сообщение было перенесено сюда или объединено из темы "Fast-CGI vs WebApplication"
                                Сообщение отредактировано: OpenGL -
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (37) « Первая ... 12 13 [14] 15 16 ...  36 37


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0591 ]   [ 14 queries used ]   [ Generated: 18.05.24, 06:06 GMT ]