LINUX.ORG.RU

rust (не флейма ради)

 


1

4

Захотел http сервер для теста. Для питона модуля SimpleHTTPServer не было, ставить pip’ом было лень, поискал на AUR, нашел:

Ну, думаю, какая разница питон там не питон, важно, что simple. Стал ставить. А оно собирает 151 пакетов.

Разве это не перебор?

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

Ну выходит что ты пишешь о воображаемых проблемах.

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

Точно-точно, зато можно запросто получить хоть 2^32 чая весёлый и провокационный трёп, или флейм, как его называют.

Вообще как я понял «не флейма ради» - кодовая фраза для начала срача.

ArkaDOSik ★★
()

ставить pip’ом было лень

pip лень, а в aur лезть не лень? В следующий раз, когда текстовой редактор понадобится, LFS собери.

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

Кроме функционала есть ещё такой параметр, как надёжность. Я везде где можно предпочту надёжный код быстрому и красивому.

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

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

abcq ★★
()

Для питона модуля SimpleHTTPServer не было, ставить pip’ом было лень, поискал на AUR, нашел:

Это который с py3 теперь http.server?

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

Вообще как я понял «не флейма ради» - кодовая фраза для начала срача.

Лично я (срачестартер) узнал и прояснил для себя много ранее неизвестного за что благодарен анонимусу. Да и нет тут вроде срача, я видел реально религиозные войны и сайт Царя видел и было интересно, я даже с ним согласен, наверное, но недостаточно осведомлен, чтобы быть согласным наверняка. А тут получается монолит vs микро. И где сейчас Hurd? Одни микросервисы только плодят очередные опердени, которые хоть на Cobol’е пиши - ничего не поменяется.

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

Но опять же я мало осведомлен для таких суждений.

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

pip лень, а в aur лезть не лень?

Я же уже на это отвечал. Пакет оно поставит в пакеты и я его потом удалю/проапргрейжу, а pip поставит в свой pip, про который я не помню и я забуду и будет мусор валяться.

Опять же повторюсь, возможно я не умею pip готовить.

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

Кроме функционала есть ещё такой параметр, как надёжность. Я везде где можно предпочту надёжный код быстрому и красивому.

IMO чем короче код тем он надежней. В идеале в нем вообще не должно быть условий и циклов.

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

нужен был просто хттп сервер для непонятных нужд

Для тестирования gufw на компе с телефона подключенного к тому же SSID. Просто python -m SimpleHTTPServer 8000 не пошло, а я не обладал тайным знанием, что в python3 теперь оно иначе называется, полез в aur за simplehttpserver, начал его ставить и фалломорфировал. В итоге, как мне кажется, получилась познавательная дискуссия, где каждая сторона имеет свои за и против.

Вбрасывать я ничего не хотел. Я вообще на ЛОР захожу в маниакальной фазе своего биполярного расстройства, на кой мне вбрасывать, если завтра может начаться депрессивная фаза или приедут люди в белых халатах и купируют ажитацию тизерцином? Или я забуду про флейм и зависну на каком-нибудь https://youtu.be/fHtP-N01wcQ? А ты про вброс. Ширше мыслить надо!

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

Для питона модуля SimpleHTTPServer не было, ставить pip’ом было лень, поискал на AUR, нашел:

Это который с py3 теперь http.server?

Да и я этого не знал. Благодаря «вбросу» знаю (а может кто-то еще кроме меня узнал). Что-то полезное.

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

Не, тут тестирование тащит. Чем больше людей либу используют, тем надёжнее. Так что куча мелких модулей, которые умеют делать одну вещь, но хорошо это замечательно, только реализуется большой болью, за что микроядра и всё с ними связанное не очень любят.

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

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

В чём большая боль?

И почему мелкие модули будут хуже протестированы? Очень может быть, что даже наоборот: вместо того чтобы тащить «большую» библиотеку есть искушение написать «мелкую» функцию самому.

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

В чём большая боль?

В большом коде можно делать грязные хаки, например, получая прямой доступ к структурам данных, к которым по идее надо пилить интерфейс (в широком смысле слова, а не тот, который в некоторых языках есть, API, ABI и иже с ними). Это дурной тон программирования и на выходе лапша выходит-, но его используют на практике, так как ускоряет порой сильно фигак-фигак (потом правда, когда переписывть придётся, наоборот будет). А тут у каждого кусочка свой интерфейс взаимодействия надо делать. Отсюда боль — больше писанины, больше думать над структурой кода. А с тем, что мелкие модули надёжнее я и не спорю, наоборот я их сторонник. Главное чтобы при этом они не были меньше нужного, например, я бы предпочёл полную поддержку png, чем ту, которая сильно меньше, но чего-то там потом не окажется, что нужно и так далее, потому как база пользователей шире и следовательно больше людей баги найдут.

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

