Avevad Автор темы 15 Опубликовано: 22 мая, 2020 В 16.05.2020 в 17:03, NEO сказал: в говени плюсовом копаться Оскорбляете меня, товарищ Neo. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 22 мая, 2020 2 часа назад, Avevad сказал: Оскорбляете меня, товарищ Neo. Эволюция языков: FORTRAN — не строго типизированный язык, С — слабо типизированный язык. Ada — сильно типизированный язык. С++ — сильно раздутый язык. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Avevad Автор темы 15 Опубликовано: 24 мая, 2020 В 22.05.2020 в 14:45, NEO сказал: С++ — сильно раздутый язык. С++ - это по сути что? С. Только улучшенный. Все что ты сейчас видишь на экране монитора - тем или иным образом написано на одном из трех: C/C++/Assembler (Java, Lua, Python - интерпретаторы/компиляторы/VM этих языков тоже написаны на одном из вышеперечисленного, думаю это ты и так знаешь). C - жуткая функциональщина, assembler - вообще молчу. Не знаю, чем тебе C++ не угодил. ООП гораздо удобнее чем всякие struct с зоопарком функций манипулирующих ими. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Totoro 3 563 Опубликовано: 24 мая, 2020 31 минуту назад, Avevad сказал: C - жуткая функциональщина Скорее "процедурщина". Жуткая функциональщина это Haskell =) 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 24 мая, 2020 39 минут назад, Avevad сказал: С++ - это по сути что? С. Только улучшенный. Все что ты сейчас видишь на экране монитора - тем или иным образом написано на одном из трех: C/C++/Assembler (Java, Lua, Python - интерпретаторы/компиляторы/VM этих языков тоже написаны на одном из вышеперечисленного, думаю это ты и так знаешь). C - жуткая функциональщина, assembler - вообще молчу. Не знаю, чем тебе C++ не угодил. ООП гораздо удобнее чем всякие struct с зоопарком функций манипулирующих ими. То что на нём пишут - это не значит что он хороший, просто люди привыкли к нему, не зная что язык может быть лаконичным и не раздутым, си хороший язык, многие знаменитые программисты плохо отзываются о плюсени.. и не удивительно, зоопарк кривых фич. Зайди к нам в irc, тебе парни набросают миллион причин почему плюсень плохой язык... Один из примеров. @LeshaInc1. переусложненный 2. куча легаси 3. повсюду undef/unspec behaviour 4. инфраструктура отсутствует, головная боль с зависимостями 5. обновляется раз в 5 лет, и то в продакшене неиспользуют Имхо, сам писал на плюсах, но парни меня переубедили, да и сам по сравнению с растом понял что язык может быть волшебным, с минимумом конструкций, но по мощности не уступающим шаблонам плюсовым или ооп. При этом безопасным. В расте ты не отстрелишь себе пол туловища тем что наступишь не туда, логирование конфетка, за 40 лет плюсенивые так и не додумались что можно не флудить 2к строк об ошибке, что всего навсего можно одним сообщением всё передать. При этом раст не уступает по скорости плюсам, где-то даже обгоняет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Avevad Автор темы 15 Опубликовано: 25 мая, 2020 (изменено) 10 часов назад, NEO сказал: 1. переусложненный К сожалению так и не услышал, чем именно. Мне вот, например, в Rust механизм обработки ошибок не нравится. 10 часов назад, NEO сказал: 3. повсюду undef/unspec behaviour А в C как будто нет? 10 часов назад, NEO сказал: 5. обновляется раз в 5 лет, и то в продакшене неиспользуют А зачем обновлять если и так уже есть все что нужно? А в продакшене его используют, еще как. 10 часов назад, NEO сказал: по сравнению с растом Rust и C/C++ не всегда предназначены для одних и тех же вещей - на C/C++ ты можешь делать все - десктопные приложения, мобильные приложения, да хоть драйвера пиши. Изменено 25 мая, 2020 пользователем Avevad 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 624 Опубликовано: 25 мая, 2020 1 час назад, Avevad сказал: Мне вот, например, в Rust механизм обработки ошибок не нравится Исключения скрыты в дебрях кода, и по сигнатуре функции не понятно, возможна там ошибка или нет. noexcept с этим особо не помогает... В расте же функция возвращает `Result<T, E>` — ты обязан обработать ошибку, через `.unwrap`, `match`, или `?` 1 час назад, Avevad сказал: А в C как будто нет? Есть. В расте нет (в safe коде). То же знаковое целочисленное переполнение, которое в си/плюсминус является UB, в расте нормально обрабатывается (в debug проверка, в release wrapping), при этом можно явно указать какое поведение тебя интересует: `checked`, `wrapping`, `overflowing`, `saturating`. Покажи мне такое в Си++ 1 час назад, Avevad сказал: А зачем обновлять если и так уже есть все что нужно? А в продакшене его используют, еще как. В C++20 добавили концепты (по сути трейты из раста, только убого реализованные), рейнжи (итераторы из раста), модули (серьезно, 30 лет не могли сделать нормальную систему модулей вместо препроцессорных костылей, раст же изначально проектировался с модулями) и много других жизненно необходимых фич, если отбрасывать их ущербность. Теперь покажи кто в продакшене на C++20 перешел? там дай бог C++11 и переписывать никто не собирается, язык стал другим 1 час назад, Avevad сказал: Rust и C/C++ не всегда предназначены для одних и тех же вещей - на C/C++ ты можешь делать все - десктопные приложения, мобильные приложения, да хоть драйвера пиши. А на расте что, нельзя? Чем это он принципиально отличается от си++? тот же системный язык, только с гарантиями. Вон даже ось пишут, или модули для ядра. 1 час назад, Avevad сказал: К сожалению так и не услышал, чем именно [переусложненный] Ну например, инициализировать переменную можно 18 различными способами.. те же выражения бывают в 5 вариантах: rvalues, lvalues, xvalues, glvalues, и prvalues... а шаблонную наркоманию порой вообще невозможно прочесть, особенно когда дело доходит до ошибок компиляции. 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 25 мая, 2020 12 часа назад, LeshaInc сказал: Исключения скрыты в дебрях кода, и по сигнатуре функции не понятно, возможна там ошибка или нет. noexcept с этим особо не помогает... В расте же функция возвращает `Result<T, E>` — ты обязан обработать ошибку, через `.unwrap`, `match`, или `?` Согласен, исключения в плюсах убогие, тем более замедляют код и заставляют разбухать бинарь, они легко вызывают утечки памяти и ресурсов без блока finally, я уже давно сделал вывод что плюсы - это си после таксидермиста, убогое чучело набитое соломой. Кучи способов инициализации, кто такое придумал и зачем? int a = {0}, int a {0}; Даже не смотря на убогую наркоманию в шаблонах - они безумно медленно компилируются, последний раз я использовал библиотеку sol2, - это враппер для луа, красивый, весь такой, шаблонный, подключив хедер и создав стейт, сей файл уже начал собираться ~7 секунд, а это было 30 строк кода и 5 из них обращения к библиотеке. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Avevad Автор темы 15 Опубликовано: 26 мая, 2020 Ладно, не будем тут болтовню по поводу языков разводить. Пусть каждый останется при том мнении, которое ему нравится. Главное - не как писать, а что получится на выходе, я считаю. Ну и каждый язык чем-нибудь хорош и плох - это и так понятно. 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах