LINUX.ORG.RU
ФорумTalks

Декларация противодействия обману

 , ,


0

6

Уважаемые читатели!

Ещё не завершился проект, над которым я сейчас пока работаю, но часть, которую я плюнул и сделал на эрланге вместо с++ уже работает. Осталось ещё пару фишек железячных, который будут сделаны на С, ну чуток кода на эрланге будет тоже.

Проект следующий: есть арм со встоемым плисом. на арме нужен был линукс, тсп, три rs232 и axi4-lite (последнее как раз не сделано ещё, сейчас разбираюсь с этим как раз). В качестве линукса взял petalinux, с тсп работаю через gen_tcp, с rs232 - использую socat - /dev/ttyPS1,115200,raw. Для axi4 пока не знаю, придётся чего-то писать на С.

Так вот, ребята, что я хочу сказать. С плюс плюс - это РАК. Да, это рак современной айти индустрии. Именно он виноват в том, что самолёты падают, жёсткие диски сыпятся, а летом в кранах нет горячей воды. Именно это еб****е поделие виновато в во всех наших бедах. Даже коррупция и инфляция - результат того, что это уг до сих пор используется в индустрии.

Теперь я, nanoolinux, торжественно клянусь сделать всё, что-бы запретить сиплюсплюс на государсвенном уровне. Сделать его символом глобального фейла и знамением неудачи. Я клянусь говорить правду о сиплюсплюс везде и всюду, что бы люди знали, что их обманывают. Ради собстсвенной наживы или же лулзов им нагло лгут о том, что сиплюсплюс универсальный язык программирования высокого уровня с поддеркой множества парадигм и архитектур. Знайте! Если вы услышали такое от человека или робота здесь или ещё где, то это либо лгун и тролль, либо потерянная и заблудшая душа. Я призываю вас всячески выводить их на чистую воду (если это лжец) либо пожалеть и лечить (если это потерянный).

За нами правда! И да прибудет с нами сила!

Лор, тридцать первое июля две тысячи четырнадцатого года от рождества христова, подпись.

★★★★

Последнее исправление: nanoolinux (всего исправлений: 1)

ну гляди, Кресты ведь еще и развивают духовно. Им можно поклоняться. Всегда остается иллюзия того, что есть свет в конце туннеля, есть что изучать итп.

Может быть ты так плохо пишешь на крестах просто потому, что чайник. Потому что не разобрался, не изучил. Не проникся верной культурой программирования. Нужно собраться с духом и идти дальше по Пути Крестов. «В дальний путь, не зная срока, сам себя благослови»...

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)

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

xaizek ★★★★★
()
Ответ на: комментарий от ymn

Кто пилить-то будет?

Да и вообще - если Rust взлетит, то новый SML будет не нужен; если не взлетит... то даже новый годный SML не взлетит тем более.

tailgunner ★★★★★
()

Есть два типа языков программирования — те, которые все ругают, и те на которых никто не пишет.

Ну рассказывай уже, что не осилил. А то прелюдия затянулась.

Pavval ★★★★★
()
Ответ на: комментарий от tailgunner

Да, у меня большие надежды на раст.

ymn ★★★★★
()

Наконец-то! Давно не было истерик о C++.

Shadow1251
()

Ересь! Крестики хорошие. А вот ваш эрланг не может в человеческий синтаксис и обработку строк.

vazgen05 ★★★
()

Без конкретики неинтерсно.

С чем таким столкнулся, что такое мнение о С++ сформировалось?

Мне наоборот на с С++11 понравилось писать программы.

anatoly
()

ТС - просто студент-неасилятор, иного разумного объяснения его посту быть не может.

asaw ★★★★★
()
Ответ на: комментарий от vazgen05

А вот ваш эрланг не может в [...] обработку строк.

Что такого может делать со строками C++, чего не может Erlang?

А ещё у Erlang есть няшный bit syntax.

theNamelessOne ★★★★★
()
Ответ на: комментарий от anatoly

4х годичный опыт. Легаси код, который мне достался и плюс возня с дебагером в новых проектах.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от Pavval

Что не осилил? спп? пфф. Покажи мне лучше что-то, что ты написал бы за два дня, а на третий с утра запустил бы и оно заработало бы из коробки. И да, не забудь передать привет дебагеру)

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от vazgen05

человеческий синтаксис и обработку строк.

