LINUX.ORG.RU

Ответ на: комментарий от k_andy

так это... чем младше человек, тем для него быстрее время идет. я даже ОС за это время дома не переставлял. если для тебя важны технологии однодневки... инстаграмчик там... новый тик-ток... то ты теряешь перспективу. понимаешь, я-то еще помню те времена, когда сюда приходили люди похвастаться, как линукс у них работает _быстрее_ виндовса. вот ведь что незаметно потерялось. видя только один день, ты теряешь общий тренд развития. тот же rust, если он будет внедрен, какой даст результат через «вечность»?

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

я-то еще помню те времена, когда сюда приходили люди похвастаться, как линукс у них работает быстрее виндовса.

У меня до сих пор так.

meliafaro ★★★★★
()
Последнее исправление: meliafaro (всего исправлений: 1)
Ответ на: комментарий от crypt

так это… чем младше человек, тем для него быстрее время идет.

Вообще-то, с точностью до наоборот.

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

я-то еще помню те времена, когда сюда приходили люди похвастаться, как линукс у них работает быстрее виндовса.

Это разве не так? Линукс суперреактивный по сравнению с Windows 10 во всех отношениях. Проводник у Windows тормозной, запуск процессов медленный (сборка C/C++ проектов происходит медленнее), файловая система довольно медленная, а после Windows Defender вообще значки в Проводнике по одной в полсекунды показываются. Отзывчивость ядра NT тоже хуже.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от crypt

технологии однодневки… инстаграмчик там…

В след. году будет 10 лет моему профилю в Инсте. Однодневность какая-то с душком уже прямо.

от же rust, если он будет внедрен, какой даст результат через «вечность»?

Вопрос о внедрении Раста можно было обсуждать в 2017 году, примерно. Сейчас уже обсуждать нечего - он уже везде. От утилит типа rg до облаков (aws lambda rust-runtime). Результат он даст ровно такой же, как дал ассемблер после машкодов, и сишка после ассемблера - пишем быстрее и надежнее более сложный софт.

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

В след. году будет 10 лет моему профилю в Инсте. Однодневность какая-то с душком уже прямо.

так вот почему на меня люди странно смотрят с моим вк!) как время летит!)

Сейчас уже обсуждать нечего - он уже везде.

до меня еще не дошел. ни на сервере, ни на десктопе.=)

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

