LINUX.ORG.RU
ФорумTalks

Какие новые и полезные, известные, или хотя бы красивые программы написаны на Расте?

 , , , ,


2

7

Сабж. Вот когда создали С, то сразу на нём переписали Юникс, чтобы он стал портабельным, и с тех пор на нём созданы миллионы программ, драйверов и почти все операционные системы. Когда был создан PHP, он быстро заместил Perl в веб-приложениях и на сегодняшний день он крутится на 70% веб-серверов.

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

Где новые базы данных, IDE, DE, CAD-ы, графические, видео и аудио редакторы на расте? Игровые движки? Кодеки? Чтобы скептики прониклись мощью и безусловными преимуществами сабжа и уверовали в него?

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

У меня создаётся впечтление, что растовики не могут в созидание нового, только копирование уже созданного великими мастерами сишечки.

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

У меня создаётся впечтление, что растовики не могут в созидание нового, только копирование уже созданного великими мастерами сишечки.

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

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

То же самое. Я же специально сказал, что замеры были с прогретым кешем. Если файловый кэш сбросить, то у grep ситуация ещё печальнее становится.

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

i-rinat ★★★★★
()
Ответ на: комментарий от TDrive

Я рад, что у меня есть единомышленники в этом вопросе.

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

нечитаемая вырвиглазная

Ну так не пиши на нем. Какие проблемы?

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

Хетерам Go абсолютно нечего сказать, когда им предъявляют докер и кубик. Где у раста хоть один проект сопоставимого уровня?

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

reduce(|a, b| a * b)

Какая жесть. Есть же функция *, зачем эта позорная лямбда? У - удобство.

unwrap_or

А что это за овно, я даже знать не хочу.

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

Еееее. Пошли мерять крутость языков по тому как на нем фаториал пишется. Ты, видимо, каждый день на работе, если она у тебя есть, факториалы пишешь, раз для тебя это так важно. И да приведенный тобой пример ужасен, потому что тут уже без IDE можно в закрывающих скобках запутаться.

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

Легко можно противопоставить - «Го - говно, несмотря на докер и кубик. Несмотря ни на что». Не смотря потому что не смотришь

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

Мы тут не ищем истину, а льем говно. Это как спорить путем избиения дубиной оппонента. Только на этом форуме избиваешь в своих глазах. Оппонент при этом конечно же не убежден даже если ему Аллах лично скажет как правильно.

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

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

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

Мы тут не ищем истину, а льем говно

Именно. Тебе не нравится лисп — ты поливаешь лисп, мне не нравится сиподобное вырвиглазие — ну ты понел. Качку нравится питон, он поливает все, что не питон. Всем весело, все довольны.

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

При том что те кто не писали ФП когда никогда не знают что за говно такое reduce и тоже знать не хотят. Так как ты не хочешь знать что такое unwrap

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

Людей, которые всерьез приводят код на Лиспе в качестве примера «как надо», лучше избегать.

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

Ну в смысле go от С не отличается? Присутствие go увеличивает конпеляцию софта у @Harald на компьютере в ОС, за котороую он ничего не заплатил. А С не увеличивает. Это же беда!

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

Мы тут не ищем истину, а льем говно

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

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

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

По-моему, имена reduce, range, inc и * говорят сами за себя, даже если не лазить в документацию. Шо такоэ unwrap_or — остается только гадать.

Nervous ★★★★★
()

Сначала ответь, какие новые и полезные, известные, или хотя бы красивые программы написаны на C? Причем это не должно быть переписывание старых программ (пусть даже тоже на С). А то выйдет, что руст обосрешь, но все равно не докажешь, что Сишечка лучше)

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

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

Надеюсь, йадом хотя бы не поят.

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

Хмм. Дайте подумать «unwrap» это же с английского «раскрыть». «or» это «или». Сложно. «раскрыть_или». Для разгадки такого ребуса нужно быть знатаком коптского не иначе

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