Продолжай, николас_кейдж_улыбается.жипег

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от tailgunner

Нужно запились компилирование эрланга в нативный код, работающий без вм, пожертвовав некоторыми фичами, типа обновления кода на лету например, а всё что делается через порты/драйверы назвать unsafe. Вот собственно и всё.

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от nanoolinux

Ну то есть как замена Си++ Erlang сейчас просто не катит.

Кстати....

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

Если ты с нуля пилишь (на что очень похоже), ты ССЗБ.

tailgunner ★★★★★
()
Ответ на: комментарий от vazgen05

Так там вместо строкового типа какие-то дурные списки

Ну и что? В солидной части «C++»-ных программ вообще указатели вместо строк используют.

theNamelessOne ★★★★★
()

Так вот, ребята, что я хочу сказать. С плюс плюс - это РАК. Да, это рак современной айти индустрии. Именно он виноват в том, что самолёты падают, жёсткие диски сыпятся, а летом в кранах нет горячей воды. Именно это еб****е поделие виновато в во всех наших бедах. Даже коррупция и инфляция - результат того, что это уг до сих пор используется в индустрии.

Ещё один всё понял.

CYB3R ★★★★★
()
Ответ на: комментарий от nanoolinux

Если ты с нуля пилишь

И откуда вы все лезете?

Если ты хотел спросить «как ты догадался», то я отвечаю «это очевидно».

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Продолжай убеждать себя в том, что у меня «что-то пошло не так». На самом деле факт в том, что спп - убогое уг. И ты ничего с этим не сможешь сделать. Что бы ты ни делал. патерны/фигатерны/употребеление_лсд_во_время_набора_кода - это всё всё равно привидёт к фейлу только лишь, повторю, только лишь по тому, что спп. Сиплюплюс - это РАК! Программа на спп работает только виртуально. Она компилится, проходит тесты, всё тип-топ. Но на самом деле не работает. Только делает вид, что работает. Падает и глючит при первой же возможности. И это проблема иднустрии космических масштабов, которую либо никто не хочет видеть, либо не видит.

nanoolinux ★★★★
() автор топика

... С плюс плюс - это РАК. ...

