Объявление

Collapse
No announcement yet.

Как можно программировать на С++ в 21-м веке?

Collapse
X
 
  • Filter
  • Время
  • Show
Clear All
new posts

  • Как можно программировать на С++ в 21-м веке?

    9 лет не писал на плюсах и тут наконец пришлось.
    Не понимаю, как можно в 21-м веке писать на этом варварском языке?

    3 дня потратил чтобы понять как как написать UDP Server. Еще день разбирался как сделать чтобы он бежал в отдельном потоке. Устанавливал какой-то хреновый буст на несколько гигов, потом еще много часов ковырялся чтобы его настроить. На яве или С# - работы на 5 минут. Как можно без потоков нормально программировать, не пойму. Разобрался с потоком, но он может запускать только статическую функцию, а мне это на фиг не нужно.

    Дальше еще интересней.

    Работа со строками - сплошной онанизм. Нет garbage collection, забыл что destructor должен быть virtual - в результате программа крешит в самом непредсказуемом месте. Полиморфизм тоже какой-то совершенно корявый. Порядок подключения хидеров влияет на то скомпилируется программа или нет (нахрена они вообще кому-то нужны, эти хидеры).

    Встретил в коде функцию, которая возвращает константу. Что за нафиг?
    Начал читать статью и окончательно прозрел. The C++ 'const' Declaration: Why & How
    Кто вообще может понять этот бред?

    Короче, куча ненужных проблем на ровном месте. Зачем так над собой издеваться?
    Люди, забудьте этот язык как страшный сон и перебирайтесь в 21-й век!

  • #2
    предлагаю вернуться к бэйсику и асемблеру. а еще лучше вообще к перфокартам. в ж эти гаджэты, дайож бумагу!

    Comment


    • #3
      Сообщение от shaqq Посмотреть сообщение
      9 лет не писал на плюсах и тут наконец пришлось.
      Не понимаю, как можно в 21-м веке писать на этом варварском языке?

      3 дня потратил чтобы понять как как написать UDP Server. Еще день разбирался как сделать чтобы он бежал в отдельном потоке. Устанавливал какой-то хреновый буст на несколько гигов, потом еще много часов ковырялся чтобы его настроить. На яве или С# - работы на 5 минут. Как можно без потоков нормально программировать, не пойму. Разобрался с потоком, но он может запускать только статическую функцию, а мне это на фиг не нужно.

      Дальше еще интересней.

      Работа со строками - сплошной онанизм. Нет garbage collection, забыл что destructor должен быть virtual - в результате программа крешит в самом непредсказуемом месте. Полиморфизм тоже какой-то совершенно корявый. Порядок подключения хидеров влияет на то скомпилируется программа или нет (нахрена они вообще кому-то нужны, эти хидеры).

      Встретил в коде функцию, которая возвращает константу. Что за нафиг?
      Начал читать статью и окончательно прозрел. The C++ 'const' Declaration: Why & How
      Кто вообще может понять этот бред?

      Короче, куча ненужных проблем на ровном месте. Зачем так над собой издеваться?
      Люди, забудьте этот язык как страшный сон и перебирайтесь в 21-й век!

      целых 5 минут?! ну и ужас... я всегда верил в то, что эти недоязыки в общем-то бесполезны. на WinAPI это делается за минуту.

      ПС. как связаны UDP и С++? автор наверное имел ввиду какие-то библиотеки?
      ППС. даешь холивор!

      Comment


      • #4
        Сообщение от Vaeringjar Посмотреть сообщение
        целых 5 минут?! ну и ужас... я всегда верил в то, что эти недоязыки в общем-то бесполезны. на WinAPI это делается за минуту.

        ПС. как связаны UDP и С++? автор наверное имел ввиду какие-то библиотеки?
        ППС. даешь холивор!
        А мне не надо винапи, надо чтобы и под маком скомпилировалось.
        Задача простая - есть устройство, которое посылает данные по UDP. Есть прога на плюсах, которую нужно подрехтовать чтобы эти данные получать, ну и получать нужно в параллельном потоке чтобы не тормозить все остальные процессы. Почему нельзя это по человечески быстро сделать? Visual C++ занимает охренительно много места (по сравнению с С# и Явой вместе взятыми), почему такую элементарную вещь нельзя быстро сделать? Зачем качать какой-то буст корявый? Почему все через #опу?

        Comment


        • #5
          Сообщение от Vaeringjar Посмотреть сообщение
          ПС. как связаны UDP и С++? автор наверное имел ввиду какие-то библиотеки?
          ППС. даешь холивор!
          Угу, там все никак не связано. 10 гигов какого-то барахла на диске, а 2+2 нужно через регистры считать.

          Comment


          • #6
            Вот еще примерчик от заядлых онанистов:
            const int*const Method3(const int*const&)const;

            Comment


            • #7
              Сообщение от shaqq Посмотреть сообщение
              9 лет не писал на плюсах и тут наконец пришлось.
              Не понимаю, как можно в 21-м веке писать на этом варварском языке?
              Есть направления, на которых без него никак. Ни один другой язык не тянет, сколько ни пытались.
              Sytstem (internals), RealTime, 3D Game Engines, embedded solutions (по настоящему embedded, a не ява-игра на готовой среде). hi-perfomance, в отдельных случаях.

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

              Сообщение от shaqq Посмотреть сообщение
              3 дня потратил чтобы понять как как написать UDP Server. Еще день разбирался как сделать чтобы он бежал в отдельном потоке. Устанавливал какой-то хреновый буст на несколько гигов, потом еще много часов ковырялся чтобы его настроить. На яве или С# - работы на 5 минут. Как можно без потоков нормально программировать, не пойму. Разобрался с потоком, но он может запускать только статическую функцию, а мне это на фиг не нужно.
              Спутаны и перемешаны особенности языка, особенности конкретной библиотеки, особенности конкретных рук.

              Сообщение от shaqq Посмотреть сообщение
              На яве или С# - работы на 5 минут.
              На Qt тоже все хорошо. Библиотека на уровне JDK и BCL. Только последние несколько лет начала отставать в новых фичах, не мейнстрим ведь. ORM нет, к сожалению. Но на уровне сокетов то какие проблемы, кроме рук?

              Сообщение от shaqq Посмотреть сообщение
              Работа со строками - сплошной онанизм. Нет garbage collection, забыл что destructor должен быть virtual - в результате программа крешит в самом непредсказуемом месте.
              Здравствуй RealTime & native execution. Ты еще assembler с жава-аннотациями сравни. Или скальпель неотложки с оздоровительным походом на море.

              Сообщение от shaqq Посмотреть сообщение
              Полиморфизм тоже какой-то совершенно корявый. Порядок подключения хидеров влияет на то скомпилируется программа или нет (нахрена они вообще кому-то нужны, эти хидеры).
              Многие исторические артефакты исправлены в языке D, но он не стал массовым, в мейнстиме победил байткод, в узких направления достаточно С, там важнее историческая совместимость кода.

              С++ требует для глубокого освоения лет 5. Плюс повышенные требования к мозгу.
              Java-C#, со всеми наворотами библиотек - от полугода до двух лет.

              Сообщение от shaqq Посмотреть сообщение
              Начал читать статью и окончательно прозрел. The C++ 'const' Declaration: Why & How

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

              Сообщение от shaqq Посмотреть сообщение
              Люди, забудьте этот язык как страшный сон и перебирайтесь в 21-й век!
              Не умеешь пользоваться скальпелем - не пользуйся!
              Не подходит скальпель к твоей задаче - не пользуйся! Возьми топор или скалку, или лопату.
              Заставили чистить скальпелем сантехнику - претензии к менеджменту.

              Assembler & C фундаментальны для низкоуровневого программирования - умрут только с процессорами как таковыми.
              В случае ядерной войны и деградации человечества, например.

              Высокоуровневые языки - постоянно меняют друг друга. PHP сменил perl. Ruby не пошел в массы. Java & C# сменили Basic, pascal, Delphi, частично C++.

              Фраза "скальпель морально устарел" - в корне некорректна.
              Last edited by Sirius; 31.08.2010, 05:40.
              уехал в Уругвай http://pravda-uruguay.blogspot.com

              Comment


              • #8
                Сообщение от shaqq Посмотреть сообщение
                9 лет не писал на плюсах и тут наконец пришлось.
                3 дня потратил чтобы понять как как написать UDP Server. Еще день разбирался как сделать чтобы он бежал в отдельном потоке. Устанавливал какой-то хреновый буст на несколько гигов, потом еще много часов ковырялся чтобы его настроить.
                Дилетантство, батенька.
                Кстати буст вещь серьезная, но савить ее ради потоков...? Win API смотреть не пробовали? Там они и 9 лет назад были.

                Сообщение от shaqq Посмотреть сообщение
                Начал читать статью и окончательно прозрел.
                Да вы гений!

                Сообщение от shaqq Посмотреть сообщение
                На яве или С# ...
                Вот как только процессоры начнуть работаь напрямую с той хренью которую Java и C# генерит, подумаем.

                Сообщение от shaqq Посмотреть сообщение
                Зачем так над собой издеваться?
                Люди, забудьте этот язык как страшный сон и перебирайтесь в 21-й век!
                Спасибо за заботу, но мы давно тут и нам хорошо что вас больше чем нас, конкуренция ниже знаете-ли.

                А вы занимайтесь тем что получается и будете счастливы.

                Comment


                • #9
                  Сообщение от shaqq Посмотреть сообщение
                  9 лет не писал на плюсах и тут наконец пришлось.
                  Не понимаю, как можно в 21-м веке писать на этом варварском языке?

                  3 дня потратил чтобы понять как как написать UDP Server. Еще день разбирался как сделать чтобы он бежал в отдельном потоке. Устанавливал какой-то хреновый буст на несколько гигов, потом еще много часов ковырялся чтобы его настроить. На яве или С# - работы на 5 минут. Как можно без потоков нормально программировать, не пойму. Разобрался с потоком, но он может запускать только статическую функцию, а мне это на фиг не нужно.
                  на чистом С написать udp сервер - - работы на 5 минут.
                  чтоб бежал в отдельном потоке - еще на 5 минут.
                  особо желающие могут скачать буст на несколько гигов, навернуть какие-нить дизайн-паттерны и сертифицировать все по исо 900X

                  Дальше еще интересней.

                  Работа со строками - сплошной онанизм. Нет garbage collection, забыл что destructor должен быть virtual - в результате программа крешит в самом непредсказуемом месте. Полиморфизм тоже какой-то совершенно корявый. Порядок подключения хидеров влияет на то скомпилируется программа или нет (нахрена они вообще кому-то нужны, эти хидеры).
                  с garbage collection - это ты просто развратился отвык за собой мусор подбирать, свалил все на сервис..

                  Короче, куча ненужных проблем на ровном месте. Зачем так над собой издеваться?
                  Люди, забудьте этот язык как страшный сон и перебирайтесь в 21-й век!
                  похоже, ты просто выбрал инструмент не по задаче
                  у́кшшоул э́йхнуф

                  Comment


                  • #10
                    Сообщение от wayseeker Посмотреть сообщение


                    Вот как только процессоры начнуть работаь напрямую с той хренью которую Java и C# генерит, подумаем.
                    кстати, ARM с Java байткодом вроде работает напрямую.
                    и , кстати, тот же Dell собирался выпускать серверы на ARM-ах.
                    интересно , будет ли там какой эффект для enterprise приложений ?
                    у́кшшоул э́йхнуф

                    Comment


                    • #11
                      Сообщение от the_alexx Посмотреть сообщение
                      кстати, ARM с Java байткодом вроде работает напрямую.
                      и , кстати, тот же Dell собирался выпускать серверы на ARM-ах.
                      интересно , будет ли там какой эффект для enterprise приложений ?
                      И еще в 90-ых годах году меня предупреждали что все уже практически завтра будет написано на VB ну или Delphi. C++ уже мертв и нефиг им заниматься, но за последние 16 лет мертвец принес мне хорошие деньги и исправно продолжает приносить.

                      Я не говорю что это универсальный инструмент, но .ля!, как можно потеряв 9 лет опыта хаять то в чем уже не спец?

                      Comment


                      • #12
                        Сообщение от wayseeker Посмотреть сообщение
                        Дилетантство, батенька.
                        Кстати буст вещь серьезная, но савить ее ради потоков...? Win API смотреть не пробовали? Там они и 9 лет назад были.
                        Я только под маки в основном программировал на плюсах. Потоки очень редко использовали в то время, а когда использовали, то все ручками делалось.

                        Сообщение от wayseeker Посмотреть сообщение
                        Да вы гений!
                        Ну ясно, критику воспринимать умеем.

                        Сообщение от wayseeker Посмотреть сообщение
                        Спасибо за заботу, но мы давно тут и нам хорошо что вас больше чем нас, конкуренция ниже знаете-ли.
                        А вы занимайтесь тем что получается и будете счастливы.
                        Да ладно, не задирайте сильно нос. Я прекрасно понимаю что программисты на плюсах намного более толковые и мозг работает как часы. Сам раньше над явистами прикалывался когда тест по яве на brainbench сдал лучше чем они. Хотя всего лишь потратил 1 день на прочтение книги и не написал ни строчки кода.

                        Не в том суть. Понятно что для программирования на уровне железа лучше плюсов пока ничего не найти. Но ведь уже и из железяк его начинают вытеснять (тот же objective C). А про 3Д... я именно им и занимаюсь. Не на уровне написания собственных движков конечно (вот сейчас как раз движок и пришлось ковырять). Пишу на C# и горя не знаю.

                        Просто язык (С++) если и поменялся за эти 9 лет, то далеко не в лучшую сторону. ИМХО, даже с толковой башкой и годами опыта вы будете делать на плюсах все в 2 раза медленнее чем тот же человек с такой же башкой на C#. И ошибок неуловимых у на плюсах будет раз в 5 больше. Какими бы умными вы ни были, ошибки делают все. Пропустить слово virtual в объявлении деструктора может каждый, а отловить такой баг в коде на сотни миллионов строк очень тяжко. С++ - корявый и устарелый мастодонт, который давно пора проапгрейдить.
                        Last edited by shaqq; 31.08.2010, 10:56.

                        Comment


                        • #13
                          Сообщение от wayseeker Посмотреть сообщение
                          Я не говорю что это универсальный инструмент, но .ля!, как можно потеряв 9 лет опыта хаять то в чем уже не спец?
                          а почему нельзя? я его так же любил раньше как и Вы и опыта было не менее. Просто вернулся и как-будто назад в первобытный век. Мне одному во всем мире нужно UDP сервер написать? Или может потоки никто не использует совсем? Или совсем никому не нужно чтобы код на других платформах работал?

                          Описал вещи которые неприятно удивили после программирования на более удобных языках, вот и все. Ну и в порыве злости написал, конечно, после того как добавил 1 include и получил несколько тысяч ошибок в совершенно левых файлах. Реально глупая фигня.
                          Last edited by shaqq; 31.08.2010, 10:53.

                          Comment


                          • #14
                            Сообщение от the_alexx Посмотреть сообщение
                            на чистом С написать udp сервер - - работы на 5 минут.
                            чтоб бежал в отдельном потоке - еще на 5 минут.
                            особо желающие могут скачать буст на несколько гигов, навернуть какие-нить дизайн-паттерны и сертифицировать все по исо 900X
                            Это я как раз знаю. С того и начал, но там половина библиотек в С++ не существует.

                            Сообщение от the_alexx Посмотреть сообщение
                            с garbage collection - это ты просто развратился отвык за собой мусор подбирать, свалил все на сервис..
                            А зачем его подбирать? Ведь прогресс же идет. Почему к ассемблеру не вернуться или к байт коду? Ведь любой может забыть дилит пропустить, или забыть в parent классе virtual в деструкторе указать. Почему не избавиться от этих глупых ошибок раз и навсегда?

                            Сообщение от the_alexx Посмотреть сообщение
                            похоже, ты просто выбрал инструмент не по задаче
                            Да нет, инструмент по задаче, просто раздражает он меня пока сильно. Тормозит интересную работу элементарными тупостями. Я не спорю что забыл все и приходится вспоминать на ходу постоянно наступая на грабли. Просто удивляет что эти грабли там как минимум 10 лет лежат и никто их до сих пор не убрал, только новые подкладывает.
                            Last edited by shaqq; 31.08.2010, 10:57.

                            Comment


                            • #15
                              меня как раз в си# несколько напрягает то , что я не контролирую момент уничтожения объекта
                              Отсутствие GC - оно таки дисциплинирует..
                              у́кшшоул э́йхнуф

                              Comment

                              Working...
                              X