Igor
Это тоже можно записать в разное поведение?)
Snusmumriken
Ты как будто удивлён что сишка и плюсы это разные языки.
Hello, World! 🎄
А почему 2 языка программирования должны быть равны?
Hello, World! 🎄
Snusmumriken
У меня такое ощущение, что Ви сидит в режиме энергосбережения.
Igor
А ещё смотри какая весёлая штука, ты можешь полностью C++ класс описать на Си. Безо всяких проблем. Но получится слишком длинно)
Hello, World! 🎄
Snusmumriken
Из серии, мы тут думаем, метаем бисер направо-налево, делимся вселенской мудростью, а нас слушают в пол уха и такие "да-да".
Snusmumriken
Ви, тебе внимания не хватает? Или дефицит?
Re
вы контекст держите хуже чем чат гпт.
"ну и почему код на C ведет себя иначе в плюсах."
"Это какой такой код на C ведёт себя иначе в плюсах?"
Ну и?Я не понимаю. Я не понимаю. Но мне и все равно.
Re
Внимания? наверное да. Хз. Тебе виднее)
Hello, World! 🎄
Igor
Igor
Ты сравниваешь конкретно сейчас жопу с пальцем
Re
Вы же мне отвечаете значит мы в равных условиях. Значит можешь по себе посудить
Hello, World! 🎄
Втроём тут пишем с помощью продвинутой ИИ модели ответы тебе
Re
нет это не жопа с пальцем.
потому что в одном случае у меня будет деструктор вызван из либы.
в в другом нет
Snusmumriken
Re
И это детская ошибка которая часто чекается каким нибудь PVS-studio
Hello, World! 🎄
Re
Что из за экстерна си. там чел забывает сделать вещи.
Re
вот ты еще одно различие нашел.
Igor
Если человек забывает прописать этот блок, то это уже его проблемы и такой код до линковки не дойдёт)
Igor
Тебе компилятор скажет, что нет такого символа
Re
и таких много. вероятно некоторые инклюды ты без такого экстерна и не вызовешь
Hello, World! 🎄
Hello, World! 🎄
Re
потому что код на С и поведение С в С++ не гарантированно. В ряде моментов. Стандартом.
Snusmumriken
Re
Я устал правда. пишите на С++.
Hello, World! 🎄
Snusmumriken
Я устал правда. пишите на С++.
В луашке вообще есть поведение, зависящее от интерпретатора.
На разных реализациях луашки, обход элементов одной и той же хешмапы будет в разном порядке. Офигеть, да?
В го тоже полно таких моментов.
Hello, World! 🎄
Выкинете этот Си и С++ и пишите на другом языке
Hello, World! 🎄
Если что-то не нравится
Hello, World! 🎄
Igor
Именно поэтому знающие люди сейчас считают, что ты троллишь)
Snusmumriken
Ага, оно
Hello, World! 🎄
Сергей
он меня впервые привел в про.луа :D
Snusmumriken
Я вот время от времени сижу в чатиках, и в голове прокручивается вот этот видосик (он мегахорош)
https://youtu.be/e6h-YB70p3o
Hello, World! 🎄
Короче тратьте дальше свое время на споры, я пошел отдыхать
Сергей
Hello, World! 🎄
Сергей
а скоро?
Hello, World! 🎄
Да, на этой неделе
Hello, World! 🎄
Я потом могу написать суда как и что
Сергей
давай
UtoECat
Snusmumriken
Щяс вспомню про int v = i++ + ++i;
Igor
Igor
Если ты начал писать проект на C++, то очевидно он будет затачиваться под фишки C++, не C. Это не один и тот же язык и C++ уже давно перестал быть просто "расширением" для Сишки.
Snusmumriken
Ну я сделал концептуальное заявление, что (если воспользоваться сетом фундаментального функционала) и написать приложение на одном яп, его можно без проблем и даже примерно так же переписать на практически любой другой яп с минимальными изменениями.
И на плюсах можно писать в целом так же как на го, со сборкой мусора и прочей ерундой. И в целом, плюсы покрывают практически весь функционал го примерно в той же форме.
Igor
И если, так уж вышло, тебе нужны фишки C в C++, какой-нибудь там SDL подключить, допустим, тебе никто не помешает. Код на C++ и C может спокойно сосуществовать в пределах одного приложения, НО если ты соблюдаешь определенные структурные правила.
Igor
И очевидно, что правила эти необходимы, так как C++ более продвинутый язык в сравнении с чистым C.
Сергей
И если, так уж вышло, тебе нужны фишки C в C++, какой-нибудь там SDL подключить, допустим, тебе никто не помешает. Код на C++ и C может спокойно сосуществовать в пределах одного приложения, НО если ты соблюдаешь определенные структурные правила.
Больше скажу, если в твоём языке нельзя подключать Сишные библиотеки, то это очень пагубно может на него повлиять, ибо переписывать многотонную кодовую базу сишных либ на твой язык мало кто захочет. Ну только если ты не многомиллиардная корпорация, стоящая за ним, да и то не факт
Snusmumriken
Благо сишка всё ещё база для системщины/железок/хайлоада/утилити.
Igor
А вот эти заявления, что код работает иначе, это всё равно что возмущаться, что
void SomeClass::some_threaded_function() {
std::unique_lock lock(m_mutex);
// ...
if (errcode == 1337) {
printf("Omg error!!!!\n");
return;
}
if (!megaFunction()) {
return;
}
afterMegaFunctionSucceeded();
}
и ВИЗУАЛЬНО аналогичный на C:
void SomeClass__some_threaded_function(SomeClass* this) {
this->m_mutex->lock();
// ...
if (errcode == 1337) {
printf("Omg error!!!!\n");
return;
}
if (!megaFunction()) {
return;
}
afterMegaFunctionSucceeded();
}
вызовет у тебя дедлок потому что в C нет скоуп-локов и ты перед каждым return не разлочивал мьютекс
Igor
Если программист считает подобные вещи "не одинаковым поведением", то ну бля, он КЭП. Видно это всё невооружённым взглядом и это вполне себе очевидные кейсы.
Snusmumriken
Да можно банально вспомнить отсутствие в плюсах неявного int'а, от чего тот может не прожевать валидный сишный код даже с extern(C).
Igor
И кстати да, основной твой тейк был "С код на С++ работает иначе" и ты привёл в пример деструкторы... А? Ну во-первых, как уже было озвучено, в C отсутствуют деструкторы как таковые. А это значит, что код уже был написан без подразумевания существования деструкторов. Соответственно и работать он будет ТОЧНО ТАК ЖЕ на крестах, как и на чистой сишке. Просто программист выполнил ручками ту работу, которую за него бы сделал ЯП, если бы использовались фишки более продвинутого языка.
Сергей
Igor
я уже можно сказать коллекционирую "валидный сишный код, который не компилится в плюсах" и, скажу, его много
Вот кстати да, тот, который НЕ КОМПИЛИТСЯ, да, найти очень легко. (Прикол именно в синтаксической разности между языками, на то они и разные. Если в названиях обоих языков есть букова C, это ещё не значит, что они одинаковые. Никто ж не пытается C# код завести на C++, удивляясь, почему не выходит.)
А вот тот сишный код, который СКОМПИЛИЛСЯ, но РАБОТАЕТ ИНАЧЕ в крестах... Удивите меня примерами, я бы на них посмотрел.
Сергей
Таких я не встречал)
Snusmumriken
А вот тут как правило проблем нет, это очень долго отлаживали в плюсовых компиляторах, чтобы можно было инклюдить величайший запас сишных либ. А если вдруг что-то не собиралось плюсами — как правило изменяли именно сишные либы для совместимости. Внезапно.
Сергей
Snusmumriken
И то, это в основном для того чтобы воспользоваться плюсовыми фишечками, плюсовым аллокатором, кусочком плюсового std или ещё чем. Обычно не нужно.
Hello, World! 🎄
Какую NoSQL базу данных использовали?
Я хочу онлайн приложение сделать и нужно выбрать между MongoDB и Redis.
Hello, World! 🎄
Возможно по собственному опыту подскажите, что лучше взять.
Hello, World! 🎄
До этого sqlite использовал, но насколько я понимаю с многопользовательским доступом там не всё гладко.
Сергей
Сергей
при больших данных она не подходит
Hello, World! 🎄
Вот я думаю, что MongoDB подойдет
Hello, World! 🎄
Или всё же лучше смотреть в сторону бд с SQL-запросами?
Для простых бд, где есть пользователи и практически без связей (просто когда нужно list'ы сохранить) думаю, что noSQL лучше будет.