@habrachat

Страница 5891 из 6731
Alexander
01.04.2018
05:56:17
Все вредно, в тои или иной степени

)

Мне здоровье позволяет

Google
VEG
01.04.2018
05:57:14
Да, хардкорный асм очень вреден для твоего здоровья, это я тебе как практик скажу.

Тупо забываешь поесть когда увлекаешься.

Вообще над (очень) интересными тебе проектами вредно заниматься.

=)

Так что ладно, кури, если нравится =)

Alexander
01.04.2018
05:58:22
Я, в отличие от нескольких друзей "некурильщиков", в поликлинике последний раз был лет семь назад

Ну, не будем об этом

Сойдемся на том, что это личное дело каждого

Ура, 9!

Я пошел до магаза)

Alexander
01.04.2018
06:02:33
Я специально не хочу в том коде обрабатывать каких-то исключительных ситуаций. К примеру в моём случае ОС 100% выдаст мне запрашиваемую память и я в этом уверен

VEG
01.04.2018
06:05:26
Не совсем корректное сравнение, функционал у printf и cout сильно разный, например.

Google
VEG
01.04.2018
06:06:55
Идея в том, что ты можешь написать код с ООП и без — и если функциональность этого кода будет одинаковой (не только видимая снаружи, но и внутри используемых библиотек) — то производительность будет той же.

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

Строки сишные (asciiz) не хранят свой размер. strlen очень медленный. Можно сильно быстрее.

Alexander
01.04.2018
06:10:40
Не совсем корректное сравнение, функционал у printf и cout сильно разный, например.
Разный, да. Но я же хочу грубо говоря просто стандартными средствами языка всё сделать. Ведь те кто пользуются ЯП они будут именно так писать.

VEG
01.04.2018
06:11:03
Ну в мире сиплюсплюс всё не так.

Alexander
01.04.2018
06:11:14
Даже при равной цене алгоритма один может быть быстрее другого из-за временной константы

VEG
01.04.2018
06:11:19
Посмотри сколько есть разных фреймворков, которые не опираются на стандартную библиотеку.

Qt одно чего стоит.

MFC и прочие древности вообще молчу.

Всегда можно переписать всё как нравится если что-то не нравится =)

Alexander
01.04.2018
06:12:15
А не про библиотеки и фреймворки

VEG
01.04.2018
06:12:58
Мы говорили про накладные расходы от ООП =)

изначально

VEG
01.04.2018
06:13:22
Ну так без ООП код быстрее. Это факт. Другое дело, что код будет сложно читаем. А рекламируешь ты хорошо. Гляну

Вот с этого сообщения началось.

И в плюсах просто ООП, если писать ровно тот же код что и на сишечке со структурками, только в другом синтаксисе — будет практически бесплатным (или разница будет в пределах погрешности).

Google
Alexander
01.04.2018
06:14:15
И я говорил, и еще раз повторю. Они нивелируются с ростом программы.

ООП "просто так" нахер не нужен, есть другие парадигмы, более удобные для небольших приложений

Greck2908
01.04.2018
06:15:17
/hp

quiz
01.04.2018
06:15:17
/hp
Greck2908 Greck2908: 291 hp

VEG
01.04.2018
06:15:47
Ну в нормальном ООП код просто порой читать приятнее и понятнее.

Только в плюсах тут не доработано, увы.

Alexander
01.04.2018
06:16:08
Но если ты строишь что-то крупное, то ни линейкой, ни функционалкой ты не обойдешься

VEG
01.04.2018
06:16:11
unified call syntax так и не завезли

Модулей до сих пор нет и есть риск что их не завезут до 2023 года — это вообще потеря =(

Alexander
01.04.2018
06:16:40
Тебе придется все проектировать объектами и на основе этого писать

Только в плюсах тут не доработано, увы.
Я на плюсы, как-то, положил

Сейчас на раст делаю ставку

VEG
01.04.2018
06:18:39
На расте работы нет совсем пока что.

На го есть, но го недостаточно низкоуровневый =)

Сборка мусора, все дела.

Alexander
01.04.2018
06:19:07
На расте работы нет совсем пока что.
По этому и сказал, что "делаю ставку"

Ава
01.04.2018
06:19:15
Доброе утро, @MirBrat! В чем специализируешься в сфере I.T.? Какие ожидания от чата? Ты можешь либо ответить, либо подписаться на канал @habrapub