Радикально, но с основной мыслью согласен. Лично я на Rust надеюсь, но даже в лучшем случае это только для личных проектов - в обозримом будущем на работе от плюсов просто так не убежишь, если хочется разрабатывать игры :( .

ozkriff
()
Ответ на: комментарий от nanoolinux

Продолжай убеждать себя в том, что у меня «что-то пошло не так»

Ты сам с этим отлично справился.

tailgunner ★★★★★
()
Ответ на: комментарий от theNamelessOne

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

vazgen05 ★★★
()
Ответ на: комментарий от nanoolinux

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

А давай ты не будешь съезжать на других, когда спросили тебя?

Что не осилил? спп? пфф.

Рассказы про «РАК» следовало бы подкреплять пруфами. А тут их на весь тред ни одного, что очень красочно о тебе говорит.

Pavval ★★★★★
()

Кстати, любимый ты наш борщичник, поделись как в Эрланге делать рефакторинг, без нормального IDE и прочих тулзов? Поменял ты где-нибудь сигнатуру функци, и чо, руками изменять все 10000 ее вхождений?

stevejobs ★★★★☆
()
Ответ на: комментарий от Valkeru

Меня не унесли же :33

Думаю, нужно вновь напомнить крестопоклонникам, что C++ не имеет области применения.

Причины:

  1. Вырвиглазный синтаксис и контекстно-зависимая грамматика
    • медленная компиляция
    • частые «internal error» в компиляторах
    • код плохо читается и его сложно поддерживать
    • разбор кода различными инструментами, вроде IDE, и его генерация - сильно затруднены
  2. ручное управление памятью
    • неудобства при работе с динамической памятью
    • утечки памяти
    • висячие ссылки
    • сегфолты
    • стандартные средства, как то malloc/new, работают медленно
    • фрагментация кучи
    • велосипедные аллокаторы на каждом шагу
      • которые далеко не факт что эффективнее malloc/new

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

    • отладка затруднена
    • написание GC, по факту, невозможно, отчасти из-за (5), (7) и (8)
  3. Никакого ABI
  4. Нестандартизированный и непредсказумый name mangling
  5. Дублирование функционала Си
    • сами фичи из Си никуда не деваются при этом
      • отчасти из-за того, что по функционалу превосходят аналоги из C++

    • запутывает новичков
    • malloc - new/new[], free - delete/delete[]
    • препроцессор - шаблоны
    • указатели - ссылки
      • ссылка не может быть NULL, что способствует появлению висячих ссылок и сегфолтов

    • структуры - классы
    • stdio - iostream
  6. Стандартная библиотека убога
    • Отсутствует даже такой функционал, как вменяемая работа со строками и многомерные массивы
      • Юникод?

  7. Слабая типизация
    • способствует ошибкам
    • затрудняет отладку
    • const не дает абсолютно никаких гарантий
    • при этом система типов невероятно переусложенена
      • в основном из-за пунктов (2), (5) и (9)
      • медленная компиляция
      • частые внутренние ошибки в компиляторах

  8. объектая система убога
    • практически никакой интроспекции
      • отладка затруднена
    • передача объектов по значению
      • понятие идентичности объекта теряет смысл
      • добавляет сложностей в управлении памятью
      • добавляет сложностей при отладке
      • используется часто, по причине (2)
        • перерасход по памяти
        • медленная работа

    • множественное наследование неудобно в использовании
      • проблема ромба по дефолту не разрешается никак

    • исключения в конструкторах гарантированно влекут утечку памяти
      • исключения в деструкторах тоже, и просто утечку - еще в лучшем случае
        • коды ошибок деструкторы и конструкторы возвращать не могут
          • ошибки в них не обработать никак
            • поэтому ими стараются не пользоваться
              • раздувание кода

    • деструктор можно вызывать до выхода из блока кода, или до delete
      • гарантированная утечка ресурсов/сегфлот
      • это не предотвратить никак, деструктор обязан быть public

    • одиночная диспетчеризация
      • виртуальные методы в конструкторах не работают
      • реализована убого
        • pure virtual function call
        • сложности в случае с множественным наследованием
        • деструкторы обязаны быть виртуальными
          • по дефолту - не виртуальные

        • никаких интерфейсов, только классы

    • порядок инициализации статических членов классов не определен
    • private, public и protected не дают никаких гарантий сокрытия данных
      • к инкапсуляции же не относятся совершенно никак

    • отсутствие «свойств»
      • вынуждает городить getter'ы и setter'ы
        • раздувание кода
        • размывание интерфейса класса

    • неявно генерирумые конструкторы, деструкторы и операторы присваивания
    • «friend» нарушают инкапсуляцию
  9. шаблоны
    • очень сильно замедляют компиляцию
    • раздувание кода
    • обфускация кода
    • результат раскрытия плохо предсказуем
    • сложности в отладке
      • километровые и плохо читаемые сообщения об ошибках при компиляции

    • нарушают инкапсуляцию
      • обязаны содержать реализацию в заголовочных файлах

    • позволяют генерировать некорректный код
  10. исключения
    • отсутствие finally/unwind-protect
      • заставляет городить классы ради одних деструкторов
        • раздувание кода
        • медленная компиляция
        • медленная работа

    • конфликтуют с другими возможностями языка
      • конструкторы/деструкторы
      • ручное управление памятью

    • работают медленно
    • малофункциональны (ср. CL condition system)

По причинам 3, 4, 5, 9 и 10 C++ совершенно неприменим для системного и низкоуровневого программирования. А по причинами 1, 2, 5, 6, 7, 8, и, опять же, 9 и 10 - и для прикладного.

У C++ нет области применения.

stevejobs ★★★★☆
()
Ответ на: комментарий от Pavval

Рассказы про «РАК» следовало бы подкреплять пруфами

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

nanoolinux ★★★★
() автор топика
Ответ на: комментарий от stevejobs

Сигнатуры ф-ий? Ты имеешь ввиду арность или что? Так для этого и рефакторинг делать не надо. Только добавляй новый код с тестами и всё. Да и даже если арность не изменилась, дописал точку с запятой в конце в место точки и пиши себе дальше. Расширяй функционал то есть.

nanoolinux ★★★★
() автор топика

Никогда не понимал банальной боли от С++
Ну не можете вы на нём программировать - не программируйте.
Для вас придумали очень много языков программирования попроще.

grim ★★☆☆
()

А мне норм. Тред не читал

yoghurt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.