Snusmumriken
Ну нравятся плюсы, пиши. Я же не против. Лично я и все кого я знаю. Пишут на плюсах медленнее и ошибок совершают больше. Да банально у меня код будет собираться дольше и за это время я напишу 20-30% кода на го. И это я на самом деле приуменьшаю. Потому что в моем проекте на плюсах. Сборка со всеми зависимостями, под кешироваными инклюдами. +- занимает 20 сек. Ах да..эти инклюды бывают ломают кеши и надо пересобирать все мин 5-10. ГЛАВА НАЧАЛО. Пока он собирал проект, мы написали приложение.
Так вот. Ты знаешь как я стал программистом? Я кароч хотел делать игрушки. Попробовал констрпуктор игор. Две недели потыкал. Не понравилось. Решил выпендриться и взял сишку. Месяц просидел. Понял что не хочу трахаться со строчками. Не понравилось. Литературно первый попавшийся игровой фреймворк — лове2д. Сел. Понравилось. НАЧАЛ АДОВО ФИГАЧИТЬ 10 лет. В промежутках освоил и сишку и плюсы и D и жаваскрипты с питонами и паскаль и R и лабьвю и жаву и ещё пачку ЯП. И всё чему я учился — "как делать в новых языках то же самое к чему я привык в луашке". Это всё. В кратчайшие сроки, узнаём — подходит или не подходит. Не подходит? Скипаем. Подходит? Берём и СРАЗУ БЛИН ФИГАЧИМ. Как я выбирал IDE: Что там самое тупое? Notepad++. 12 лет всё ещё самый удобный для меня редактор, пока нет статической типизации.
Snusmumriken
Была бы у меня команда человек 7. Я бы с легкостью писал на плюсах. Но в соло, это неоправданный хардкор. Который не дает плюсов. Никаких.
Нет там хардкора. Там есть сборка мусора, всё как любят казуалы. Там есть классы. Там есть куски функциональщины. Там есть шаблончики. Хочешь прямого управления памятью? Дерзай. НЕ ХОЧЕШЬ? НЕ ИСПОЛЬЗУЙ, ТАК ТОЖЕ МОЖНО, причём из STD.
Snusmumriken
Просто нет хардкора и всё. Можно писать как на луашке "с типами" или на го. Никакой разницы.
Snusmumriken
Ты какой-то травмированный. Небось будучи нубом залез в то что не мог понять?
Re
Ну крутой путь.А мой путь в айти такой. Делаем сайтики лет в 13 и приложения. В 16 на фриланс. в 25 в создание тулз, в 26 +- на свои проекты. И у меня почти на всех языках из 10ки кроме руби есть ком приложения и опыт. И когда меня говорят плюсы как все, я конечно судить не буду. Но пишите сами.
UtoECat
Была бы у меня команда человек 7. Я бы с легкостью писал на плюсах. Но в соло, это неоправданный хардкор. Который не дает плюсов. Никаких.
> Но в соло, это неоправданный хардкор c++ делаешь сложным ты сам, создавая 30 уровней наследования, шаблонная магия с параметр-паками и лямбдами, какие-то комплексные рекурсивные вычисления в compiletime и полностью корректная обработка исключений везде и вся - одни из примеров того, как загнать себя в кроличью нору. Без этого всего можно жить. Ну или применять вещи выше умеренно и без фанатизма
Snusmumriken
Ну крутой путь.А мой путь в айти такой. Делаем сайтики лет в 13 и приложения. В 16 на фриланс. в 25 в создание тулз, в 26 +- на свои проекты. И у меня почти на всех языках из 10ки кроме руби есть ком приложения и опыт. И когда меня говорят плюсы как все, я конечно судить не буду. Но пишите сами.
Все императивные языки "общего назначения" — примерно одинаковые, за исключением узкого внутреннего набора фич, опционального для использования. Выбор влияет только на "есть фигурные скобочки и звёздочки или их нет", но сути это не поменяет.
Snusmumriken
А так — да. Во всём "хардкоре" который ты можешь встретить в плюсах, ты можешь винить только себя и свои хотелки выпендриться. Вычитал какую-то ерунду и тут же айда применять. Вот за это ты сам себя по пальцам можешь настучать.
Snusmumriken
Точно так же как в хардкоре на луашке, точно так же как в хардкоре на жаваскрипте, точно так же как в хардкоре на го.
Snusmumriken
Меня просто иногда вымораживает зашоренность некоторых людей, просто жесть, как же страшно жить наверное.
Snusmumriken
Вбиваем в голову одну мысль, и бездоказательно её применяем. И никогда не меняем своих решений какие бы дополнительные данные не были собраны.
Re
> Но в соло, это неоправданный хардкор c++ делаешь сложным ты сам, создавая 30 уровней наследования, шаблонная магия с параметр-паками и лямбдами, какие-то комплексные рекурсивные вычисления в compiletime и полностью корректная обработка исключений везде и вся - одни из примеров того, как загнать себя в кроличью нору. Без этого всего можно жить. Ну или применять вещи выше умеренно и без фанатизма
Я же привел выше пример. Просто по времени пока это собирается я уже попадаю в минус. Второй минус начнется когда мне нужны будут шаблоны. Потому что без дженериков слишком тяжело построить внятную архитектуру. Можно конечно, но это будет тем еще костылем. Дальше у нас будет попытка создать свои аллокаторы или взять существующие и внедрить. не сложно, но багов 5-10 стабильно словишь. Зачем свои аллокаторы? Да потому что арены наше все. Ах STL наш STL .. Ах внедрение зависимостей от JSON до IMGUI. Ах все это cmake / bazel. Блин надо еще парочку компиляторов поддерживать. Все таки хочется что бы под маком и андройдом завелось нормально. В общем смотрим на Solar /Love/Godot. на ранних стадиях, вот оно. Даже можно скачать собрать....Посмотреть. В итоге да. Придется внедрить что то типо Lua. Ну потому что манал я писать бизнес логику на проекте который собирается 30 мин, да и на плюсах. Все что я написал делает C# / Go из коробки или 90%. Ну да..плюсы они же такие ламповые. Такие как и все кекес.
Snusmumriken
"По времени пока собирается". Парень. Пока ты не генеришь миллиарды шаблонов из шаблонов из шаблонов, проекты будут собираться копеечное время. SDL с динамической линковкой собирается около трёх секунд. СЕКУНД, карл.
Re
В релизе?
Snusmumriken
1. Ты каждый раз собираешь релиз? И в го тоже каждый раз собираешь релиз? 2. С интеграционной компиляцией — и в релизе.
Re
в го только релиз и есть.
Snusmumriken
Дебаг и релиз в плюсах различаются только флагами компилятора. Хочешь — собирай только релиз.
Snusmumriken
в го только релиз и есть.
И да, это говорит не в его пользу.
Snusmumriken
И нет, у го тоже есть дебажный пакет с интроспекцией, который отключается при релизе https://pkg.go.dev/runtime/debug
Re
ну эт же ложь.они отличаются все от рантайма до всего. единственное исключение это когда твои либы собраны в релизе, в виде динамики. а твой проект собран в дебаге. но даже тут есть нюансы и места где ты можешь обосраться.
Re
их как минимум 4 типа.Ничем угу ага
UtoECat
Я же привел выше пример. Просто по времени пока это собирается я уже попадаю в минус. Второй минус начнется когда мне нужны будут шаблоны. Потому что без дженериков слишком тяжело построить внятную архитектуру. Можно конечно, но это будет тем еще костылем. Дальше у нас будет попытка создать свои аллокаторы или взять существующие и внедрить. не сложно, но багов 5-10 стабильно словишь. Зачем свои аллокаторы? Да потому что арены наше все. Ах STL наш STL .. Ах внедрение зависимостей от JSON до IMGUI. Ах все это cmake / bazel. Блин надо еще парочку компиляторов поддерживать. Все таки хочется что бы под маком и андройдом завелось нормально. В общем смотрим на Solar /Love/Godot. на ранних стадиях, вот оно. Даже можно скачать собрать....Посмотреть. В итоге да. Придется внедрить что то типо Lua. Ну потому что манал я писать бизнес логику на проекте который собирается 30 мин, да и на плюсах. Все что я написал делает C# / Go из коробки или 90%. Ну да..плюсы они же такие ламповые. Такие как и все кекес.
> Просто по времени пока это собирается я уже попадаю в минус на любом языке большие проекты будут собираться долго, но это ыполне себе оптимизируется. Например минимизируя количество включаемых хидеров, и максимальным вынесом из хидеров всего ненужного в cpp файл, вплоть до такого : namespace impl { struct MyStorage; }; class MyStorage { impl::MyStorage* x; public: MyStorage(); ~MyStorage(); MyStorage(MyStorage&&); void set(std::string_view, std::string_view); std::string_view get(std::string_view); }
Re
а в го дебажный пакет, для дебага. а сам бинарник всегда релиз
Snusmumriken
их как минимум 4 типа.Ничем угу ага
Блин, ты как будто рассуждаешь о том чего не понимаешь. Я уже сам не понимаю, что ты пытаешься доказать? Что "плюсы это хардкор"? Нет, не доказал.
Re
можешь убрать из релизного приложения дебаг инфу, если хочется уменьшить место.ну и все.
Re
я не пытаюсь доказать, я это знаю. сложнее языка из большой 10ки просто нет.
Snusmumriken
.. И плюсовое отличие между дебагом и релизом ВНЕЗАПНО точно такое же.
Re
нет
Snusmumriken
я не пытаюсь доказать, я это знаю. сложнее языка из большой 10ки просто нет.
Кто тебе мешает использовать только релиз в плюсах?
Re
мне нужно дебажить внезапно. сегфолты, память и прочие вещи. которые будут
Re
боже нет идеального приложения на плюсах.
Snusmumriken
Ты как будто зашёл в два магазина: "В этом магазине печеньки только с изюмом, а в том магазине печеньки с изюмом, арахисом и ванильные, пойду в магазин с изюмом потому что там изюм"
Re
все что написано на плюсах имеет баги. абсолютно все.
Snusmumriken
боже нет идеального приложения на плюсах.
Вот сейчас ты несёшь просто максимально абсурдную дичь.
Snusmumriken
Идеальных приложений не существует. Идеального железа не существует. Идеалов в принципе не существует, кроме абстрактных концепций. Вопрос только в том, вписываемся мы в требования, или нет.
Snusmumriken
Баги есть ВЕЗДЕ. Даже в железке за которой ты сидишь, хардварные баги. Живи с этим. Или иди изобретай "свой цпу без багов".
Snusmumriken
В следующий раз, прежде чем выдавать очередное абсолютистское заявление, включи немножко мозги.
Re
Конечно нет. Но разница в сложности есть везде. И С++ всегда считался и будет считаться самым сложным и от твоего мнения ничего не изменится. Я повторю ты можешь считать что плюсы легкие, я считаю что они сложные, но имеют свое место. Многие считаю что плюсы неоправданно сложные. И все кто может, пытаются уйти от плюсов. Если ты можешь уйти от плюсов уходи.
Re
Такая тенденция, не я это придумал.
Snusmumriken
СЧИТАЕТСЯ не значит что МОЖНО ПИСАТЬ ПРОСТО. Ты это понимаешь?
Re
Зачем делать то. что не имеет смысла и обоснования? Ну это же тупость.
UtoECat
Я же привел выше пример. Просто по времени пока это собирается я уже попадаю в минус. Второй минус начнется когда мне нужны будут шаблоны. Потому что без дженериков слишком тяжело построить внятную архитектуру. Можно конечно, но это будет тем еще костылем. Дальше у нас будет попытка создать свои аллокаторы или взять существующие и внедрить. не сложно, но багов 5-10 стабильно словишь. Зачем свои аллокаторы? Да потому что арены наше все. Ах STL наш STL .. Ах внедрение зависимостей от JSON до IMGUI. Ах все это cmake / bazel. Блин надо еще парочку компиляторов поддерживать. Все таки хочется что бы под маком и андройдом завелось нормально. В общем смотрим на Solar /Love/Godot. на ранних стадиях, вот оно. Даже можно скачать собрать....Посмотреть. В итоге да. Придется внедрить что то типо Lua. Ну потому что манал я писать бизнес логику на проекте который собирается 30 мин, да и на плюсах. Все что я написал делает C# / Go из коробки или 90%. Ну да..плюсы они же такие ламповые. Такие как и все кекес.
> Зачем свои аллокаторы? Да потому что арены наше все. Ах STL наш STL .. Есть pmr::monotonic_buffer_resource, так что не всё так ужасно в этом плане в STL. > Ах внедрение зависимостей от JSON до IMGUI. А что не так с imgui? Спокойно закинул файлы и impl и всё работает.
Snusmumriken
Зачем делать то. что не имеет смысла и обоснования? Ну это же тупость.
Фотошоп — дичайше сложное приложение. Неимоверно сложное. Сейчас пол жизни уйдёт чтобы его освоить в полной мере. Но блондинки успешно корректируют на них фотачки, не осваивая и 99.9999% функционала. И чо, теперь не пользоваться фотошопом? Потому что "он сложный"?
Snusmumriken
Хардкорный фотошоп, даааа. Лучше в пейнте буду попиксельно ретушировать, он простой.
Re
Не ну даже пример мемный. Давайте использовать все что можем, потому что это не лучше. Зачем использовать что то лучше, когда есть хуже. Так? Ну я же сказал. Для меня написать что либо на го будет быстрее минимум на 20-30%.
Snusmumriken
Ты вообще понимаешь насколько абсурдную дичь ты заливаешь?
Re
Если ты можешь писать так же быстро на С++ как на ГО. Думаю ты гений.
Re
Без шуток.
UtoECat
мне нужно дебажить внезапно. сегфолты, память и прочие вещи. которые будут
-fsanitize=undefined -fsanitize=address если однопоток, иначе valgrind Ну или дебаггер, в котором можно спокойно принтануть стек после сегфолта со строками и файлами кода (и даже посмотреть содержимое переменных и повызывать функции)
Snusmumriken
Если ты можешь писать так же быстро на С++ как на ГО. Думаю ты гений.
Ты не пробовал его освоить, но выводы уже сделал. Давай я процитирую одного дядю, по имени Артемий Лебедев: "Есть только один интуитивно-понятный интерфейс — мамина титька. Всему остальному надо учиться". Ты просто не захотел выделить 2-3 недели (если уже на чём-то умеешь) чтобы научиться делать то же самое что и в других яп, и фигачить с той же скоростью.
Re
Это сам по себе абсурд.
Snusmumriken
"Никто не умеет" — что не умеет?
Re
В плюсы. Всегда будет нюанс.
Re
Я тебе скажу так. некоторые вещи из спеки понять не могу, потому что забыл выш мат.
Snusmumriken
В таком случае, никто не умеет ни во что. Вот я 12 лет пишу на луашке. Но я не знаю ВСЕХ возможных случаев, вот недавно открыл для себя куски дебажной либы.
Re
и не хочу вникать в теоремы некоторые, что бы понять как это работает.
Snusmumriken
Ну у меня 2 приложения в проде. Но да не умею и скажу по секрету никто не умеет. Не знаю не один мой приятель на С++ не скажет. Я умею в плюсы.
Буквально единственное что ты сказал этими словами — "НИКТО не умеет ВО ВСЁ". Иначе давай мне знание всех либ на го. Вообще всех. Наизусть. Или давай мне знание всех либ на луашке. Тоже вообще всех. Включая мои невыложенные. Наизусть.
Snusmumriken
Ограниченность знаний присутствует всегда. Ты никогда не можешь всё учесть.
Snusmumriken
Ты физически не способен написать идеальное приложение кроме printf("Hello World");, и то, даже оно может упасть по внешним причинам, которые ты не учёл и не сможешь учесть.
Snusmumriken
И когда ты начнёшь это ДЕЙСТВИТЕЛЬНО понимать, и учитывать — тогда ты наконец приблизишься к программированию а не к церебральной мастурбации которую от тебя пока было слышно.
Snusmumriken
и не хочу вникать в теоремы некоторые, что бы понять как это работает.
Вкратце, пачка маленьких советов на будущее: 1. Авторитет — ничего не значит пока ты не видишь конкретных доказательств этого авторитета. 2. Идеалов не существует. 3. Учиться нужно всему. Вообще всему. 4. Базовые универсальные знания, при разнородной деятельности > специфичные знания. 5. Все ЯП одинаковые, но немного разные. 6. Программирование — это решение задачи. Всё остальное вторично. 7. Оптимизация не нужна. Кроме тех случаев когда действительно нужна. 8. Баги это нормально. Их много. Они везде. Ты можешь только минимизировать их количество со своей стороны, и учитывать с чужой стороны. 9. Даже в "сложной" среде можно писать простые вещи. А из простых вещей можно делать сложные, но не нужно. Прикол.
Re
Ну на го же могу...
Re
ну или на шарпах
Snusmumriken
Блин, ты знаком с самой концепцией статических типов, и можешь тут. Почему не можешь на плюсах?
Re
потому что я не могу предсказать сложную мув семантику и много мелочей связанных с классами
Re
конечно RAII тоже можно выкинуть.Но тогда ты уже будешь писать на С и будет не проще.
Snusmumriken
Какую мув-семантику? Какие мелочи связанные с классами? Тебе конструктора (такого же как везде), деструктора (такого же как везде), наследования (такого же как везде) и публичных методов мало?
Re
мне вообще не нужно наследование в моем приложение. такие дела.
Snusmumriken
Хорошо.
Snusmumriken
Тебе конструктора (такого же как везде), деструктора (такого же как везде), и публичных методов (таких же как везде) мало?
Snusmumriken
Почему ты заставляешь меня писать это?
Snusmumriken
Когда я был маленький, анекдот Жена отправляет мужа-программиста в магазин: - Купи батон хлеба, если будут яйца - возьми десяток. Муж возвращается из магазина с десятью батонами. - Ты зачем столько хлеба купил? - Так ведь яйца были... Казался мне смешным. После тебя, уже не смешно.
UtoECat
конечно RAII тоже можно выкинуть.Но тогда ты уже будешь писать на С и будет не проще.
RAII сущетствует из-за эксепшенов в основном. + Ты сам заикнулся про арены, с которыми ничего освобождать не надо. (почти)
Re
но мне нужны шаблоны. RAII которое может выкинуть фокусы. Можем открыть спеку конечно и начать серьезные детали рассасывать. Но мне честно лень. Деструктора мне не хватит, точнее я могу налажать с ними. Шаблоны я могу налажить с ними. Потому что не знаю ряда вещей. От шаблонов я отказаться не могу.Потому что для моей системы они нужны. И для либ которые я использую нужны.Вообще там много мелочей
Snusmumriken
Ты в го лажаешь с деструкторами?