Только если ты аутист и пишешь «*» вместо конкретной версии «1.2.3». Благо, таких дурачков не много.

anonymous
()
Ответ на: комментарий от Crocodoom

Каждая зависимость это потенциальная проблема, если её автор забросит развитие. Чем больше зависимостей, тем чаще будут возникать проблемы.

Legioner ★★★★★
()
Ответ на: удаленный комментарий

Вопрос: какой стандартный хедер нужно подключить, чтобы получить в Сижке нормальные строки?

Ну а в Эрланге строк вообще нет и ничего, взлетел.

Не жизнь, а C-казка

  • Сделай git clone https://aur.archlinux.org/simple-http-server.git
  • Сделай cd simple-http-server
  • Сделай makepkg -sr
  • Сходи сделай кофе там, чай и т.п. пока этот snap/container/crate/whatever собирает из сырцов вещи вроде libc
  • Посмотри размер директории src и фалломорфируй:
~/.../simple-http-server/src >>> du -hs .
145M	.

Это явно больше размера всех хидеров libc вместе взятых.

Т.е. если я все верно понял то у раста нету стандартной библиотеки, но есть куча crate’ов. Но они собираются. Бинарных версий их нет. Slackware какое-то. Это как с компиляцией в Scala. Из-за того, что автор решил сделать импорты такими динамическими, что один импорт может поменять поведение другого импорта, компиляция scalac чего-то серьезней helloworld’а очень медленна. В итоге вроде стало лучше, но хотелось бы, чтобы обратно стало плохо, как было.

PS Мать и я ввязался в срач. Извиняйте! Хороший раст, годный. Только уж слишком годный. А я просто немного фалломорфировал.

PPS И кажется с говлангом в предыдущем комментарии я поторопился, потому что там тоже насколько я где-то читал какая-то жесть с кучей модулей и из-за их кривизны бывает что хелловорлд занимает те же 145Mb. И я не осведомлен компилируются ли в go штуки типо import fmt (в смысле компилируется ли fmt).

И наверное действительно подход с отсутствием стандартной библиотеки, а наличием кучи модулей православен, но его реализация, что в rust, что в go приводит к абсурду.

Ну и go просто быстрее учится.

Может я неправ.

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

Че я делаю не так?

Не знаю. А makepkg -sr у тебя 151 крейтов компилит? Тогда в src должен быть такой мусор:

https://raw.githubusercontent.com/xor512/trashbin/master/musor.txt

И он весит 145 метров. Сам пакет маленький вышел:

~/tmp/simple-http-server >>> du -hs simple-http-server-0.6.0-1-x86_64.pkg.tar.xz 
684K	simple-http-server-0.6.0-1-x86_64.pkg.tar.xz

Зачем тогда 145 метров крейтов собиралось… Я совсем завис.

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

Таки это скомпилированные зависимости и метаданные.

151 крейт - нормальное количество транзитивных зависимостей для фреймворка iron

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

Я не знаю, что такое iron, я просто фалломорфировал увидев это compiling… compiling… compiling…

Ну и вышло 145 метров из этих 151 крейтов. Я так понимаю, что это тулчейн собрался и тулчейном собрался бинарь который весит 2.5Mb (в архиве 684K).

Тогда становится неясно за каким шкафом компилировать тулчейн если его можно собрать как бинарный пакет для арча, убунты и прочая. Т.е. компиляцию самого simple-http-server я понимаю, но зачем было убивать время компиля компилятор?

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

Таки это скомпилированные зависимости и метаданные.

Т.е. они таки будут установлены? в самом simple-http-server-0.6.0-1-x86_64.pkg.tar.xz этого нету.

Если будут, то helloworld занял 145 метров что бывает и у golang из-за кривизны dependencies. Где-то я видел такую статью, где товарищ жаловался на go, что какой-то кривой пакет затянул полмира.

А если не будут и используются только для компиляции, то зачем собирать за каждым разом тулчейн?

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

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

А вот пинить патч-версию это как раз признак дурачка.

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

Тогда становится неясно за каким шкафом компилировать тулчейн если его можно собрать как бинарный пакет для арча, убунты и прочая. Т.е. компиляцию самого simple-http-server я понимаю, но зачем было убивать время компиля компилятор?

Потому что ты скачал пакет (рецепт) из AUR, требующий сборку сервера из исходников, прямо как в Gentoo.

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

Потому что ты скачал пакет (рецепт) из AUR, требующий сборку сервера из исходников, прямо как в Gentoo.

Только рецепт собирал 151 пакетов вроде libc, которые заняли 145Mb, чтобы в итоге родить simple-http-server размером с 2.5Mb. Как это понять?

dissident ★★
() автор топика
Ответ на: удаленный комментарий

