Это было написано как непредвзятый комментарий к сообщению на lobster.rs (думаю, это уменьшенная версия hackernews).

Https://engineering.wework.com/ruby-users-be-wary-of-net-http-f284747288b2

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

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

На моей последней работе мы застряли на старых версиях libcurl, поэтому многие другие альтернативы были невозможны. Я закончил тем, что использовал Excon (чистый рубин, не построенный на Net::HTTP) в качестве замены и обнаружил, что его намного проще использовать и гораздо более последовательным, когда наш код упал с удачного пути.

Все это указывает на более серьезную проблему. В сообщении говорится о HTTP-клиенте с дополнительными функциями, который обертывает другой HTTP-клиент с дополнительными функциями, которые обертывают дырявую абстракцию. Почему все это необходимо для HTTP-соединений? Я понимаю, что цель We::Call - помочь разработчикам улучшить то, как они делают внешние вызовы, но все это указывает на устаревший stdlib (серьезно, не обижайтесь на людей, которые работают над Net::HTTP).

Почему у нас не может быть HTTP-клиента stdlib, который требует тайм-аутов и может быть подключаемым для использования различных бэкэндов подключения (считайте это риторическим вопросом)? Просмотр всех HTTP-клиентов / оболочек в экосистеме ruby ​​приводит меня к мысли, что stdlib следует либо обновить, либо удалить в пользу драгоценных камней, которые могут развиваться вне цикла выпуска Ruby.

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