да все ок. я тем же самым уже два часа занимаюь:(

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

Это разве не так?

Это так. При чём, раньше я считал, что это всё сугубо субъективные ощущения, а оно не так.

https://www.phoronix.com/scan.php?page=article&item=windows10-ubuntu21-tr3990x&num=1

И это убунта, которая даже не стремится к званию самого быстрого дистрибутива.

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

Можно два-три примера, где panic в стандартной библиотеке?

Я могу привести 25 тысяч примеров, где panic в стандартной библиотеке. Примерно столько assert-ов в ней.

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

Используй не паникующие функции

А это возможно? Что там от стандартной либы-то остается?

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

Крипт перешёл на фряху и теперь активно хейтит линукс, просто проходите мимо

Справедливости ради, фряха — это одна из немногих современных осей, которая сможет сравниться с линем по поддержке современных интерфейсов асинхронного ввода-вывода, разделяемой памяти, синхронизации. Читай «имеет более адекватные интерфейсы взамен POSIX». Так что почему бы и нет.

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

Где его еще нет, то там он будет, может позже, но это неизбежно как бы кому не хотелось обратного. Неважно, что для сборки rustc нужен g++ или clang++ - rust придет, тем-более когда сейчас в тренде переписывать все из-за лиценции, а не функциональности. Есть что-то под GPL, но не такое большое, как Linux? - перепишут на rust под mit. Ну, и даже по ЛОРу видно, как многие радуются Фуксии под пермиссивной лицензией.

Difrex ★★★★
()
Последнее исправление: Difrex (всего исправлений: 1)
Ответ на: комментарий от fernandos

Крипт перешёл на фряху и теперь активно хейтит линукс, просто проходите мимо.

нет подожди! я сначала начал хейтить systemd, а потом попытался (до сих пор в процессе) перехода на фряху. не ставь телегу вперед лошади!

saahriktu дело в том, что я не верю, в коммьюнити дистры типа арча и gentoo. для использования на работе они слишком глючные. а корпоративных альтернатив редхату без systemd особо нет. solaris для узкого применения и freebsd для еще более узкого применения, а скорее just for fun.

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

и что он из себя представляет? компилятор со стандартной библиотекой или jit с виртуальной машиной и байткодом?

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

Так там panic на panic и стандартная библиотека (в которой тоже полно panic). Не взлетит (очень надеюсь).

Я отвечал на это. Тред до конца не читал.

То что я привел это не UB, а трудно устранимая ошибка, которую в пользовательском коде проще реализовать через panic (как минимум так было обоснованно при реализации стандартной библиотеке). UB было бы в выражениях вида: xs[100500]. При этом какую-то часть panic можно перехватить. НО!!! Для надёжного кода нужно убирать всё, что может вызвать панику. И желательно (и даже нужно) не дать возможности программистам написать паникующий код.

Ты меня знаешь чем озадачил: а есть ли вообще такой язык, в котором нет ни паники, ни упущенных исключений, ни UB? Я сходу такой не вспомню. Разве может быть что-то функциональное, вроде Haskell.

Для надёжного кода нужен адекватный программист. А отказаться от паники полностью - не выйдет.

ИТОГ: Если для сервиса panic при переполнении буфера - это нормально (и даже обоснованно), то для кода управляющего сервисами это не допустимо. В предложенном же коде есть куча panic и expected. Так что такое должно быть в пролёте.

Скорее нежелательно. Так то допустимо, даже уровень выше (ядро) умеет паниковать, и далеко не только линукс. Единственное но - ситуация должна быть действительно безвыходной.

anonymous-angler ★☆
()
Ответ на: комментарий от grem

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

crypt ★★★★★
()

Вот это будет гремучая смесь! Когда критическая проблема в systemd будет исправляться только при наличии самого свежего, может, даже ещё нерелизнутого rustc да ещё и с какой-нибудь nightly-фичей.

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

профессиональных разработчиков

В то же время автор патча:

Note that this is the first time I’ve written Rust - so it’s most likely horrible and completely wrong. Learning was the main idea of the exercise :-)

О_о

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

Я не пью. Не, если там норм всё, в чём сам автор патчей не уверен (он сразу предупреждает, что только начал учить rust), то почему бы и нет? Я systemd всё равно не использую.

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

Более того, даже если тебе удастся выкорчевать панику из Rust, то ничто и никого не остановит от написания abort() или loop {}. Тут похоже нет никаких вариантов, кроме code review.

anonymous-angler ★☆
()
Ответ на: комментарий от grem

а, я думал, тебе уже есть 18. ну, чипсы, так чипсы... надо же с чего-то начинать портить печень.

Не, если там норм всё

вот об этом, я думаю, никто не узнает, пока первые релизы не посыпятся с ошибками)

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

Обычно статически компилируется, как и в Go, т.е. переносимость отличная - на любом дистрибутиве с linux 2.6+ работает.

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

Что в этом непрофессионального? Проффесоналы уже знают настолько много что им изучать какие-то языки по 5 лет не нужно. Ты их уже все видел

vertexua ★★★★★
()
Ответ на: комментарий от anonymous-angler

Разве может быть что-то функциональное, вроде Haskell.

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

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

Библиотека Rust статически и вообще любые крейты. Но есть зависимость на libc тоже. Если Glibc - динамически. Если Musl - можно достичь полной статики.

Ещё иногда динамически идёт OpenSSL

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от Difrex

забавно. это надо было не с системных, а с юзерских утилит начинать внедрять. чтобы всякие gimp и krita ставились без флетпаков.

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

Мне давно уже не 18, поэтому я УЖЕ не пью. На самом деле печень тяжело посадить, если не злоупотреблять, конечно. Она очень хорошо регенерируется.