Ты не понял – в Сижке даже булевый тип(!) нельзя использовать без подключения хедера(!!)

А в ассемблере его вообще нету. Да и в самом компьютере. И что? Есть разные инструменты, разные уровни абстракции. А код пишут люди. И на расте и на си тебе незнающие люди напишут лишь бы что.

dissident ★★
() автор топика

В общем, когда будут пруфы что подход с разделением на мелкие крейты хуже монорепы с over9000 файлов - тогда и приходи. Пока что это пук в лужу и нытьё без какой-либо причины.

anonymous
()
Ответ на: удаленный комментарий

Ты не понял – в Сижке даже булевый тип(!) нельзя использовать без подключения хедера(!!).

и не нужно, ибо «Linus: bool is dangerous in C if you don’t understand it» https://lkml.org/lkml/2013/8/31/138

Даешь педерастическую революцию! Мы здесь Раст!

у нас лимит на революции исчерпан

anonymous
()

Разве это не перебор?

да, это перебор, у меня был аналогичный шок
пример простой задачи: нужно сделать get-запрос на https://www.linux.org.ru с юзер-гентом «tormozilla» и вывести текстом полученное содержимое в stdout
так вот в расте для этого все предлагают reqwest

name = "reqwest"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "02b81e49ddec5109a9dcfc5f2a317ff53377c915e9ae9d4f2fb50914b85614e2"
dependencies = [
"base64",
"bytes",
"encoding_rs",
"futures-core",
"futures-util",
"http",
"http-body",
"hyper",
"hyper-tls",
"js-sys",
"lazy_static",
"log",
"mime",
"mime_guess",
"native-tls",
"percent-encoding",
"pin-project-lite",
"serde",
"serde_urlencoded",
"time",
"tokio",
"tokio-tls",
"url",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"winreg",
]
anonymous
()

ты привел ссылку на код, написанный человеком, которого покусал яваскриптер.

Это плохой проект, не надо так.

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

Т.е. если я все верно понял то у раста нету стандартной библиотеки

Ты снова всё неправильно понял.

Может я неправ.

Зачем ты это постоянно повторяшь? Стесняешься своего мнения? Ошибаться все могут.

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

DarkEld3r ★★★★★
()

оно собирает 151 пакетов

$ strace -o /tmp/$$ python -m http.server
127.0.0.1 - - [05/May/2020 20:20:56] "GET / HTTP/1.1" 200 -
^C
Keyboard interrupt received, exiting.
$ grep -c 'open.*[.py]' /tmp/$$
88

Даже не на 2ичный порядок.

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

Пока что это пук в лужу и нытьё без какой-либо причины.

Слушай, я терпел-терпел но мне надоело.

  • Не нравится - поставь в ignore list
  • Я не ною, мне вообще, что раст, что го, что баш-лапша, я среднехреновый быдлокодер, зато могу наваять хоть в Unity, хоть в Qt, хоть в ocaml. Надо раст будет - буду раст. Я фалломорфировал и хотел понять.
  • Где ты видел срач в этом топике, по крайней мере с моей стороны? Я раст даже хвалил
  • ЛОР по твоему лужа? Тогда ты жаба

В общем, когда будут пруфы что подход с разделением на мелкие крейты хуже монорепы с over9000 файлов

А можно я забью свою патетический .уй на нужные тебе пруфы?

тогда и приходи.

Куда приходить? Я и не уходил никуда. За галоперидолом только в аптеку бегал.

PS А можно еще проще?

Иди в ж.пу.

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

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

Может я неправ.

Зачем ты это постоянно повторяшь? Стесняешься своего мнения? Ошибаться все могут.

Это робкая просьба меня поправить, если ч неправж

dissident ★★
() автор топика
Ответ на: оно собирает 151 пакетов от DonkeyHot

оно собирает 151 пакетов

Причем тут python -m http.server к https://github.com/TheWaWaR/simple-http-server, а конкретней к https://aur.archlinux.org/packages/simple-http-server/?

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

Иди в ж.пу.

Извини. Я галоперидол недорассчитал. Ну и «просто я живу на улице Ленина и меня зарубает время от времени» (c) https://youtu.be/WS7hHNiwZVo

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

Причем тут python -m http.server

модуля SimpleHTTPServer не было … А оно собирает 151 пакетов

Привёл, для сравнения, сколько собрал питонский. Не на что жаловаться – таково состояние нынешней индустрии.

DonkeyHot ★★★★★
()
Ответ на: Причем тут python -m http.server от DonkeyHot

Привёл, для сравнения, сколько собрал питонский. Не на что жаловаться – таково состояние нынешней индустрии.

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

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

говнокод, а не состояние какой-то там индустрии

Успехов тебе, искатель менее «зависимых» проектов:)

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