Я попробовал, и мне не понравилось. Клиенты тормозные, через нестабильный интернет-канал все работает просто отвратительно, а сам сервер просто неповоротливый и укладывает не слишком богатый на процессор и память VPS даже всего с парой клиентов.
Как постоянный пользователь матрикса подтверждаю это всё
То ли здесь забыто слово «недоделанных», то ли спорно: у меня есть проекты, которые завершены, а также проекты, которые просто работают, и по этим причинам не требуют обновлений (один из проектов провисел с одним коммитом больше четырёх лет, при этом успешно работая на проде все эти годы (значит это уже не pet?); висел бы и дальше, если бы я не решил таки бампнуть зависимости)
Системное программирование на то и системное, что изначально никакой стандартной библиотеки в принципе не существует. Если используется стандартная библиотека (та, которая про файлы, потоки, ввод-вывод и вот это вот всё), значит используется API готовой операционной системы — а это уже вполне прикладное программирование (к моему примеру с системным вызовом write это тоже относится).
В других языках вроде ведь всё примерно то же самое. Когда вы делаете Hello World на том же C, вы не забываете к размеру бинарника прибавить размер libc для честного сравнения? А сколько плясок с бубном потребуется, чтобы сделать Hello World на C без libc?
У системного программирования и подходы к программированию совсем другие, вот например минимальный бинарник размером 1.7 КБ (наверняка можно меньше, но я сам не умею)
Код по ссылке ничего не делает, но я попытался добавить системный вызов write, чтобы бинарник был не совсем пустой:
let s = b"Hello, world!\n";
unsafe {
syscalls::syscall!(syscalls::Sysno::write, 1, s.as_ptr(), s.len()).unwrap();
}
А он не бьёт картинку на квадратики? Я пробовал отсканировать свои фотографии на трёх разных сканерах HP, но все три делили картинку на квадратики с выкидыванием нескольких пикселей изображения на стыках этих квадратиков. Очень сильно бросается в глаза на съезжающих из-за этого диагональных линиях
Подставляемые данные зависят от падежей. А среднестатистический англоязычный разработчик часто забывает, что в других языках падежей бывает больше чем в английском, и в итоге из какого-нибудь «%s угостил %s %d %s» мы получаем «Вася угостил Петя 1 яблоко»
Ах да, попутно и про род можно вспомнить, а то какое-нибудь «Получен 1 яблоко» тоже не круто
Чушь полная: asyncio был придуман специально для ожидания ответов
Это уже ближе — multiprocessing создаёт настоящие процессы.
Идеально для I/O-задач, которые не грузят CPU.
Чушь полная: создавать дорогостоящие процессы, которые ничего не делают — максимально бессмысленная трата ресурсов, поэтому вместо них придумали asyncio
Поздравляю, вы не только сломали синхронизацию свойств каталогов и опции вроде --delay-updates или --delete-after, но и убили производительность постоянными переподключениями SSH-соединений (а ещё такая команда всё равно не работает, потому что parallel не умеет читать из stdin)
Слепое следование идеологиям ни к чему хорошему не приводит
В посте написано:
Как постоянный пользователь матрикса подтверждаю это всё
В оригинале там «network layer», а переводчик, видимо, играл с синонимами и проиграл
Зачем? У меня личный сервер на ejabberd уже лет пятнадцать, из настроек всего один yaml-файлик, erlang до сих пор не знаю
То ли здесь забыто слово «недоделанных», то ли спорно: у меня есть проекты, которые завершены, а также проекты, которые просто работают, и по этим причинам не требуют обновлений (один из проектов провисел с одним коммитом больше четырёх лет, при этом успешно работая на проде все эти годы (значит это уже не pet?); висел бы и дальше, если бы я не решил таки бампнуть зависимости)
Но зачем усложнять себе жизнь и брать делфи и питон, если можно взять просто питон?
Сам yt-dlp написан на питоне, так что использовать что-то отличное от питона нелогично
Тем более сабж не дёргает консольную утилиту, а плотно взаимодействует с библиотекой напрямую
Технические проблемы нужно решать, а не безальтернативно подвергать пользователя опасности
Ну не, выбор кодеков — вещь достаточно важная, чтобы без неё GUI оказывался для меня бесполезным
Мне как-то не очень понятны ваши претензии:
Системное программирование на то и системное, что изначально никакой стандартной библиотеки в принципе не существует. Если используется стандартная библиотека (та, которая про файлы, потоки, ввод-вывод и вот это вот всё), значит используется API готовой операционной системы — а это уже вполне прикладное программирование (к моему примеру с системным вызовом write это тоже относится).
В других языках вроде ведь всё примерно то же самое. Когда вы делаете Hello World на том же C, вы не забываете к размеру бинарника прибавить размер libc для честного сравнения? А сколько плясок с бубном потребуется, чтобы сделать Hello World на C без libc?
У системного программирования и подходы к программированию совсем другие, вот например минимальный бинарник размером 1.7 КБ (наверняка можно меньше, но я сам не умею)
Код по ссылке ничего не делает, но я попытался добавить системный вызов write, чтобы бинарник был не совсем пустой:
А он не бьёт картинку на квадратики? Я пробовал отсканировать свои фотографии на трёх разных сканерах HP, но все три делили картинку на квадратики с выкидыванием нескольких пикселей изображения на стыках этих квадратиков. Очень сильно бросается в глаза на съезжающих из-за этого диагональных линиях
Подставляемые данные зависят от падежей. А среднестатистический англоязычный разработчик часто забывает, что в других языках падежей бывает больше чем в английском, и в итоге из какого-нибудь «%s угостил %s %d %s» мы получаем «Вася угостил Петя 1 яблоко»
Ах да, попутно и про род можно вспомнить, а то какое-нибудь «Получен 1 яблоко» тоже не круто
И падежи ещё (1 яблоком, 2 яблоками), я сейчас страдаю от их отсутствия в gettext
mypy, pyright, pylsp
I use Arch btw, всякого ненужного мусора вроде ibus не имею, проблем с пробелом тоже не имею
Можно и QuakeC вспомнить тогда уж
Для ожидания ответа параллельность не нужна
Чушь полная: asyncio был придуман специально для ожидания ответов
Чушь полная: создавать дорогостоящие процессы, которые ничего не делают — максимально бессмысленная трата ресурсов, поэтому вместо них придумали asyncio
Тогда в вашем примере тем более нет смысла
Так вся эта статья посвящена этому самому примеру — rclone
Поздравляю, вы не только сломали синхронизацию свойств каталогов и опции вроде
--delay-updates
или--delete-after
, но и убили производительность постоянными переподключениями SSH-соединений (а ещё такая команда всё равно не работает, потому что parallel не умеет читать из stdin)Слепое следование идеологиям ни к чему хорошему не приводит