При помощи Accept-Encoding веб-клиент указывает предпочитаемые типы сжатия.
Допустим, Accept-Encoding: gzip, deflate
Сервер же может как поддерживать некоторые из них, так и вообще ни один из них.
Сервер может ответить так: Accept-Encoding: gzip, deflate
Как срабатывает триггер именно для этого пользователя?
Раз в час проходя по всем пользователям, определяешь у кого нужно удалить страницу?
Что значит "удаление" страницы? Это какой-то закешированный результат? Где он хранится?
Ostin1: так ресурс ведь ещё скачать надо. А это занимает время. Всё что свыше 200 мс уже будет считаться как "тормозит". Представь, что перед первым открытием сайта ресурс пока скачается, а пользователь то ждёт пока хоть что-то появится на экране.
Помимо голого контента (допустим, в виде JSON) надо ведь скачать и джаваскриптики (размером в несколько МБ), и картиночки (тоже ХХ МБ), и шрифты.
Взять, к примеру, какую-нибудь программу-игру. При старте все необходимые ресурсы загружаются (а игрок ждёт) и лишь потом можно играть.
Заметим, что приложения, написанные под ОС обычно имеют ресурсы, подгружаемые прямо с локального жёсткого диска, в отличие от веб-сайтов, способных работать также на модем-соединении.
Кирилл Несмеянов: Когда у тебя проект масштаба github, нельзя взять да просто "переехать" на другой язык. Они, скорее всего, просто переписали критичные к производительности микросервисы на другие языки. А Ruby вряд ли куда-то делся.
Небось и для контроля за инфаструктурой используют Chef / Puppet - инструменты, написанные на Ruby.
Касательно пунктов
1. Хотя язык и медленнее некоторых других, он находится в той же весовой категории, что и Python (CPython). На Ruby многие задачи можно решать достаточно эффективно даже несмотря на то что он "медленный". Результаты по производительности и потреблению памяти разных языков могут меняться в зависимости от версии используемого интерпретатора/компилятора. В Ruby основной интерпретатор - это реализация MRI (также CRuby).
2. Сомнительный пункт.
читать его на порядки сложнее
Это больше зависит от стиля написания. Чаще код наоборот получается довольно лаконичным и не требуется листать кучу кода чтобы понять о чём речь.
3. Почему не подходит? Очень даже подходит. Особенно благодаря лаконичности языка и набору средств.
3.1 Кому нужен производительный язык с синтаксисом как у Ruby, с опциональной типизацией, пусть попробует компилятор Crystal.
3.2 манки-патчинг - тут согласен, это bad practices. Но это как макросы в Си или использование GoTo - всегда найдутся как сторонники, так и противники.
4. Наличие сахара не делает язык переусложнённым автоматически. Благодаря этому разнообразию/выразительности многим нравится писать именно на Ruby.
5. Нужны пояснения...
Подытожив, любые возможности языка нужно использовать с умом.