вот об этом, я думаю, никто не узнает, пока первые релизы не посыпятся с ошибками)

Более опытные начали предлагать исправления.

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

Ну, вот Go пошел примерно по такому пути. Вполне занял свою нишу и не идет ни в какую системщину(и никогда не претендовал) - прекрасно чувствует себя в сетевых сервисах.

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

На самом деле печень тяжело посадить

очень легко, только, как и со всем прочим, нужно уметь. могу научить.

Мне давно уже не 18, поэтому я УЖЕ не пью.

угу. но еще не так много, чтобы начинать думать о здоровье вообще.

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

а тебя эти не пугает эта мода подтягивать модули по сети? не боишься, что на твоих 20к серверах вместе с установкой rust заодно начнет ставиться что-то в обход системного репозитория?

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

Спасибо. У меня уже есть наглядные примеры просаживателей.

угу. но еще не так много, чтобы начинать думать о здоровье вообще.

Когда здоровье кирдык, о нём уже поздно думать. Но если очень нужна эта инфа, то мне пока 38.

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

Ну, у меня rust нет - у меня go. И по возможности все пишут так, чтобы использовать только стандартную либу. Плюс можно делать go mod vendor и ничего по сети не будет тянуться. Хз, как там в rust, наверное, что-то тоже подобное есть. У нас, кстати, и образы контейнеров со всяких хабов не тянутся, а используется свое зеркало. Но проблема есть такая почти везде.

не боишься, что на твоих 20к серверах вместе с установкой rust заодно начнет ставиться что-то в обход системного репозитория?

Неа. Никто в своем уме не компиляет на серверах, а ставит пакеты/контейнеры из локального репа.

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

Когда здоровье кирдык, о нём уже поздно думать. Но если очень нужна эта инфа, то мне пока 38.

смотря как смотреть. допустим в печени есть сгустки желчи. человек об этом в 38 не знает, а через пару лет его госпитализируют с камнями. начнут лечить и тогда ему придется не только от чипсов отказаться, но и вообще...

а в 38 самое то обследовать печень, чтобы вовремя принять меры.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от Difrex

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

а ставит пакеты/контейнеры из локального репа.

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

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

Окей, а сколько из них в release-сборках сегфолтятся?

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

пожалуй. у rust'a нет такого числа хейтеров. возможно, пока.

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

С массивами, к слову, это правильный подход. Тут бы, конечно, не помешали исключения (и это те немногие случаи, когда они реально полезны), но что имеем. В любом случае, у Си шансов сегфолтнуться на порядок больше

А давай встанем не место разработчика языка Rust, и подумаем, почему же в языке есть столько много паник, а не культурных обработок ошибок? Давай представим на секунду, что у нас доступ по некорректному символу в строке не паникует, а возвращает ошибку. Проблема возникает в чем? В том, что у тебя каждая строка будет содержать if let Some(result) = somefunc, и код превратится в пирамидку из десятков уровней блоков. Чтобы этого не было, многие операции не возвращают ошибку, а только паникуют. Но даже без этого код частенько представляет собой какие-нибудь let

let index = test.iter()
    .position(|&r| r == "two")
    .unwrap();
и
let index = test
    .iter()
    .enumerate()
    .find(|&r| r.1.to_string() == "two".to_string())
    .unwrap()
    .0;

Подчеркиваю, что здесь нет никак безопасных обработок ошибок — оба фрагмента сыпятся с паникой, если строка не найдена в массиве.

Первопроходцем подобных конструкций был лисп, и лисп же был первым языком, в котором был реализован механизм исключений. Потому что куда ты здесь впихнешь обработку ошибок? Цепочка функций должна приобрести нелинейность по условию, а механизмов для удобной записи подобных конструкций нету. Да, они появились в тех же ML и хаскеле, но там, прежде всего, есть вывод типов на уровне прототипов функций, который играет ключевую роль в передаче механизма обработки ошибок «сквозь» функцию.

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