Омг, inc — поди догадайся, что вместо плюсиков там аж целая функция.

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

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

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

Есть же функция *

Есть, но она называется std::ops::Mul::mul. Чёт мне кажется, что лямбда тут читабельней.

unwrap_or

А это чтобы не было как в Clojure и reduce не падал с «Wrong number of args (0) passed to …»

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

Ненене, я поливаю в первую очередь питон, если ты не в курсе.

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

Ох простите, не знал, что я в одном треде с emacs господами. У вас, кстати как? ctrl, alt на педали забиндены или вы когда прогаете рояль в качестве клавиатуры подключаете?

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

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

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

чтобы не было как в Clojure и reduce не падал с «Wrong number of args (0) passed to …»

Чтобы упало где-нибудь дальше, когда твой факториал, вызванный без аргументов, вернет nil. Или что там у растаманов вместо него.

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

Можно и без unwrap-а

fn factorial(n: u64) -> u64 {
    (1..=n).fold(1, |a, b| a * b)
}
k_andy ★★★
()

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

На секундочку, если подумать о С, который ты упомянул в своем же сообщении, его тоже придумали, чтобы переписать UNIX с ассемблера. А до того ОС «прекрасно обходились без этих сишек десятки лет», и первый UNIX был реализован для конкретной архитектуры на асме. Такая вот х*ня, малята.

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

У - удобство.

Писать отдельную функцию для факториала

Лан.

fn factorial(n: u64) -> u64 {
    (1..=n).product()
}

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

вызванный без аргументов

???

Никогда не писал на языке со статической типизацией, да?

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

Боже это так жирно. Ты бы хоть почитал что-то перед тем как набрасывать. unwrap_or как раз тем и отличается, что обрабатывает «что там у растаманов вместо него» нормально. Кроме того

когда твой факториал, вызванный без аргументов

fn factorial(n: u64) -> u64 {

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

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

Каррирование, частичное применение кстати неплохая фича.

В Scala не помню синтаксис, но там можно было в духе f(1, _, "x", _) возвращал функцию из двух аргументов

Вызвать функцию без аргументов если она требует аргументы должно возвращать… эту функцию

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

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

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

Чёрт! И тут переписывание.

Сам grep это переписывание одной из функций ed. И что теперь, пользоваться ed только из-за того, что это оригинал? Ripgrep это инструмент, который решает для меня задачу поиска текста быстрее аналогов.

$ time grep -R qwe 2>/dev/null | wc -l
25

real	0m5,720s
user	0m5,029s
sys	0m0,675s
$ time ack qwe . | wc -l
25

real	0m6,451s
user	0m4,972s
sys	0m1,461s
$ time ag qwe | wc -l
60

real	0m0,761s
user	0m2,841s
sys	0m1,962s
$ time rg qwe | wc -l
25

real	0m0,222s
user	0m0,693s
sys	0m0,947s
$ 
i-rinat ★★★★★
()
Ответ на: комментарий от vertexua

Негативно отношусь к карированию. Кажется что это круто и мощно, но когда начинаешь дебажить проект 10000+ строк кода и в дебаггере проваливаешься в одно каррирование за другим в поисках ошибки, начинаешь проклинать разработчиков. Сталкивался с таким в питон проектах. Вот когда вызов функции это вызов функции, а не обертка или ленивое применение, вот тогда дебажить просто.

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

Боже это так жирно

Я старался %)

unwrap_or как раз тем и отличается, что обрабатывает «что там у растаманов вместо него» нормально

Так а зачем тогда он там вообще? Чтобы рейндж не взорвался при отрицательном n?

С лиспом я бы не стал задавать глупых вопросов, а просто запустил бы REPL и сам все проверил. Но… шо маемо, то маемо %)

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

Nervous постом ранее: ))))

Лисп ни разу не запрещает тебе делать вот так

   )
  )
 )
)
или так
    ))
))
Полная свобода действий!

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