Alexander
01.04.2018
06:19:16
Просто, он мне нравится

VEG
01.04.2018
06:20:02
Из того что я видел — мне тоже многое понравилось =)

Alexander
01.04.2018
06:20:09
Сборка мусора, все дела.
На расте сборка мусора не требуется

Google
Alexander
01.04.2018
06:20:59
Он мусора не оставляет, и не позволяет кодеру делать так, что бы он оставался

VEG
01.04.2018
06:22:07
fn is_divisible_by(lhs: u32, rhs: u32) -> bool { //... } А можно ли сразу результату имя присвоить? Типа "-> result: bool {"

Кажется это могло бы быть приятной фичей =)

Я когда увидел этот синтаксис объявления функции, сразу подумал что круто было бы круто иметь возможность сразу создавать и переменные для результата =)

VEG
01.04.2018
06:22:48
Иногда удобно.

И компилеру проще оптимизировать было бы

Alexander
01.04.2018
06:23:26
Не забывай, Rust - это язык выражений)

VEG
01.04.2018
06:24:21
Чтобы сразу конструировать результат там где он будет храниться после выхода из функции (если это какая-то сложная структурка, например).

Alexander
01.04.2018
06:24:24
Из функции он просто возвращает результат последнего выражения, куда уж красивее и проще)

VEG
01.04.2018
06:25:37
Это да, но это могло бы быть просто сахарком к объявлению result: bool первой строкой и на выходе из всех веток автоматическому подставлению result без точки с запятой.

Alexander
01.04.2018
06:25:43
Зачем тебе лишняя переменная в памяти?

Которая, РЕАЛЬНО, лишняя

VEG
01.04.2018
06:26:16
Иногда результат формируется долго, для его формирования заводят переменную, а потом уже её возвращают, когда результат готов.

Вот возможность задать имя этой переменной заранее, в объявлении функции — было бы круто, тем более что текущий синтаксис объявления функций это позволяет сделать без неоднозначностей.

Если этого нет, надо подучить раст получше и написать пропозал =)

Alexander
01.04.2018
06:27:11
VEG
01.04.2018
06:27:48
Да, но тут оптимизатору приходится быть очень смышлёным, чтобы конструировать результат сразу там где он будет храниться по окончанию выполнения функции.

Google
VEG
01.04.2018
06:28:34
А если мы сразу укажем компилятору, что вот эта вот переменная — результат, компилер сможет сразу это оптимизировать, и формировать результат сразу на стеке вызывающей функции.

Alexander
01.04.2018
06:29:26
Если функция делает что-то, кроме своей непосредственной задачи, то это плохая функция

VEG
01.04.2018
06:29:55
То есть в машинном коде в функцию будет передан некий указатель в edi, куда нужно поместить результат — и код сразу будет обращаться в edi при каждом обращении к переменной по имени result, так как заранее известно, что это именно то что вернёт эта функция, а не что-то другое.

Alexander
01.04.2018
06:30:09
Если функция занимает больше, скажем, двадцати строк, то это плохая функция

Функция - как мистер Мисикс

VEG
01.04.2018
06:30:40
Глупое ограничение =) Для простого кода конечно оно годится, но не весь код может быть таким же простым.

Но не в этом суть.

Alexander
01.04.2018
06:30:56
Она должна быстро выполнить задачу и умереть

VEG
01.04.2018
06:31:04
Вот у тебя код поиска минимального значения в массиве — и ему уже нужна переменная для хранения текущего результата в процессе поиска значения.

Alexander
01.04.2018
06:31:08
Как можно быстрее

VEG
01.04.2018
06:31:23
Она и выполнит задачу, и умрёт, но результат сразу окажется там где ожидает родительская функция.

quiz
01.04.2018
06:31:27
И?
-39 hp (Alexanderes Teterevlyov)

VEG
01.04.2018
06:31:36
Без временных переменных.

Пример не оч, но суть в том, что во время выполнения функции результат меняется.

Alexander
01.04.2018
06:32:04
Без временных переменных.
Да что значит "без временных"

VEG
01.04.2018
06:32:08
Пока идёт поиск подходящего.

Alexander
01.04.2018
06:32:12
Все переменные временные

Постоянные только константы

Функция отработала и ушла из стека вместе со всеми своими переменными

VEG
01.04.2018
06:33:17
std::string get_some_result() { std::string result; // some complicated logic return result; } std::string val = get_some_result();

Страница 5891 из 6731